diff options
author | Ruben Brunk <rubenbrunk@google.com> | 2012-12-18 15:47:40 -0800 |
---|---|---|
committer | Ruben Brunk <rubenbrunk@google.com> | 2012-12-19 10:54:43 -0800 |
commit | 3c081799a4fff041ee7485de1dd969dcc06d562e (patch) | |
tree | a3f25d543b6109296bc95c0652ad2f48f062d35b /src/com/android/gallery3d/filtershow | |
parent | 1ffa0bd331f329442eb8f85e381c9676f09e9673 (diff) | |
download | android_packages_apps_Snap-3c081799a4fff041ee7485de1dd969dcc06d562e.tar.gz android_packages_apps_Snap-3c081799a4fff041ee7485de1dd969dcc06d562e.tar.bz2 android_packages_apps_Snap-3c081799a4fff041ee7485de1dd969dcc06d562e.zip |
Made downsampling filter preview accurate.
Bug: 7892268
Change-Id: I9ab3a7f5077b718ed54206666ef9ef289db8facc
Diffstat (limited to 'src/com/android/gallery3d/filtershow')
-rw-r--r-- | src/com/android/gallery3d/filtershow/FilterShowActivity.java | 2 | ||||
-rw-r--r-- | src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java | 25 |
2 files changed, 20 insertions, 7 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java index 4198da020..d91cfb6c1 100644 --- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java +++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java @@ -320,7 +320,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, new ImageFilterNegative(), new ImageFilterEdge(), new ImageFilterKMeans(), - new ImageFilterDownsample() + new ImageFilterDownsample(mImageLoader) }; for (int i = 0; i < filters.length; i++) { diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java index fa2293ca7..60a18b701 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java @@ -17,18 +17,22 @@ package com.android.gallery3d.filtershow.filters; import android.graphics.Bitmap; +import android.graphics.Rect; import com.android.gallery3d.R; +import com.android.gallery3d.filtershow.cache.ImageLoader; public class ImageFilterDownsample extends ImageFilter { + private ImageLoader mImageLoader; - public ImageFilterDownsample() { + public ImageFilterDownsample(ImageLoader loader) { mName = "Downsample"; mMaxParameter = 100; - mMinParameter = 5; - mPreviewParameter = 10; + mMinParameter = 1; + mPreviewParameter = 3; mDefaultParameter = 50; mParameter = 50; + mImageLoader = loader; } @Override @@ -51,10 +55,19 @@ public class ImageFilterDownsample extends ImageFilter { int w = bitmap.getWidth(); int h = bitmap.getHeight(); int p = mParameter; + + // size of original precached image + Rect size = mImageLoader.getOriginalBounds(); + int orig_w = size.width(); + int orig_h = size.height(); + if (p > 0 && p < 100) { - int newWidth = w * p / 100; - int newHeight = h * p / 100; - if (newWidth <= 0 || newHeight <= 0) { + // scale preview to same size as the resulting bitmap from a "save" + int newWidth = orig_w * p / 100; + int newHeight = orig_h * p / 100; + + // only scale preview if preview isn't already scaled enough + if (newWidth <= 0 || newHeight <= 0 || newWidth >= w || newHeight >= h) { return bitmap; } Bitmap ret = Bitmap.createScaledBitmap(bitmap, newWidth, newHeight, true); |