summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2012-10-20 12:32:05 -0700
committernicolasroard <nicolasroard@google.com>2012-10-23 10:05:38 -0700
commit0584b3ec2ccd241b2b921eb5852bd421f14fe737 (patch)
treed4c03bd09aeab07347f26d3713eb924469db30e7 /src
parentbc537e5a4268739e05d2f7924123b6c3a0ad89f8 (diff)
downloadandroid_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')
-rw-r--r--src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java1
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java27
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;
}