diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-06-26 03:05:54 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-06-26 03:05:54 +0000 |
commit | f6d777facedfa9c92fee540b47737eed20b50996 (patch) | |
tree | 54a24e7d7efe744c6e530a54f5d0476f68f1b9be | |
parent | a0e6c67a57120e879e8b7a31dc10294667d2b7e9 (diff) | |
parent | 5cd9058dbcb28bc1fb366b21ee8532460e2f9c22 (diff) | |
download | skia-f6d777facedfa9c92fee540b47737eed20b50996.tar.gz |
Snap for 7495277 from 5cd9058dbcb28bc1fb366b21ee8532460e2f9c22 to sc-d1-release
Change-Id: Ie9acce32cf817546ae31a952792ca444298db743
-rw-r--r-- | src/codec/SkPngCodec.cpp | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/src/codec/SkPngCodec.cpp b/src/codec/SkPngCodec.cpp index 288dee6ef5..f97a52fc11 100644 --- a/src/codec/SkPngCodec.cpp +++ b/src/codec/SkPngCodec.cpp @@ -933,22 +933,39 @@ void AutoCleanPng::infoCallback(size_t idatLength) { } } - if (encodedColorType == PNG_COLOR_TYPE_GRAY_ALPHA) { - png_color_8p sigBits; - if (png_get_sBIT(fPng_ptr, fInfo_ptr, &sigBits)) { - if (8 == sigBits->alpha && kGraySigBit_GrayAlphaIsJustAlpha == sigBits->gray) { - color = SkEncodedInfo::kXAlpha_Color; + switch (encodedColorType) { + case PNG_COLOR_TYPE_GRAY_ALPHA:{ + png_color_8p sigBits; + if (png_get_sBIT(fPng_ptr, fInfo_ptr, &sigBits)) { + if (8 == sigBits->alpha && kGraySigBit_GrayAlphaIsJustAlpha == sigBits->gray) { + color = SkEncodedInfo::kXAlpha_Color; + } } + break; } - } else if (SkEncodedInfo::kOpaque_Alpha == alpha) { + case PNG_COLOR_TYPE_RGB:{ + png_color_8p sigBits; + if (png_get_sBIT(fPng_ptr, fInfo_ptr, &sigBits)) { + if (5 == sigBits->red && 6 == sigBits->green && 5 == sigBits->blue) { + // Recommend a decode to 565 if the sBIT indicates 565. + color = SkEncodedInfo::k565_Color; + } + } + break; + } + } + +#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK + if (encodedColorType != PNG_COLOR_TYPE_GRAY_ALPHA + && SkEncodedInfo::kOpaque_Alpha == alpha) { png_color_8p sigBits; if (png_get_sBIT(fPng_ptr, fInfo_ptr, &sigBits)) { if (5 == sigBits->red && 6 == sigBits->green && 5 == sigBits->blue) { - // Recommend a decode to 565 if the sBIT indicates 565. - color = SkEncodedInfo::k565_Color; + SkAndroidFrameworkUtils::SafetyNetLog("190188264"); } } } +#endif // SK_BUILD_FOR_ANDROID_FRAMEWORK SkEncodedInfo encodedInfo = SkEncodedInfo::Make(origWidth, origHeight, color, alpha, bitDepth, std::move(profile)); |