summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/presets/ImagePreset.java')
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java27
1 files changed, 22 insertions, 5 deletions
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;
}