Index: src/images/SkImageDecoder_libpng.cpp |
diff --git a/src/images/SkImageDecoder_libpng.cpp b/src/images/SkImageDecoder_libpng.cpp |
index a03ed10453f70d8053dc72bafee1bae8f8f5ae3f..fe72d8a9d881bf483138bf15b000680250e07550 100644 |
--- a/src/images/SkImageDecoder_libpng.cpp |
+++ b/src/images/SkImageDecoder_libpng.cpp |
@@ -827,7 +827,24 @@ private: |
typedef SkImageEncoder INHERITED; |
}; |
-bool SkPNGImageEncoder::onEncode(SkWStream* stream, const SkBitmap& bitmap, int /*quality*/) { |
+bool SkPNGImageEncoder::onEncode(SkWStream* stream, |
+ const SkBitmap& originalBitmap, |
+ int /*quality*/) { |
+ SkBitmap copy; |
+ bool useCopy = false; |
scroggo
2015/12/07 17:05:45
I don't think this variable is necessary. Instead
hal.canary
2015/12/07 21:34:38
done.
|
+ switch (originalBitmap.colorType()) { |
+ case kIndex_8_SkColorType: |
+ case kN32_SkColorType: |
+ case kARGB_4444_SkColorType: |
+ case kRGB_565_SkColorType: |
+ break; |
+ default: |
scroggo
2015/12/07 17:05:45
So basically, what we are now supporting are:
- T
hal.canary
2015/12/07 21:34:38
I added TODOs and assigned them to you.
|
+ if (originalBitmap.copyTo(©, kN32_SkColorType)) { |
+ useCopy = true; |
+ } |
+ } |
+ const SkBitmap& bitmap = useCopy ? copy : originalBitmap; |
+ |
SkColorType ct = bitmap.colorType(); |
const bool hasAlpha = !bitmap.isOpaque(); |