From 5e041d9f1d66f7c793b35028721e420728dcca21 Mon Sep 17 00:00:00 2001 From: Konrad Pozniak Date: Sun, 21 Jun 2020 18:26:06 +0200 Subject: [PATCH] speedup blurhash decoding by using a intermediate int array (#1835) --- .../java/com/keylesspalace/tusky/util/BlurHashDecoder.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/util/BlurHashDecoder.kt b/app/src/main/java/com/keylesspalace/tusky/util/BlurHashDecoder.kt index 3429dc24..bd5f9007 100644 --- a/app/src/main/java/com/keylesspalace/tusky/util/BlurHashDecoder.kt +++ b/app/src/main/java/com/keylesspalace/tusky/util/BlurHashDecoder.kt @@ -87,7 +87,7 @@ object BlurHashDecoder { numCompX: Int, numCompY: Int, colors: Array ): Bitmap { - val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888) + val imageArray = IntArray(width * height) for (y in 0 until height) { for (x in 0 until width) { var r = 0f @@ -102,10 +102,10 @@ object BlurHashDecoder { b += color[2] * basis } } - bitmap.setPixel(x, y, Color.rgb(linearToSrgb(r), linearToSrgb(g), linearToSrgb(b))) + imageArray[x + width * y] = Color.rgb(linearToSrgb(r), linearToSrgb(g), linearToSrgb(b)) } } - return bitmap + return Bitmap.createBitmap(imageArray, width, height, Bitmap.Config.ARGB_8888) } private fun linearToSrgb(value: Float): Int {