Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(653)

Unified Diff: src/images/SkPNGImageEncoder.cpp

Issue 2332743003: Disable png encodes from Alpha8, Float16 (Closed)
Patch Set: Rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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(&copy, 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,
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698