diff options
author | 2013-10-02 15:50:19 +0000 | |
---|---|---|
committer | 2013-10-02 15:50:19 +0000 | |
commit | 354fd97ee00d2b604bf72132b7449b32a88dc2db (patch) | |
tree | 5887cdd74abd7ee3a74ddba6f1ce31ca245b427f /src | |
parent | f614b76377cd4a273065ab01efabf9ded344eac2 (diff) |
Do not convert non gray PNG to A8.
If the user requested A8, but the source is not gray, switch to
ARGB8888.
BUG=https://b.corp.google.com/issue?id=9189955
R=reed@google.com
Review URL: https://codereview.chromium.org/24882002
git-svn-id: http://skia.googlecode.com/svn/trunk@11573 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src')
-rw-r--r-- | src/images/SkImageDecoder_libpng.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/images/SkImageDecoder_libpng.cpp b/src/images/SkImageDecoder_libpng.cpp index e942f21c78..fc220eae1a 100644 --- a/src/images/SkImageDecoder_libpng.cpp +++ b/src/images/SkImageDecoder_libpng.cpp @@ -532,9 +532,13 @@ bool SkPNGImageDecoder::getBitmapConfig(png_structp png_ptr, png_infop info_ptr, *configp = SkBitmap::kARGB_8888_Config; } } else { - if (*configp != SkBitmap::kRGB_565_Config && - *configp != SkBitmap::kARGB_4444_Config && - *configp != SkBitmap::kA8_Config) { + if (SkBitmap::kA8_Config == *configp) { + if (k8BitGray_SrcDepth != srcDepth) { + // Converting a non grayscale image to A8 is not currently supported. + *configp = SkBitmap::kARGB_8888_Config; + } + } else if (*configp != SkBitmap::kRGB_565_Config && + *configp != SkBitmap::kARGB_4444_Config) { *configp = SkBitmap::kARGB_8888_Config; } } |