252 JSAMPROW inptr0, inptr1, inptr2, inptr3;
256 JSAMPLE * range_limit = cinfo->sample_range_limit;
264 inptr0 = input_buf[0][input_row];
265 inptr1 = input_buf[1][input_row];
266 inptr2 = input_buf[2][input_row];
267 inptr3 = input_buf[3][input_row];
270 for (col = 0; col <
num_cols; col++) {
275 outptr[0] = range_limit[
MAXJSAMPLE - (
y + Crrtab[cr])];
279 outptr[2] = range_limit[
MAXJSAMPLE - (
y + Cbbtab[cb])];
281 outptr[3] = inptr3[col];
316 switch (cinfo->jpeg_color_space) {
318 if (cinfo->num_components != 1)
319 ERREXIT(cinfo, JERR_BAD_J_COLORSPACE);
324 if (cinfo->num_components != 3)
325 ERREXIT(cinfo, JERR_BAD_J_COLORSPACE);
330 if (cinfo->num_components != 4)
331 ERREXIT(cinfo, JERR_BAD_J_COLORSPACE);
335 if (cinfo->num_components < 1)
336 ERREXIT(cinfo, JERR_BAD_J_COLORSPACE);
345 switch (cinfo->out_color_space) {
347 cinfo->out_color_components = 1;
348 if (cinfo->jpeg_color_space == JCS_GRAYSCALE ||
349 cinfo->jpeg_color_space == JCS_YCbCr) {
350 cconvert->pub.color_convert = grayscale_convert2;
352 for (ci = 1; ci < cinfo->num_components; ci++)
353 cinfo->comp_info[ci].component_needed = FALSE;
355 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
360 if (cinfo->jpeg_color_space ==
JCS_YCbCr) {
361 cconvert->pub.color_convert = ycc_rgb_convert;
362 build_ycc_rgb_table(cinfo);
364 cconvert->pub.color_convert = gray_rgb_convert;
366 cconvert->pub.color_convert = null_convert2;
368 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
372 cinfo->out_color_components = 4;
373 if (cinfo->jpeg_color_space ==
JCS_YCCK) {
374 cconvert->pub.color_convert = ycck_cmyk_convert;
375 build_ycc_rgb_table(cinfo);
376 }
else if (cinfo->jpeg_color_space ==
JCS_CMYK) {
377 cconvert->pub.color_convert = null_convert2;
379 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
384 if (cinfo->out_color_space == cinfo->jpeg_color_space) {
385 cinfo->out_color_components = cinfo->num_components;
386 cconvert->pub.color_convert = null_convert2;
388 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
392 if (cinfo->quantize_colors)
393 cinfo->output_components = 1;
395 cinfo->output_components = cinfo->out_color_components;
grayscale_convert2(j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row, JSAMPARRAY output_buf, int num_rows)
Definition jdcolor.c:201
gray_rgb_convert(j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row, JSAMPARRAY output_buf, int num_rows)
Definition jdcolor.c:217
ycck_cmyk_convert(j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row, JSAMPARRAY output_buf, int num_rows)
Definition jdcolor.c:245
ycc_rgb_convert(j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row, JSAMPARRAY output_buf, int num_rows)
Definition jdcolor.c:120
null_convert2(j_decompress_ptr cinfo, JSAMPIMAGE input_buf, JDIMENSION input_row, JSAMPARRAY output_buf, int num_rows)
Definition jdcolor.c:169
jcopy_sample_rows(JSAMPARRAY input_array, int source_row, JSAMPARRAY output_array, int dest_row, int num_rows, JDIMENSION num_cols)
Definition jutils.c:111