summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2012-10-08 21:04:48 -0700
committernicolasroard <nicolasroard@google.com>2012-10-08 21:05:52 -0700
commit4d57c2e6589b9e16001764412afce02949004a02 (patch)
treeeac371fe8efa1ab7a469442b6a4559c4cdb36544 /src
parentb1ae4b1483e3c64a7e22ec54dfe01ed7d412a393 (diff)
downloadandroid_packages_apps_Snap-4d57c2e6589b9e16001764412afce02949004a02.tar.gz
android_packages_apps_Snap-4d57c2e6589b9e16001764412afce02949004a02.tar.bz2
android_packages_apps_Snap-4d57c2e6589b9e16001764412afce02949004a02.zip
Add procedural borders
bug:7233980 Change-Id: I81008efa3d256061ec27d1ca2333debfb0ab6dd5
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java58
1 files changed, 34 insertions, 24 deletions
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index 830f3cb70..a7b4b4090 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -2,12 +2,10 @@
package com.android.gallery3d.filtershow.presets;
import android.graphics.Bitmap;
-import android.graphics.RectF;
import android.util.Log;
import com.android.gallery3d.filtershow.ImageStateAdapter;
import com.android.gallery3d.filtershow.filters.ImageFilter;
-import com.android.gallery3d.filtershow.filters.ImageFilterStraighten;
import com.android.gallery3d.filtershow.imageshow.GeometryMetadata;
import com.android.gallery3d.filtershow.imageshow.ImageShow;
@@ -16,32 +14,32 @@ import java.util.Vector;
public class ImagePreset {
private static final String LOGTAG = "ImagePreset";
- ImageShow mEndPoint = null;
+
+ private ImageShow mEndPoint = null;
+ private ImageFilter mImageBorder = null;
+ private float mScaleFactor = 1.0f;
+ private boolean mIsHighQuality = false;
+
protected Vector<ImageFilter> mFilters = new Vector<ImageFilter>();
protected String mName = "Original";
protected String mHistoryName = "Original";
protected boolean mIsFxPreset = false;
- enum FullRotate {
- ZERO, NINETY, HUNDRED_EIGHTY, TWO_HUNDRED_SEVENTY
- }
-
- // This is where the geometry metadata lives now.
public final GeometryMetadata mGeoData = new GeometryMetadata();
- public void setGeometry(GeometryMetadata m) {
- mGeoData.set(m);
+ enum FullRotate {
+ ZERO, NINETY, HUNDRED_EIGHTY, TWO_HUNDRED_SEVENTY
}
- private float mScaleFactor = 1.0f;
- private boolean mIsHighQuality = false;
-
public ImagePreset() {
setup();
}
public ImagePreset(ImagePreset source) {
try {
+ if (source.mImageBorder != null) {
+ mImageBorder = source.mImageBorder.clone();
+ }
for (int i = 0; i < source.mFilters.size(); i++) {
add(source.mFilters.elementAt(i).clone());
}
@@ -55,6 +53,14 @@ public class ImagePreset {
mGeoData.set(source.mGeoData);
}
+ public void setGeometry(GeometryMetadata m) {
+ mGeoData.set(m);
+ }
+
+ public void setBorder(ImageFilter filter) {
+ mImageBorder = filter;
+ }
+
public boolean isFx() {
return mIsFxPreset;
}
@@ -83,6 +89,15 @@ public class ImagePreset {
if (!mGeoData.equals(preset.mGeoData)) {
return false;
}
+
+ if (mImageBorder != preset.mImageBorder) {
+ return false;
+ }
+
+ if (mImageBorder != null && !mImageBorder.same(preset.mImageBorder)) {
+ return false;
+ }
+
for (int i = 0; i < preset.mFilters.size(); i++) {
ImageFilter a = preset.mFilters.elementAt(i);
ImageFilter b = mFilters.elementAt(i);
@@ -138,20 +153,15 @@ public class ImagePreset {
// First we apply any transform -- 90 rotate, flip, straighten, crop
Bitmap bitmap = mGeoData.apply(original, mScaleFactor, mIsHighQuality);
- // TODO -- apply borders separately
- ImageFilter borderFilter = null;
+ if (mImageBorder != null) {
+ bitmap = mImageBorder.apply(bitmap, mScaleFactor, mIsHighQuality);
+ }
+
for (int i = 0; i < mFilters.size(); i++) {
ImageFilter filter = mFilters.elementAt(i);
- if (filter.getName().equalsIgnoreCase("Border")) {
- // TODO don't use the name as an id
- borderFilter = filter;
- } else {
- bitmap = filter.apply(bitmap, mScaleFactor, mIsHighQuality);
- }
- }
- if (borderFilter != null) {
- bitmap = borderFilter.apply(bitmap, mScaleFactor, mIsHighQuality);
+ bitmap = filter.apply(bitmap, mScaleFactor, mIsHighQuality);
}
+
if (mEndPoint != null) {
mEndPoint.updateFilteredImage(bitmap);
}