diff options
author | nicolasroard <nicolasroard@google.com> | 2012-10-20 12:32:05 -0700 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2012-10-23 10:05:38 -0700 |
commit | 0584b3ec2ccd241b2b921eb5852bd421f14fe737 (patch) | |
tree | d4c03bd09aeab07347f26d3713eb924469db30e7 /src/com/android | |
parent | bc537e5a4268739e05d2f7924123b6c3a0ad89f8 (diff) | |
download | android_packages_apps_Snap-0584b3ec2ccd241b2b921eb5852bd421f14fe737.tar.gz android_packages_apps_Snap-0584b3ec2ccd241b2b921eb5852bd421f14fe737.tar.bz2 android_packages_apps_Snap-0584b3ec2ccd241b2b921eb5852bd421f14fe737.zip |
Shows filtered images in geometry modules and comparison.
bug:7279469
bug:7379286
bug:7344214
bug:7379140
Also:
- cache multiple version (with/without geometry or filters applied)
- doesn't show the original image anymore when waiting for a filtered version (shows nothing instead for now)
- fix potential crash in Curves
Change-Id: I4eabd42c30f6d370571f177d5efe92550798aed8
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java | 1 | ||||
-rw-r--r-- | src/com/android/gallery3d/filtershow/presets/ImagePreset.java | 27 |
2 files changed, 23 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java b/src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java index 25d1db414..7839ea2a3 100644 --- a/src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java +++ b/src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java @@ -49,6 +49,7 @@ public class DirectPresetCache implements Cache { for (int i = 0; i < mObservers.size(); i++) { ImageShow imageShow = mObservers.elementAt(i); imageShow.invalidate(); + imageShow.updateImage(); } } diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java index cbb14300d..c1eb86f14 100644 --- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java +++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java @@ -27,6 +27,9 @@ public class ImagePreset { private String mHistoryName = "Original"; protected boolean mIsFxPreset = false; + private boolean mDoApplyGeometry = true; + private boolean mDoApplyFilters = true; + public final GeometryMetadata mGeoData = new GeometryMetadata(); enum FullRotate { @@ -70,6 +73,14 @@ public class ImagePreset { mGeoData.set(source.mGeoData); } + public void setDoApplyGeometry(boolean value) { + mDoApplyGeometry = value; + } + + public void setDoApplyFilters(boolean value) { + mDoApplyFilters = value; + } + public boolean hasModifications() { if (mImageBorder != null && !mImageBorder.isNil()) { return true; @@ -102,7 +113,6 @@ public class ImagePreset { return true; } - public void setGeometry(GeometryMetadata m) { mGeoData.set(m); } @@ -238,11 +248,17 @@ public class ImagePreset { public Bitmap apply(Bitmap original) { // First we apply any transform -- 90 rotate, flip, straighten, crop - Bitmap bitmap = mGeoData.apply(original, mScaleFactor, mIsHighQuality); + Bitmap bitmap = original; - for (int i = 0; i < mFilters.size(); i++) { - ImageFilter filter = mFilters.elementAt(i); - bitmap = filter.apply(bitmap, mScaleFactor, mIsHighQuality); + if (mDoApplyGeometry) { + bitmap = mGeoData.apply(original, mScaleFactor, mIsHighQuality); + } + + if (mDoApplyFilters) { + for (int i = 0; i < mFilters.size(); i++) { + ImageFilter filter = mFilters.elementAt(i); + bitmap = filter.apply(bitmap, mScaleFactor, mIsHighQuality); + } } if (mImageBorder != null) { @@ -252,6 +268,7 @@ public class ImagePreset { if (mEndPoint != null) { mEndPoint.updateFilteredImage(bitmap); } + return bitmap; } |