summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java')
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java
new file mode 100644
index 000000000..c990c1870
--- /dev/null
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java
@@ -0,0 +1,42 @@
+
+package com.android.gallery3d.filtershow.filters;
+
+import android.graphics.Bitmap;
+import android.util.Log;
+
+import java.util.Arrays;
+
+public class ImageFilterRedEye extends ImageFilter {
+ private static final String TAG = "ImageFilterRedEye";
+
+
+ public ImageFilterRedEye() {
+ mName = "Redeye";
+
+ }
+
+ @Override
+ public ImageFilter clone() throws CloneNotSupportedException {
+ ImageFilterRedEye filter = (ImageFilterRedEye) super.clone();
+
+ return filter;
+ }
+
+ native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, short []matrix);
+
+ public void apply(Bitmap bitmap) {
+ int w = bitmap.getWidth();
+ int h = bitmap.getHeight();
+ float p = mParameter;
+ float value = p;
+ int box = Math.min(w, h);
+ int sizex = Math.min((int)((p+100)*box/400),w/2);
+ int sizey = Math.min((int)((p+100)*box/800),h/2);
+
+ short [] rect = new short[]{
+ (short) (w/2-sizex),(short) (w/2-sizey),
+ (short) (2*sizex),(short) (2*sizey)};
+
+ nativeApplyFilter(bitmap, w, h, rect);
+ }
+}