Public Sub GaussianBlur(bm As Bitmap, radius As Float) As Bitmap
Dim Obj1 As Reflector
Dim time As Long
time = DateTime.Now
Dim args(1) As Object
Dim types(1) As String
'RenderScript rs = RenderScript.create(getApplicationContext());
Dim rs As Reflector
args(0) = Obj1.GetContext
types(0) = "android.content.Context"
rs.Target = Obj1.RunStaticMethod("android.renderscript.RenderScript","create", args, types)
'Element.U8_4(rs)
Dim oU8 As Reflector
args(0) = rs.Target
types(0) = "android.renderscript.RenderScript"
oU8.Target = Obj1.RunStaticMethod("android.renderscript.Element","U8_4", args, types)
' ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur
'.create(rs, Element.U8_4(rs));
Dim theIntrinsic As Reflector
Dim args2(2) As Object
Dim types2(2) As String
args2(0) = rs.Target
types2(0) = "android.renderscript.RenderScript"
args2(1) = oU8.Target
types2(1) = "android.renderscript.Element"
theIntrinsic.Target = Obj1.RunStaticMethod("android.renderscript.ScriptIntrinsicBlur","create", args2, types2)
'Allocation tmpIn = Allocation.createFromBitmap(rs, bm);
'Dim bm As Bitmap
'bm = LoadBitmap(File.DirAssets, "reusedefault.bmp")
Dim tmpIn As Reflector
args2(0) = rs.Target
types2(0) = "android.renderscript.RenderScript"
args2(1) = bm
types2(1) = "android.graphics.Bitmap"
tmpIn.Target = Obj1.RunStaticMethod("android.renderscript.Allocation", "createFromBitmap", args2, types2)
'Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);
Dim outputBitmap As Bitmap
outputBitmap.InitializeMutable(bm.Width,bm.Height)
Dim tmpOut As Reflector
args2(0) = rs.Target
types2(0) = "android.renderscript.RenderScript"
args2(1) = outputBitmap
types2(1) = "android.graphics.Bitmap"
tmpOut.Target = Obj1.RunStaticMethod("android.renderscript.Allocation", "createFromBitmap", args2, types2)
'theIntrinsic.setRadius(25.f);
args(0) = radius
types(0) = "java.lang.float"
theIntrinsic.RunPublicmethod("setRadius",args,types)
'theIntrinsic.setInput(tmpIn);
args(0) = tmpIn.Target
types(0) = "android.renderscript.Allocation"
theIntrinsic.RunPublicmethod("setInput",args,types)
'theIntrinsic.forEach(tmpOut);
args(0) = tmpOut.Target
types(0) = "android.renderscript.Allocation"
theIntrinsic.RunPublicmethod("forEach",args,types)
'tmpOut.copyTo(outputBitmap);
args(0) = outputBitmap
types(0) = "android.graphics.Bitmap"
tmpOut.RunMethod4("copyTo",args, types)
Log("Blur took: " & (DateTime.Now - time) & " ms")
Return outputBitmap
End Sub