From 6adfbe12f666ca3a93f68c8296d11518c4a4cfe2 Mon Sep 17 00:00:00 2001 From: Kirill Borunov Date: Thu, 30 Jan 2025 12:15:02 -0300 Subject: [PATCH] Performance improvement for Camera plugin. Rotating the bitmap is expensive on some devices. Doing the resize before the rotation reduces notably the delay on these devices. --- .../com/capacitorjs/plugins/camera/CameraPlugin.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/camera/android/src/main/java/com/capacitorjs/plugins/camera/CameraPlugin.java b/camera/android/src/main/java/com/capacitorjs/plugins/camera/CameraPlugin.java index d2a52ac46..3d2aea0e4 100644 --- a/camera/android/src/main/java/com/capacitorjs/plugins/camera/CameraPlugin.java +++ b/camera/android/src/main/java/com/capacitorjs/plugins/camera/CameraPlugin.java @@ -746,16 +746,17 @@ private Uri getTempImage(Uri u, ByteArrayOutputStream bitmapOutputStream) { * @return */ private Bitmap prepareBitmap(Bitmap bitmap, Uri imageUri, ExifWrapper exif) throws IOException { - if (settings.isShouldCorrectOrientation()) { - final Bitmap newBitmap = ImageUtils.correctOrientation(getContext(), bitmap, imageUri, exif); - bitmap = replaceBitmap(bitmap, newBitmap); - } if (settings.isShouldResize()) { final Bitmap newBitmap = ImageUtils.resize(bitmap, settings.getWidth(), settings.getHeight()); bitmap = replaceBitmap(bitmap, newBitmap); } + if (settings.isShouldCorrectOrientation()) { + final Bitmap newBitmap = ImageUtils.correctOrientation(getContext(), bitmap, imageUri, exif); + bitmap = replaceBitmap(bitmap, newBitmap); + } + return bitmap; }