diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 00459d7c20..1c2f36e554 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1460,15 +1460,17 @@ public class FragmentCompose extends FragmentBase { options.inJustDecodeBounds = true; BitmapFactory.decodeFile(file.getAbsolutePath(), options); - int scaleTo = REDUCED_IMAGE_SIZE; - int factor = Math.min(options.outWidth / scaleTo, options.outWidth / scaleTo); + int factor = 1; + while (options.outWidth / factor > REDUCED_IMAGE_SIZE || + options.outHeight / factor > REDUCED_IMAGE_SIZE) + factor *= 2; + if (factor > 1) { options.inJustDecodeBounds = false; options.inSampleSize = factor; Bitmap scaled = BitmapFactory.decodeFile(file.getAbsolutePath(), options); if (scaled != null) { - Log.i("Image target size=" + scaled.getWidth() + "x" + scaled.getHeight()); OutputStream out = null; diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 14d66df8fc..a795b297b8 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -280,7 +280,10 @@ public class HtmlHelper { is = new URL(source).openStream(); int scaleTo = context.getResources().getDisplayMetrics().widthPixels; - int factor = Math.min(options.outWidth / scaleTo, options.outWidth / scaleTo); + int factor = 1; + while (options.outWidth / factor > scaleTo) + factor *= 2; + if (factor > 1) { Log.i("Download image factor=" + factor); options.inJustDecodeBounds = false;