Disable png encodes from Alpha8, Float16

These don't behave as we would want anyway.  They just copy
to N32, and then encode.

BUG=skia:5616
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2332743003

Review-Url: https://codereview.chromium.org/2332743003
This commit is contained in:
msarett 2016-09-12 15:49:37 -07:00 committed by Commit bot
parent cdedd0e061
commit 029819baa3

View File

@ -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,