From 65c08d7fc7b1fe154fe5ed9407e6ca89df5a1b7a Mon Sep 17 00:00:00 2001 From: Siddartha Pothapragada Date: Tue, 24 Feb 2026 13:58:11 -0800 Subject: [PATCH 1/2] Refactor resizeImage function for better resource handling Refactor image resizing to use input stream safely and improve bitmap scaling. --- .../com/example/executorchllamademo/ETImage.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ETImage.kt b/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ETImage.kt index 02e11532..e048cbef 100644 --- a/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ETImage.kt +++ b/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ETImage.kt @@ -87,15 +87,21 @@ class ETImage( private fun resizeImage(uri: Uri, sideSize: Int): Bitmap? { val inputStream = contentResolver.openInputStream(uri) if (inputStream == null) { - ETLogging.getInstance().log("Unable to resize image, input streams is null") + ETLogging.getInstance().log("Unable to resize image, input stream is null") return null } - val bitmap = BitmapFactory.decodeStream(inputStream) + val bitmap = inputStream.use { + BitmapFactory.decodeStream(it) + } if (bitmap == null) { ETLogging.getInstance().log("Unable to resize image, bitmap during decode stream is null") return null } - - return Bitmap.createScaledBitmap(bitmap, sideSize, sideSize, false) + val scaled = Bitmap.createScaledBitmap(bitmap, sideSize, sideSize, true) // ← bilinear + if (scaled !== bitmap) { + bitmap.recycle() + } + return scaled } + } From b35401090d6eb49bea2b5ca6a14c5562d9d4d734 Mon Sep 17 00:00:00 2001 From: Siddartha Pothapragada Date: Tue, 24 Feb 2026 15:28:17 -0800 Subject: [PATCH 2/2] Recycle bitmap after extracting RGB values --- .../app/src/main/java/com/example/executorchllamademo/ETImage.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ETImage.kt b/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ETImage.kt index e048cbef..4dcb646f 100644 --- a/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ETImage.kt +++ b/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ETImage.kt @@ -78,6 +78,7 @@ class ETImage( rgbValues[(y * width + x) + 2 * height * width] = blue.toByte() } } + bitmap.recycle() return rgbValues } catch (e: FileNotFoundException) { throw RuntimeException(e)