diff options
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); |
