Index: src/pdf/SkPDFImage.cpp |
diff --git a/src/pdf/SkPDFImage.cpp b/src/pdf/SkPDFImage.cpp |
index f2b105d473ced808fb802874aa9e133245a5b495..37fff810c37a0d9c6f6520e2be0832aee6bb3cb3 100644 |
--- a/src/pdf/SkPDFImage.cpp |
+++ b/src/pdf/SkPDFImage.cpp |
@@ -36,7 +36,6 @@ static size_t get_uncompressed_size(const SkBitmap& bitmap, |
return srcRect.width() * 3 * srcRect.height(); |
case SkBitmap::kARGB_8888_Config: |
return srcRect.width() * 3 * srcRect.height(); |
- case SkBitmap::kA1_Config: |
case SkBitmap::kA8_Config: |
return 1; |
default: |
@@ -166,48 +165,6 @@ static SkStream* extract_argb8888_data(const SkBitmap& bitmap, |
return stream; |
} |
-static SkStream* extract_a1_alpha(const SkBitmap& bitmap, |
- const SkIRect& srcRect, |
- bool* isOpaque, |
- bool* isTransparent) { |
- const int alphaRowBytes = (srcRect.width() + 7) / 8; |
- SkStream* stream = SkNEW_ARGS(SkMemoryStream, |
- (alphaRowBytes * srcRect.height())); |
- uint8_t* alphaDst = (uint8_t*)stream->getMemoryBase(); |
- |
- int offset1 = srcRect.fLeft % 8; |
- int offset2 = 8 - offset1; |
- |
- for (int y = srcRect.fTop; y < srcRect.fBottom; y++) { |
- uint8_t* src = bitmap.getAddr1(0, y); |
- // This may read up to one byte after src, but the |
- // potentially invalid bits are never used for computation. |
- for (int x = srcRect.fLeft; x < srcRect.fRight; x += 8) { |
- if (offset1) { |
- alphaDst[0] = src[x / 8] << offset1 | |
- src[x / 8 + 1] >> offset2; |
- } else { |
- alphaDst[0] = src[x / 8]; |
- } |
- if (x + 7 < srcRect.fRight) { |
- *isOpaque &= alphaDst[0] == SK_AlphaOPAQUE; |
- *isTransparent &= alphaDst[0] == SK_AlphaTRANSPARENT; |
- } |
- alphaDst++; |
- } |
- // Calculate the mask of bits we're interested in within the |
- // last byte of alphaDst. |
- // width mod 8 == 1 -> 0x80 ... width mod 8 == 7 -> 0xFE |
- uint8_t mask = ~((1 << (8 - (srcRect.width() % 8))) - 1); |
- if (srcRect.width() % 8) { |
- *isOpaque &= (alphaDst[-1] & mask) == (SK_AlphaOPAQUE & mask); |
- *isTransparent &= |
- (alphaDst[-1] & mask) == (SK_AlphaTRANSPARENT & mask); |
- } |
- } |
- return stream; |
-} |
- |
static SkStream* extract_a8_alpha(const SkBitmap& bitmap, |
const SkIRect& srcRect, |
bool* isOpaque, |
@@ -283,14 +240,6 @@ static SkStream* extract_image_data(const SkBitmap& bitmap, |
stream = extract_argb8888_data(bitmap, srcRect, extractAlpha, |
&isOpaque, &transparent); |
break; |
- case SkBitmap::kA1_Config: |
- if (!extractAlpha) { |
- stream = create_black_image(); |
- } else { |
- stream = extract_a1_alpha(bitmap, srcRect, |
- &isOpaque, &transparent); |
- } |
- break; |
case SkBitmap::kA8_Config: |
if (!extractAlpha) { |
stream = create_black_image(); |
@@ -574,8 +523,7 @@ SkPDFImage::SkPDFImage(SkStream* stream, |
insertName("Type", "XObject"); |
insertName("Subtype", "Image"); |
- bool alphaOnly = (config == SkBitmap::kA1_Config || |
- config == SkBitmap::kA8_Config); |
+ bool alphaOnly = (config == SkBitmap::kA8_Config); |
if (!isAlpha && alphaOnly) { |
// For alpha only images, we stretch a single pixel of black for |
@@ -601,8 +549,6 @@ SkPDFImage::SkPDFImage(SkStream* stream, |
int bitsPerComp = 8; |
if (config == SkBitmap::kARGB_4444_Config) { |
bitsPerComp = 4; |
- } else if (isAlpha && config == SkBitmap::kA1_Config) { |
- bitsPerComp = 1; |
} |
insertInt("BitsPerComponent", bitsPerComp); |