Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 90752485 authored by Romain Guy's avatar Romain Guy
Browse files

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
parent 40a4ab13
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -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);