summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/filters/ImageFilterShadows.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/ImageFilterShadows.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/ImageFilterShadows.java')
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterShadows.java39
1 files changed, 3 insertions, 36 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterShadows.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterShadows.java
index 9b379a1ff..ee621966d 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterShadows.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterShadows.java
@@ -3,61 +3,28 @@ package com.android.gallery3d.filtershow.filters;
import android.graphics.Bitmap;
-import com.android.gallery3d.filtershow.ui.ControlPoint;
-import com.android.gallery3d.filtershow.ui.Spline;
-
public class ImageFilterShadows extends ImageFilter {
- private final float SHADOW = .1f;
- private final float MID = .5f;
- private final float HIGHLIGHT = .9f;
-
- private final float []baseX = {0f,SHADOW,MID,HIGHLIGHT,1f};
- private final float []baseY = {0f,SHADOW,MID,HIGHLIGHT,1f};
public ImageFilterShadows() {
mName = "Shadows";
}
- short [] calcMap(){
- Spline sp = new Spline();
- for (int i = 0; i < baseX.length; i++) {
- sp.addPoint(baseX[i], baseY[i]);
- }
- int max = 4080;
- int w = 40800;
- float []px = new float[w+1];
- float []py = new float[w+1];
- short []vlut = new short[4080+1];
- for (int i = 0; i < px.length; i++) {
- float t = i/(float)(w);
-
- ControlPoint p = sp.getPoint(t);
- px[i] = p.x;
- py[i] = p.y;
- }
- for (int i = 0; i < py.length; i++) {
- short x = (short)Math.min(4080,Math.max(0,((int)(px[i]*max))));
- short y = (short)Math.min(4082,Math.max(0,((int)(py[i]*max))));
- vlut[x] = y;
- }
- return vlut;
- }
+
@Override
public ImageFilter clone() throws CloneNotSupportedException {
ImageFilterShadows filter = (ImageFilterShadows) super.clone();
return filter;
}
- native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, short []valMap);
+ native protected void nativeApplyFilter(Bitmap bitmap, int w, int h, float factor);
@Override
public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) {
int w = bitmap.getWidth();
int h = bitmap.getHeight();
float p = mParameter;
- baseY[1] = (float)(SHADOW*Math.pow(4, mParameter/100.));
- nativeApplyFilter(bitmap, w, h, calcMap());
+ nativeApplyFilter(bitmap, w, h, p);
return bitmap;
}
}