Index: src/codec/SkPngCodec.cpp |
diff --git a/src/codec/SkPngCodec.cpp b/src/codec/SkPngCodec.cpp |
index 60f7b9b866518dc5ee6679f0a8a1028524417f61..c110fde605ec811882891aca41c17c5e1e977c0f 100644 |
--- a/src/codec/SkPngCodec.cpp |
+++ b/src/codec/SkPngCodec.cpp |
@@ -706,6 +706,16 @@ static bool read_header(SkStream* stream, SkPngChunkReader* chunkReader, SkCodec |
alpha = SkEncodedInfo::kUnpremul_Alpha; |
} |
+ // Add a special check for 565. |
+ if (SkEncodedInfo::kOpaque_Alpha == alpha) { |
+ png_color_8p sigBits; |
+ if (png_get_sBIT(png_ptr, info_ptr, &sigBits)) { |
+ if (5 == sigBits->red && 6 == sigBits->green && 5 == sigBits->blue) { |
+ color = SkEncodedInfo::k565_Color; |
+ } |
+ } |
+ } |
+ |
int numberPasses = png_set_interlace_handling(png_ptr); |
autoClean.release(); |