From feeea8f07c854e6b0ae2fec3aa2d239c17f32b5b Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Tue, 1 Feb 2011 11:22:46 -0800 Subject: [PATCH] Assume ARGB_8888 for unknown configs. Bug #3327175 Change-Id: If712a255ec65014cd2e007de1e4c6a1d67c19250 --- graphics/java/android/graphics/Bitmap.java | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java index a7730072136e..c7ae2cf91fd4 100644 --- a/graphics/java/android/graphics/Bitmap.java +++ b/graphics/java/android/graphics/Bitmap.java @@ -464,8 +464,24 @@ public final class Bitmap implements Parcelable { Rect srcR = new Rect(x, y, x + width, y + height); RectF dstR = new RectF(0, 0, width, height); - final Config newConfig = source.getConfig() == Config.ARGB_8888 || - source.getConfig() == Config.ARGB_4444 ? Config.ARGB_8888 : Config.RGB_565; + Config newConfig = Config.ARGB_8888; + final Config config = source.getConfig(); + // GIF files generate null configs, assume ARGB_8888 + if (config != null) { + switch (config) { + case RGB_565: + newConfig = Config.RGB_565; + break; + case ALPHA_8: + newConfig = Config.ALPHA_8; + break; + case ARGB_4444: + case ARGB_8888: + default: + newConfig = Config.ARGB_8888; + break; + } + } if (m == null || m.isIdentity()) { bitmap = createBitmap(neww, newh, newConfig, source.hasAlpha()); -- 2.11.0