diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-10-07 17:21:29 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-10-07 17:21:29 +0000 |
commit | 9269bff8ff8119a002855012d52160492542c22f (patch) | |
tree | a17ecb55759d29a01c856d6d9e568e3715fc9b5d | |
parent | 2abfeb3abee550c87e2190798dad2e7f537a5fca (diff) | |
parent | d3ff0462dc7d7f569bea4f18fda46485979b25d1 (diff) | |
download | skia-android10-android13-mainline-tzdata-release.tar.gz |
Snap for 7802995 from d3ff0462dc7d7f569bea4f18fda46485979b25d1 to qt-aml-tzdata-releaseq_tzdata_aml_297100400q_tzdata_aml_297100300q_tzdata_aml_297100000q_tzdata_aml_296200000q_tzdata_aml_295600118q_tzdata_aml_295600110q_tzdata_aml_295500002q_tzdata_aml_295500001q_tzdata_aml_294400310android-mainline-12.0.0_r54android-mainline-12.0.0_r111android-mainline-10.0.0_r13q_tzdata_aml_297100000android12-mainline-tzdata-releaseandroid10-mainline-tzdata-releaseandroid10-android13-mainline-tzdata-release
Change-Id: Id4806414e167ac901488708dde0ecf06810cb8bb
-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 ed549b745e..24be705f33 100644 --- a/src/codec/SkPngCodec.cpp +++ b/src/codec/SkPngCodec.cpp @@ -934,22 +934,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)); |