84
84
gboolean optimize_coding;
86
/* Generate an interlaced (progressive, in jpg terminology) file.
90
/* Disable chroma subsampling.
92
gboolean no_subsample;
86
94
} VipsForeignSaveJpeg;
88
96
typedef VipsForeignSaveClass VipsForeignSaveJpegClass;
125
133
VIPS_ARG_STRING( class, "profile", 11,
127
135
_( "ICC profile to embed" ),
128
136
VIPS_ARGUMENT_OPTIONAL_INPUT,
129
137
G_STRUCT_OFFSET( VipsForeignSaveJpeg, profile ),
132
140
VIPS_ARG_BOOL( class, "optimize_coding", 12,
133
_( "optimize_coding" ),
141
_( "Optimize_coding" ),
134
142
_( "Compute optimal Huffman coding tables" ),
135
143
VIPS_ARGUMENT_OPTIONAL_INPUT,
136
144
G_STRUCT_OFFSET( VipsForeignSaveJpeg, optimize_coding ),
147
VIPS_ARG_BOOL( class, "interlace", 13,
149
_( "Generate an interlaced (progressive) jpeg" ),
150
VIPS_ARGUMENT_OPTIONAL_INPUT,
151
G_STRUCT_OFFSET( VipsForeignSaveJpeg, interlace ),
154
VIPS_ARG_BOOL( class, "no_subsample", 14,
156
_( "Disable chroma subsample" ),
157
VIPS_ARGUMENT_OPTIONAL_INPUT,
158
G_STRUCT_OFFSET( VipsForeignSaveJpeg, no_subsample ),
171
194
if( vips__jpeg_write_file( save->ready, file->filename,
172
jpeg->Q, jpeg->profile, jpeg->optimize_coding ) )
195
jpeg->Q, jpeg->profile, jpeg->optimize_coding,
196
jpeg->interlace, save->strip, jpeg->no_subsample ) )
236
260
if( vips__jpeg_write_buffer( save->ready,
237
&obuf, &olen, jpeg->Q, jpeg->profile, jpeg->optimize_coding ) )
261
&obuf, &olen, jpeg->Q, jpeg->profile, jpeg->optimize_coding,
262
jpeg->interlace, save->strip, jpeg->no_subsample ) )
240
265
area = vips_area_new_blob( (VipsCallbackFn) vips_free, obuf, olen );
297
322
if( vips__jpeg_write_buffer( save->ready,
298
&obuf, &olen, jpeg->Q, jpeg->profile, jpeg->optimize_coding ) )
323
&obuf, &olen, jpeg->Q, jpeg->profile, jpeg->optimize_coding,
324
jpeg->interlace, save->strip, jpeg->no_subsample ) )
301
327
printf( "Content-length: %zd\r\n", olen );