summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorByunghun Jeon <bjeon@codeaurora.org>2015-11-23 16:48:29 -0800
committerJay Wang <jaywang@codeaurora.org>2015-12-22 17:35:47 -0800
commitd67e88d910bb451d041e32c02feecee24e562f51 (patch)
tree9f63de5b69088ad33c68a4f5bfb88a38ae15887d
parent9416c8e9845221a9f0be86fd32b7d9d78748006b (diff)
downloadandroid_packages_apps_Gallery2-d67e88d910bb451d041e32c02feecee24e562f51.tar.gz
android_packages_apps_Gallery2-d67e88d910bb451d041e32c02feecee24e562f51.tar.bz2
android_packages_apps_Gallery2-d67e88d910bb451d041e32c02feecee24e562f51.zip
Gallery2: Resize DDM dest buffer for certain image resolutions
DDM requires dest buffer to have even width and height. For images that down sample to non-even width and height, resize the dest buffer for DDM to even width and height. Change-Id: I6f895bef2e038770d8f2c443d1d1f042d749227d
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamFusion.java12
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamSketch.java12
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamera.java12
3 files changed, 36 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamFusion.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamFusion.java
index 86ad45f94..ed3552bd5 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamFusion.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamFusion.java
@@ -108,6 +108,18 @@ public class ImageFilterDualCamFusion extends ImageFilter {
filteredW = filteredH;
filteredH = tmp;
}
+
+ // non even width or height
+ if(filteredW%2 != 0 || filteredH%2 != 0) {
+ float aspect = (float)filteredH / (float)filteredW;
+ if(filteredW >= filteredH) {
+ filteredW = MasterImage.MAX_BITMAP_DIM;
+ filteredH = (int)(filteredW * aspect);
+ } else {
+ filteredH = MasterImage.MAX_BITMAP_DIM;
+ filteredW = (int)(filteredH / aspect);
+ }
+ }
}
filteredBitmap = MasterImage.getImage().getBitmapCache().getBitmap(filteredW, filteredH, BitmapCache.FILTERS);
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamSketch.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamSketch.java
index 30ce83438..1d8417992 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamSketch.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamSketch.java
@@ -102,6 +102,18 @@ public class ImageFilterDualCamSketch extends ImageFilter {
filteredW = filteredH;
filteredH = tmp;
}
+
+ // non even width or height
+ if(filteredW%2 != 0 || filteredH%2 != 0) {
+ float aspect = (float)filteredH / (float)filteredW;
+ if(filteredW >= filteredH) {
+ filteredW = MasterImage.MAX_BITMAP_DIM;
+ filteredH = (int)(filteredW * aspect);
+ } else {
+ filteredH = MasterImage.MAX_BITMAP_DIM;
+ filteredW = (int)(filteredH / aspect);
+ }
+ }
}
filteredBitmap = MasterImage.getImage().getBitmapCache().getBitmap(filteredW, filteredH, BitmapCache.FILTERS);
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamera.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamera.java
index bf9e498b1..59918cf2e 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamera.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterDualCamera.java
@@ -106,6 +106,18 @@ public class ImageFilterDualCamera extends ImageFilter {
filteredW = filteredH;
filteredH = tmp;
}
+
+ // non even width or height
+ if(filteredW%2 != 0 || filteredH%2 != 0) {
+ float aspect = (float)filteredH / (float)filteredW;
+ if(filteredW >= filteredH) {
+ filteredW = MasterImage.MAX_BITMAP_DIM;
+ filteredH = (int)(filteredW * aspect);
+ } else {
+ filteredH = MasterImage.MAX_BITMAP_DIM;
+ filteredW = (int)(filteredH / aspect);
+ }
+ }
}
filteredBitmap = MasterImage.getImage().getBitmapCache().getBitmap(filteredW, filteredH, BitmapCache.FILTERS);