diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java | 46 |
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; + } } |