summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java')
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java46
1 files changed, 35 insertions, 11 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
index a3645d6f5..647b101a1 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
@@ -23,10 +23,14 @@ import android.graphics.RectF;
import com.android.gallery3d.filtershow.CropExtras;
import com.android.gallery3d.filtershow.cache.ImageLoader;
+import com.android.gallery3d.filtershow.editors.EditorCrop;
+import com.android.gallery3d.filtershow.editors.EditorFlip;
+import com.android.gallery3d.filtershow.editors.EditorRotate;
+import com.android.gallery3d.filtershow.editors.EditorStraighten;
+import com.android.gallery3d.filtershow.filters.FilterRepresentation;
import com.android.gallery3d.filtershow.filters.ImageFilterGeometry;
-public class GeometryMetadata {
- private static final ImageFilterGeometry mImageFilter = new ImageFilterGeometry();
+public class GeometryMetadata extends FilterRepresentation {
private static final String LOGTAG = "GeometryMetadata";
private float mScaleFactor = 1.0f;
private float mRotation = 0;
@@ -59,9 +63,25 @@ public class GeometryMetadata {
}
public GeometryMetadata() {
+ super("GeometryMetadata");
+ setFilterClass(ImageFilterGeometry.class);
+ setEditorId(EditorCrop.ID);
+ setName("Crop");
+ setTextId(0);
+ }
+
+ @Override
+ public int[] getEditorIds() {
+ return new int[] {
+ EditorCrop.ID,
+ EditorStraighten.ID,
+ EditorRotate.ID,
+ EditorFlip.ID
+ };
}
public GeometryMetadata(GeometryMetadata g) {
+ super("GeometryMetadata");
set(g);
}
@@ -86,15 +106,6 @@ public class GeometryMetadata {
return false;
}
- public Bitmap apply(Bitmap original, float scaleFactor, int quality) {
- if (!hasModifications()) {
- return original;
- }
- mImageFilter.setGeometryMetadata(this);
- Bitmap m = mImageFilter.apply(original, scaleFactor, quality);
- return m;
- }
-
public void set(GeometryMetadata g) {
mScaleFactor = g.mScaleFactor;
mRotation = g.mRotation;
@@ -436,4 +447,17 @@ public class GeometryMetadata {
m.preRotate(-straighten, photo.centerX(), photo.centerY());
return m;
}
+
+ @Override
+ public void useParametersFrom(FilterRepresentation a) {
+ GeometryMetadata data = (GeometryMetadata) a;
+ set(data);
+ }
+
+ @Override
+ public FilterRepresentation clone() throws CloneNotSupportedException {
+ GeometryMetadata representation = (GeometryMetadata) super.clone();
+ representation.useParametersFrom(this);
+ return representation;
+ }
}