summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java')
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java98
1 files changed, 20 insertions, 78 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java
index b7e5c2ae6..aa4cf22e6 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterCurves.java
@@ -25,82 +25,26 @@ import com.android.gallery3d.filtershow.ui.Spline;
public class ImageFilterCurves extends ImageFilter {
private static final String LOGTAG = "ImageFilterCurves";
- private Spline[] mSplines = new Spline[4];
-
- public ImageFilterCurves() {
- mName = "Curves";
- reset();
- }
-
- @Override
- public int getButtonId() {
- return R.id.curvesButtonRGB;
- }
-
- @Override
- public int getTextId() {
- return R.string.curvesRGB;
- }
-
- @Override
- public int getOverlayBitmaps() {
- return R.drawable.filtershow_button_colors_curve;
- }
-
- @Override
- public int getEditingViewId() {
- return R.id.imageCurves;
- }
+ FilterCurvesRepresentation mParameters = new FilterCurvesRepresentation();
@Override
- public boolean showParameterValue() {
- return false;
+ public FilterRepresentation getDefaultRepresentation() {
+ return new FilterCurvesRepresentation();
}
@Override
- public boolean equals(ImageFilter filter) {
- return same(filter);
+ public void useRepresentation(FilterRepresentation representation) {
+ FilterCurvesRepresentation parameters = (FilterCurvesRepresentation) representation;
+ mParameters = parameters;
}
- @Override
- public ImageFilter clone() throws CloneNotSupportedException {
- ImageFilterCurves filter = (ImageFilterCurves) super.clone();
- filter.mSplines = new Spline[4];
- for (int i = 0; i < 4; i++) {
- if (mSplines[i] != null) {
- filter.setSpline(mSplines[i], i);
- }
- }
- return filter;
- }
-
- @Override
- public boolean isNil() {
- for (int i = 0; i < 4; i++) {
- if (mSplines[i] != null && !mSplines[i].isOriginal()) {
- return false;
- }
- }
- return true;
- }
-
- @Override
- public boolean same(ImageFilter filter) {
- boolean isCurveFilter = super.same(filter);
- if (!isCurveFilter) {
- return false;
- }
- ImageFilterCurves curve = (ImageFilterCurves) filter;
- for (int i = 0; i < 4; i++) {
- if (mSplines[i] != curve.mSplines[i]) {
- return false;
- }
- }
- return true;
+ public ImageFilterCurves() {
+ mName = "Curves";
+ reset();
}
public void populateArray(int[] array, int curveIndex) {
- Spline spline = mSplines[curveIndex];
+ Spline spline = mParameters.getSpline(curveIndex);
if (spline == null) {
return;
}
@@ -111,8 +55,8 @@ public class ImageFilterCurves extends ImageFilter {
}
@Override
- public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) {
- if (!mSplines[Spline.RGB].isOriginal()) {
+ public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) {
+ if (!mParameters.getSpline(Spline.RGB).isOriginal()) {
int[] rgbGradient = new int[256];
populateArray(rgbGradient, Spline.RGB);
nativeApplyGradientFilter(bitmap, bitmap.getWidth(), bitmap.getHeight(),
@@ -120,17 +64,17 @@ public class ImageFilterCurves extends ImageFilter {
}
int[] redGradient = null;
- if (!mSplines[Spline.RED].isOriginal()) {
+ if (!mParameters.getSpline(Spline.RED).isOriginal()) {
redGradient = new int[256];
populateArray(redGradient, Spline.RED);
}
int[] greenGradient = null;
- if (!mSplines[Spline.GREEN].isOriginal()) {
+ if (!mParameters.getSpline(Spline.GREEN).isOriginal()) {
greenGradient = new int[256];
populateArray(greenGradient, Spline.GREEN);
}
int[] blueGradient = null;
- if (!mSplines[Spline.BLUE].isOriginal()) {
+ if (!mParameters.getSpline(Spline.BLUE).isOriginal()) {
blueGradient = new int[256];
populateArray(blueGradient, Spline.BLUE);
}
@@ -141,14 +85,13 @@ public class ImageFilterCurves extends ImageFilter {
}
public void setSpline(Spline spline, int splineIndex) {
- mSplines[splineIndex] = new Spline(spline);
+ mParameters.setSpline(splineIndex, new Spline(spline));
}
public Spline getSpline(int splineIndex) {
- return mSplines[splineIndex];
+ return mParameters.getSpline(splineIndex);
}
- @Override
public void reset() {
Spline spline = new Spline();
@@ -156,16 +99,15 @@ public class ImageFilterCurves extends ImageFilter {
spline.addPoint(1.0f, 0.0f);
for (int i = 0; i < 4; i++) {
- mSplines[i] = new Spline(spline);
+ mParameters.setSpline(i, new Spline(spline));
}
}
- @Override
public void useFilter(ImageFilter a) {
ImageFilterCurves c = (ImageFilterCurves) a;
for (int i = 0; i < 4; i++) {
- if (c.mSplines[i] != null) {
- setSpline(c.mSplines[i], i);
+ if (c.mParameters.getSpline(i) != null) {
+ setSpline(c.mParameters.getSpline(i), i);
}
}
}