aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeon Scroggins III <scroggo@google.com>2021-06-24 22:51:27 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-06-24 22:51:27 +0000
commitd4858d9e30ba5e6a72d9649b66dca16d0b79a745 (patch)
treeed5af413f6bc41eae1694d61a6b550785fd89e0d
parent66302698226902c6dcaf8cb00d7f0ce72a6d0a5a (diff)
parentc2decc27f2c9442d9705d91e67e93d23f6978059 (diff)
downloadskia-d4858d9e30ba5e6a72d9649b66dca16d0b79a745.tar.gz
Only treat PNG_COLOR_TYPE_RGB as 565 am: f6de97fce5 am: c2decc27f2
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/skia/+/14968800 Change-Id: I45ae355a144910252c6a937b6a75e6fbaa60857f
-rw-r--r--src/codec/SkPngCodec.cpp33
1 files changed, 25 insertions, 8 deletions
diff --git a/src/codec/SkPngCodec.cpp b/src/codec/SkPngCodec.cpp
index 4eaa034e64..9202e8ae53 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));