summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java')
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java
index a3467edde..4373c950a 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java
@@ -20,6 +20,7 @@ import android.app.Activity;
import android.graphics.Bitmap;
import android.support.v8.renderscript.*;
import android.util.Log;
+import com.android.gallery3d.R;
public abstract class ImageFilterRS extends ImageFilter {
private final String LOGTAG = "ImageFilterRS";
@@ -118,4 +119,23 @@ public abstract class ImageFilterRS extends ImageFilter {
sOldBitmap = null;
}
+ public Allocation convertRGBAtoA(Bitmap bitmap) {
+ Type.Builder tb_a8 = new Type.Builder(mRS, Element.U8(mRS));
+ ScriptC_grey greyConvert = new ScriptC_grey(mRS, mResources, R.raw.grey);
+
+ Allocation bitmapTemp = Allocation.createFromBitmap(mRS, bitmap);
+
+ if (bitmapTemp.getType().getElement().isCompatible(Element.U8(mRS))) {
+ return bitmapTemp;
+ }
+
+ tb_a8.setX(bitmapTemp.getType().getX());
+ tb_a8.setY(bitmapTemp.getType().getY());
+ Allocation bitmapAlloc = Allocation.createTyped(mRS, tb_a8.create());
+ greyConvert.forEach_RGBAtoA(bitmapTemp, bitmapAlloc);
+
+ return bitmapAlloc;
+
+ }
+
}