aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/codec
diff options
context:
space:
mode:
authorGravatar nagarajan.n <nagarajan.n@samsung.com>2017-09-07 20:03:29 +0530
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-09-13 14:10:52 +0000
commit08cda14d61f02d2e376a9cd88131daebad6b21e0 (patch)
tree5fc49bb25c60360ace90a5158cea3ed11c57103e /src/codec
parentb433c5691b0d130697a89e7362c76ec6ae74a254 (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.cpp41
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;
}
/*