summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2012-10-02 21:57:22 -0700
committernicolasroard <nicolasroard@google.com>2012-10-04 17:11:52 -0700
commita0f822613dba5c5b140cc34202574e24c59461a2 (patch)
tree735858ee2b951a6140fc06aa7a968ed9625851c2 /src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java
parentfd87d97665952360ac045507f06f9bf35a17c9fb (diff)
downloadandroid_packages_apps_Snap-a0f822613dba5c5b140cc34202574e24c59461a2.tar.gz
android_packages_apps_Snap-a0f822613dba5c5b140cc34202574e24c59461a2.tar.bz2
android_packages_apps_Snap-a0f822613dba5c5b140cc34202574e24c59461a2.zip
Implement sharpen
bug:7279964 bug:7247494 bug:7234321 - add a sharpen filter - add infrastructure to use RenderScript - some refactoring (add an ImageSlave class) - add new zoom UI Change-Id: Id94dc94d32866c7107b6818adf4db35d0c6c0b01
Diffstat (limited to 'src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java')
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java
new file mode 100644
index 000000000..3ec7b5f70
--- /dev/null
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterSharpen.java
@@ -0,0 +1,52 @@
+
+package com.android.gallery3d.filtershow.filters;
+
+import android.graphics.Bitmap;
+import android.util.Log;
+import android.renderscript.Element;
+import android.renderscript.Script;
+import android.renderscript.ScriptC;
+
+import com.android.gallery3d.R;
+
+public class ImageFilterSharpen extends ImageFilterRS {
+
+ private static final String LOGTAG = "ImageFilterSharpen";
+ private ScriptC_convolve3x3 mScript;
+
+ public ImageFilterSharpen() {
+ mName = "Sharpen";
+ }
+
+ public void createFilter(android.content.res.Resources res) {
+ int w = mInPixelsAllocation.getType().getX();
+ int h = mInPixelsAllocation.getType().getY();
+
+ float p1 = mParameter;
+ float value = p1 / 100.0f;
+ float f[] = new float[9];
+ float p = value;
+ f[0] = -p;
+ f[1] = -p;
+ f[2] = -p;
+ f[3] = -p;
+ f[4] = 8 * p + 1;
+ f[5] = -p;
+ f[6] = -p;
+ f[7] = -p;
+ f[8] = -p;
+ if (mScript == null) {
+ mScript = new ScriptC_convolve3x3(getRenderScriptContext(), res, R.raw.convolve3x3);
+ }
+ mScript.set_gCoeffs(f);
+ mScript.set_gWidth(w);
+ mScript.set_gHeight(h);
+ }
+
+ public void runFilter() {
+ mScript.set_gIn(mInPixelsAllocation);
+ mScript.bind_gPixels(mInPixelsAllocation);
+ mScript.forEach_root(mInPixelsAllocation, mOutPixelsAllocation);
+ }
+
+}