summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java
diff options
context:
space:
mode:
authorJohn Hoford <hoford@google.com>2012-10-08 14:21:57 -0700
committerJohn Hoford <hoford@google.com>2012-10-08 15:03:10 -0700
commit86aa80d008745a3717666d6773f563865aa6029c (patch)
tree2985466bbbe73a979def61e1c1dcd239b59ca1d7 /src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java
parentd922690a19edb8afbb103381f3a9c329ee2f9681 (diff)
downloadandroid_packages_apps_Snap-86aa80d008745a3717666d6773f563865aa6029c.tar.gz
android_packages_apps_Snap-86aa80d008745a3717666d6773f563865aa6029c.tar.bz2
android_packages_apps_Snap-86aa80d008745a3717666d6773f563865aa6029c.zip
add redeye and improve shadow removal
bug:7234321 Change-Id: I12c2eb28555d7594fddf86dfa224219b70137681
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);
+ }
+}