# HG changeset patch # User David Barts # Date 1613600985 28800 # Node ID 678adef4774f28d03129dcd361949d422b3fd9b0 # Parent 5626557ac54279924a9a6fd506718773cd5ab959 Move more stuff into worker threads. diff -r 5626557ac542 -r 678adef4774f app/src/main/java/com/bartsent/simpleresizer/EditImage.kt --- a/app/src/main/java/com/bartsent/simpleresizer/EditImage.kt Wed Feb 17 13:39:50 2021 -0800 +++ b/app/src/main/java/com/bartsent/simpleresizer/EditImage.kt Wed Feb 17 14:29:45 2021 -0800 @@ -142,8 +142,6 @@ if (factor >= 1.0) { throw IllegalArgumentException("can only scale down") } - val newBitmap = Bitmap.createBitmap((oldBitmap.width * factor).roundToInt(), (oldBitmap.height * factor).roundToInt(), oldBitmap.config) - copyColorSpace(oldBitmap, newBitmap) binding.progressBar.visibility = ProgressBar.VISIBLE thread { val newBitmap = oldBitmap.getScaledInstance( @@ -218,14 +216,14 @@ throw IllegalArgumentException("$deg not a multiple of 90") } val (w, h) = if (deg % 180 == 0) Pair(oldBitmap.width, oldBitmap.height) else Pair(oldBitmap.height, oldBitmap.width) - val newBitmap = Bitmap.createBitmap(w, h, oldBitmap.config) - copyColorSpace(oldBitmap, newBitmap) val rotater = Matrix().apply { setRotate(deg.toFloat(), oldBitmap.width.toFloat()/2.0f, oldBitmap.height.toFloat()/2.0f) postTranslate((w - oldBitmap.width).toFloat()/2.0f, (h - oldBitmap.height).toFloat()/2.0f) } binding.progressBar.visibility = ProgressBar.VISIBLE thread { + val newBitmap = Bitmap.createBitmap(w, h, oldBitmap.config) + copyColorSpace(oldBitmap, newBitmap) Canvas(newBitmap).run { drawBitmap(oldBitmap, rotater, null) } diff -r 5626557ac542 -r 678adef4774f app/src/main/java/com/bartsent/simpleresizer/lib/LanczosKernel.kt --- a/app/src/main/java/com/bartsent/simpleresizer/lib/LanczosKernel.kt Wed Feb 17 13:39:50 2021 -0800 +++ b/app/src/main/java/com/bartsent/simpleresizer/lib/LanczosKernel.kt Wed Feb 17 14:29:45 2021 -0800 @@ -12,12 +12,12 @@ } private fun sinc(x: Double): Double { - val remembered = memory.get(x) + val remembered = memory[x] if (remembered != null) return remembered val pix = PI * x val calculated = sin(pix) / pix - memory.put(x, calculated) + memory[x] = calculated return calculated }