Properly resize paletted bitmaps when adjusting for density
If an app used a GIF file in the wrong density bucket, the auto-scaling code would not properly resize the bitmap. This issue affects third party applications, here is the external bug report: http://code.google.com/p/android/issues/detail?id=34619 DO NOT MERGE Change-Id: I7f99b28ad6e6c28bdbcb29bbbadcb215268ff710
This commit is contained in:
@@ -327,7 +327,18 @@ static jobject doDecode(JNIEnv* env, SkStream* stream, jobject padding,
|
||||
const float sx = scaledWidth / float(decoded->width());
|
||||
const float sy = scaledHeight / float(decoded->height());
|
||||
|
||||
bitmap->setConfig(decoded->getConfig(), scaledWidth, scaledHeight);
|
||||
SkBitmap::Config config = decoded->config();
|
||||
switch (config) {
|
||||
case SkBitmap::kNo_Config:
|
||||
case SkBitmap::kIndex8_Config:
|
||||
case SkBitmap::kRLE_Index8_Config:
|
||||
config = SkBitmap::kARGB_8888_Config;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
bitmap->setConfig(config, scaledWidth, scaledHeight);
|
||||
bitmap->setIsOpaque(decoded->isOpaque());
|
||||
bitmap->allocPixels(&javaAllocator, NULL);
|
||||
bitmap->eraseColor(0);
|
||||
|
||||
Reference in New Issue
Block a user