OLD | NEW |
1 /* | 1 /* |
2 * jdcolor.c | 2 * jdcolor.c |
3 * | 3 * |
4 * Copyright (C) 1991-1997, Thomas G. Lane. | 4 * Copyright (C) 1991-1997, Thomas G. Lane. |
5 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB | 5 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB |
6 * Copyright (C) 2009, 2011, D. R. Commander. | 6 * Copyright (C) 2009, 2011, D. R. Commander. |
7 * This file is part of the Independent JPEG Group's software. | 7 * This file is part of the Independent JPEG Group's software. |
8 * For conditions of distribution and use, see the accompanying README file. | 8 * For conditions of distribution and use, see the accompanying README file. |
9 * | 9 * |
10 * This file contains output colorspace conversion routines. | 10 * This file contains output colorspace conversion routines. |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 ycc_rgb_convert (j_decompress_ptr cinfo, | 217 ycc_rgb_convert (j_decompress_ptr cinfo, |
218 JSAMPIMAGE input_buf, JDIMENSION input_row, | 218 JSAMPIMAGE input_buf, JDIMENSION input_row, |
219 JSAMPARRAY output_buf, int num_rows) | 219 JSAMPARRAY output_buf, int num_rows) |
220 { | 220 { |
221 switch (cinfo->out_color_space) { | 221 switch (cinfo->out_color_space) { |
222 case JCS_EXT_RGB: | 222 case JCS_EXT_RGB: |
223 ycc_extrgb_convert_internal(cinfo, input_buf, input_row, output_buf, | 223 ycc_extrgb_convert_internal(cinfo, input_buf, input_row, output_buf, |
224 num_rows); | 224 num_rows); |
225 break; | 225 break; |
226 case JCS_EXT_RGBX: | 226 case JCS_EXT_RGBX: |
| 227 case JCS_EXT_RGBA: |
227 ycc_extrgbx_convert_internal(cinfo, input_buf, input_row, output_buf, | 228 ycc_extrgbx_convert_internal(cinfo, input_buf, input_row, output_buf, |
228 num_rows); | 229 num_rows); |
229 break; | 230 break; |
230 case JCS_EXT_BGR: | 231 case JCS_EXT_BGR: |
231 ycc_extbgr_convert_internal(cinfo, input_buf, input_row, output_buf, | 232 ycc_extbgr_convert_internal(cinfo, input_buf, input_row, output_buf, |
232 num_rows); | 233 num_rows); |
233 break; | 234 break; |
234 case JCS_EXT_BGRX: | 235 case JCS_EXT_BGRX: |
| 236 case JCS_EXT_BGRA: |
235 ycc_extbgrx_convert_internal(cinfo, input_buf, input_row, output_buf, | 237 ycc_extbgrx_convert_internal(cinfo, input_buf, input_row, output_buf, |
236 num_rows); | 238 num_rows); |
237 break; | 239 break; |
238 case JCS_EXT_XBGR: | 240 case JCS_EXT_XBGR: |
| 241 case JCS_EXT_ABGR: |
239 ycc_extxbgr_convert_internal(cinfo, input_buf, input_row, output_buf, | 242 ycc_extxbgr_convert_internal(cinfo, input_buf, input_row, output_buf, |
240 num_rows); | 243 num_rows); |
241 break; | 244 break; |
242 case JCS_EXT_XRGB: | 245 case JCS_EXT_XRGB: |
| 246 case JCS_EXT_ARGB: |
243 ycc_extxrgb_convert_internal(cinfo, input_buf, input_row, output_buf, | 247 ycc_extxrgb_convert_internal(cinfo, input_buf, input_row, output_buf, |
244 num_rows); | 248 num_rows); |
245 break; | 249 break; |
246 default: | 250 default: |
247 ycc_rgb_convert_internal(cinfo, input_buf, input_row, output_buf, | 251 ycc_rgb_convert_internal(cinfo, input_buf, input_row, output_buf, |
248 num_rows); | 252 num_rows); |
249 break; | 253 break; |
250 } | 254 } |
251 } | 255 } |
252 | 256 |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 gray_rgb_convert (j_decompress_ptr cinfo, | 313 gray_rgb_convert (j_decompress_ptr cinfo, |
310 JSAMPIMAGE input_buf, JDIMENSION input_row, | 314 JSAMPIMAGE input_buf, JDIMENSION input_row, |
311 JSAMPARRAY output_buf, int num_rows) | 315 JSAMPARRAY output_buf, int num_rows) |
312 { | 316 { |
313 switch (cinfo->out_color_space) { | 317 switch (cinfo->out_color_space) { |
314 case JCS_EXT_RGB: | 318 case JCS_EXT_RGB: |
315 gray_extrgb_convert_internal(cinfo, input_buf, input_row, output_buf, | 319 gray_extrgb_convert_internal(cinfo, input_buf, input_row, output_buf, |
316 num_rows); | 320 num_rows); |
317 break; | 321 break; |
318 case JCS_EXT_RGBX: | 322 case JCS_EXT_RGBX: |
| 323 case JCS_EXT_RGBA: |
319 gray_extrgbx_convert_internal(cinfo, input_buf, input_row, output_buf, | 324 gray_extrgbx_convert_internal(cinfo, input_buf, input_row, output_buf, |
320 num_rows); | 325 num_rows); |
321 break; | 326 break; |
322 case JCS_EXT_BGR: | 327 case JCS_EXT_BGR: |
323 gray_extbgr_convert_internal(cinfo, input_buf, input_row, output_buf, | 328 gray_extbgr_convert_internal(cinfo, input_buf, input_row, output_buf, |
324 num_rows); | 329 num_rows); |
325 break; | 330 break; |
326 case JCS_EXT_BGRX: | 331 case JCS_EXT_BGRX: |
| 332 case JCS_EXT_BGRA: |
327 gray_extbgrx_convert_internal(cinfo, input_buf, input_row, output_buf, | 333 gray_extbgrx_convert_internal(cinfo, input_buf, input_row, output_buf, |
328 num_rows); | 334 num_rows); |
329 break; | 335 break; |
330 case JCS_EXT_XBGR: | 336 case JCS_EXT_XBGR: |
| 337 case JCS_EXT_ABGR: |
331 gray_extxbgr_convert_internal(cinfo, input_buf, input_row, output_buf, | 338 gray_extxbgr_convert_internal(cinfo, input_buf, input_row, output_buf, |
332 num_rows); | 339 num_rows); |
333 break; | 340 break; |
334 case JCS_EXT_XRGB: | 341 case JCS_EXT_XRGB: |
| 342 case JCS_EXT_ARGB: |
335 gray_extxrgb_convert_internal(cinfo, input_buf, input_row, output_buf, | 343 gray_extxrgb_convert_internal(cinfo, input_buf, input_row, output_buf, |
336 num_rows); | 344 num_rows); |
337 break; | 345 break; |
338 default: | 346 default: |
339 gray_rgb_convert_internal(cinfo, input_buf, input_row, output_buf, | 347 gray_rgb_convert_internal(cinfo, input_buf, input_row, output_buf, |
340 num_rows); | 348 num_rows); |
341 break; | 349 break; |
342 } | 350 } |
343 } | 351 } |
344 | 352 |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
464 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); | 472 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); |
465 break; | 473 break; |
466 | 474 |
467 case JCS_RGB: | 475 case JCS_RGB: |
468 case JCS_EXT_RGB: | 476 case JCS_EXT_RGB: |
469 case JCS_EXT_RGBX: | 477 case JCS_EXT_RGBX: |
470 case JCS_EXT_BGR: | 478 case JCS_EXT_BGR: |
471 case JCS_EXT_BGRX: | 479 case JCS_EXT_BGRX: |
472 case JCS_EXT_XBGR: | 480 case JCS_EXT_XBGR: |
473 case JCS_EXT_XRGB: | 481 case JCS_EXT_XRGB: |
| 482 case JCS_EXT_RGBA: |
| 483 case JCS_EXT_BGRA: |
| 484 case JCS_EXT_ABGR: |
| 485 case JCS_EXT_ARGB: |
474 cinfo->out_color_components = rgb_pixelsize[cinfo->out_color_space]; | 486 cinfo->out_color_components = rgb_pixelsize[cinfo->out_color_space]; |
475 if (cinfo->jpeg_color_space == JCS_YCbCr) { | 487 if (cinfo->jpeg_color_space == JCS_YCbCr) { |
476 if (jsimd_can_ycc_rgb()) | 488 if (jsimd_can_ycc_rgb()) |
477 cconvert->pub.color_convert = jsimd_ycc_rgb_convert; | 489 cconvert->pub.color_convert = jsimd_ycc_rgb_convert; |
478 else { | 490 else { |
479 cconvert->pub.color_convert = ycc_rgb_convert; | 491 cconvert->pub.color_convert = ycc_rgb_convert; |
480 build_ycc_rgb_table(cinfo); | 492 build_ycc_rgb_table(cinfo); |
481 } | 493 } |
482 } else if (cinfo->jpeg_color_space == JCS_GRAYSCALE) { | 494 } else if (cinfo->jpeg_color_space == JCS_GRAYSCALE) { |
483 cconvert->pub.color_convert = gray_rgb_convert; | 495 cconvert->pub.color_convert = gray_rgb_convert; |
(...skipping 23 matching lines...) Expand all Loading... |
507 } else /* unsupported non-null conversion */ | 519 } else /* unsupported non-null conversion */ |
508 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); | 520 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); |
509 break; | 521 break; |
510 } | 522 } |
511 | 523 |
512 if (cinfo->quantize_colors) | 524 if (cinfo->quantize_colors) |
513 cinfo->output_components = 1; /* single colormapped output component */ | 525 cinfo->output_components = 1; /* single colormapped output component */ |
514 else | 526 else |
515 cinfo->output_components = cinfo->out_color_components; | 527 cinfo->output_components = cinfo->out_color_components; |
516 } | 528 } |
OLD | NEW |