summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow
diff options
context:
space:
mode:
authorRuben Brunk <rubenbrunk@google.com>2012-12-18 15:47:40 -0800
committerRuben Brunk <rubenbrunk@google.com>2012-12-19 10:54:43 -0800
commit3c081799a4fff041ee7485de1dd969dcc06d562e (patch)
treea3f25d543b6109296bc95c0652ad2f48f062d35b /src/com/android/gallery3d/filtershow
parent1ffa0bd331f329442eb8f85e381c9676f09e9673 (diff)
downloadandroid_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.java2
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java25
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);