diff options
author | John Hoford <hoford@google.com> | 2012-10-08 14:21:57 -0700 |
---|---|---|
committer | John Hoford <hoford@google.com> | 2012-10-08 15:03:10 -0700 |
commit | 86aa80d008745a3717666d6773f563865aa6029c (patch) | |
tree | 2985466bbbe73a979def61e1c1dcd239b59ca1d7 /src/com/android/gallery3d/filtershow/filters/ImageFilterRedEye.java | |
parent | d922690a19edb8afbb103381f3a9c329ee2f9681 (diff) | |
download | android_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.java | 42 |
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); + } +} |