diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java | 20 |
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; + + } + } |