| Index: src/codec/SkJpegDecoderMgr.cpp
|
| diff --git a/src/codec/SkJpegDecoderMgr.cpp b/src/codec/SkJpegDecoderMgr.cpp
|
| index b5a12297a0c41b4f3e74ab194b0c66de14ff6842..f0ed4522ca6e562eac23e5134e8bc315c02d7c60 100644
|
| --- a/src/codec/SkJpegDecoderMgr.cpp
|
| +++ b/src/codec/SkJpegDecoderMgr.cpp
|
| @@ -39,9 +39,22 @@
|
|
|
| SkColorType JpegDecoderMgr::getColorType() {
|
| switch (fDInfo.jpeg_color_space) {
|
| + case JCS_CMYK:
|
| + case JCS_YCCK:
|
| + // libjpeg cannot convert from CMYK or YCCK to RGB.
|
| + // Here, we ask libjpeg to give us CMYK samples back and
|
| + // we will later manually convert them to RGB.
|
| + fDInfo.out_color_space = JCS_CMYK;
|
| + return kN32_SkColorType;
|
| case JCS_GRAYSCALE:
|
| + fDInfo.out_color_space = JCS_GRAYSCALE;
|
| return kGray_8_SkColorType;
|
| default:
|
| +#ifdef ANDROID_RGB
|
| + fDInfo.out_color_space = JCS_RGBA_8888;
|
| +#else
|
| + fDInfo.out_color_space = JCS_RGB;
|
| +#endif
|
| return kN32_SkColorType;
|
| }
|
| }
|
| @@ -51,7 +64,7 @@
|
| , fInit(false)
|
| {
|
| // Error manager must be set before any calls to libjeg in order to handle failures
|
| - fDInfo.err = turbo_jpeg_std_error(&fErrorMgr);
|
| + fDInfo.err = jpeg_std_error(&fErrorMgr);
|
| fErrorMgr.error_exit = skjpeg_err_exit;
|
| }
|
|
|
|
|