Index: src/images/SkPNGImageEncoder.cpp |
diff --git a/src/images/SkPNGImageEncoder.cpp b/src/images/SkPNGImageEncoder.cpp |
index b30cd2509a6b6aa0a856b1ea2e67f0e106e108fc..3925f29be7bc90c1ad4ff04827697cb4277dc631 100644 |
--- a/src/images/SkPNGImageEncoder.cpp |
+++ b/src/images/SkPNGImageEncoder.cpp |
@@ -182,11 +182,10 @@ private: |
}; |
bool SkPNGImageEncoder::onEncode(SkWStream* stream, |
- const SkBitmap& originalBitmap, |
+ const SkBitmap& bitmap, |
int /*quality*/) { |
- SkBitmap copy; |
- const SkBitmap* bitmap = &originalBitmap; |
- switch (originalBitmap.colorType()) { |
+ const SkColorType ct = bitmap.colorType(); |
+ switch (ct) { |
case kIndex_8_SkColorType: |
case kGray_8_SkColorType: |
case kRGBA_8888_SkColorType: |
@@ -195,14 +194,10 @@ bool SkPNGImageEncoder::onEncode(SkWStream* stream, |
case kRGB_565_SkColorType: |
break; |
default: |
- // TODO(scroggo): support Alpha_8 as Grayscale(black)+Alpha |
- if (originalBitmap.copyTo(©, kN32_SkColorType)) { |
- bitmap = © |
- } |
+ return false; |
} |
- SkColorType ct = bitmap->colorType(); |
- const SkAlphaType alphaType = bitmap->alphaType(); |
+ const SkAlphaType alphaType = bitmap.alphaType(); |
switch (alphaType) { |
case kUnpremul_SkAlphaType: |
if (kARGB_4444_SkColorType == ct) { |
@@ -262,14 +257,14 @@ bool SkPNGImageEncoder::onEncode(SkWStream* stream, |
return false; |
} |
- SkAutoLockPixels alp(*bitmap); |
+ SkAutoLockPixels alp(bitmap); |
// readyToDraw checks for pixels (and colortable if that is required) |
- if (!bitmap->readyToDraw()) { |
+ if (!bitmap.readyToDraw()) { |
return false; |
} |
// we must do this after we have locked the pixels |
- SkColorTable* ctable = bitmap->getColorTable(); |
+ SkColorTable* ctable = bitmap.getColorTable(); |
if (ctable) { |
if (ctable->count() == 0) { |
return false; |
@@ -278,7 +273,7 @@ bool SkPNGImageEncoder::onEncode(SkWStream* stream, |
bitDepth = computeBitDepth(ctable->count()); |
} |
- return doEncode(stream, *bitmap, alphaType, colorType, bitDepth, ct, sig_bit); |
+ return doEncode(stream, bitmap, alphaType, colorType, bitDepth, ct, sig_bit); |
} |
bool SkPNGImageEncoder::doEncode(SkWStream* stream, const SkBitmap& bitmap, |