diff options
author | nagarajan.n <nagarajan.n@samsung.com> | 2017-09-07 20:03:29 +0530 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-09-13 14:10:52 +0000 |
commit | 08cda14d61f02d2e376a9cd88131daebad6b21e0 (patch) | |
tree | 5fc49bb25c60360ace90a5158cea3ed11c57103e /src/codec | |
parent | b433c5691b0d130697a89e7362c76ec6ae74a254 (diff) |
Share code for setting the out_color_space CMYK encoded colorspaces
Share code for setting the out_color_space CMYK encoded colorspaces
Bug: NONE
Change-Id: I17318aa6c04f4105dd9b7c453ccbc3c3ed563e8f
Reviewed-on: https://skia-review.googlesource.com/43420
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
Diffstat (limited to 'src/codec')
-rw-r--r-- | src/codec/SkJpegCodec.cpp | 41 |
1 files changed, 17 insertions, 24 deletions
diff --git a/src/codec/SkJpegCodec.cpp b/src/codec/SkJpegCodec.cpp index bf6b6f497c..32ec0c1a43 100644 --- a/src/codec/SkJpegCodec.cpp +++ b/src/codec/SkJpegCodec.cpp @@ -386,48 +386,37 @@ bool SkJpegCodec::setOutputColorSpace(const SkImageInfo& dstInfo) { "- it is being decoded as non-opaque, which will draw slower\n"); } - // Check if we will decode to CMYK. libjpeg-turbo does not convert CMYK to RGBA, so - // we must do it ourselves. J_COLOR_SPACE encodedColorType = fDecoderMgr->dinfo()->jpeg_color_space; - bool isCMYK = (JCS_CMYK == encodedColorType || JCS_YCCK == encodedColorType); // Check for valid color types and set the output color space switch (dstInfo.colorType()) { case kRGBA_8888_SkColorType: - if (isCMYK) { - fDecoderMgr->dinfo()->out_color_space = JCS_CMYK; - } else { - fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA; - } - return true; + fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA; + break; case kBGRA_8888_SkColorType: - if (isCMYK) { - fDecoderMgr->dinfo()->out_color_space = JCS_CMYK; - } else if (this->colorXform()) { + if (this->colorXform()) { // Always using RGBA as the input format for color xforms makes the // implementation a little simpler. fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA; } else { fDecoderMgr->dinfo()->out_color_space = JCS_EXT_BGRA; } - return true; + break; case kRGB_565_SkColorType: - if (isCMYK) { - fDecoderMgr->dinfo()->out_color_space = JCS_CMYK; - } else if (this->colorXform()) { + if (this->colorXform()) { fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA; } else { fDecoderMgr->dinfo()->dither_mode = JDITHER_NONE; fDecoderMgr->dinfo()->out_color_space = JCS_RGB565; } - return true; + break; case kGray_8_SkColorType: if (this->colorXform() || JCS_GRAYSCALE != encodedColorType) { return false; } fDecoderMgr->dinfo()->out_color_space = JCS_GRAYSCALE; - return true; + break; case kRGBA_F16_SkColorType: SkASSERT(this->colorXform()); @@ -435,15 +424,19 @@ bool SkJpegCodec::setOutputColorSpace(const SkImageInfo& dstInfo) { return false; } - if (isCMYK) { - fDecoderMgr->dinfo()->out_color_space = JCS_CMYK; - } else { - fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA; - } - return true; + fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA; + break; default: return false; } + + // Check if we will decode to CMYK. libjpeg-turbo does not convert CMYK to RGBA, so + // we must do it ourselves. + if (JCS_CMYK == encodedColorType || JCS_YCCK == encodedColorType) { + fDecoderMgr->dinfo()->out_color_space = JCS_CMYK; + } + + return true; } /* |