.iyu
/.
使用RenderScript进行模糊处理
bitmap 需要模糊的图片
注意:bitmap传入mjava的应为
android.graphics.Bitmap
传入其他类型报错
radius 模糊半径
scale 缩放倍数
back:模糊后的图片
转自大不6仙,使用必须在软件内标名!!!
./
s bitmap = "/storage/emulated/0/嗯/1040201432-1e6223a7f96d1f9c.jpg"
s radius = 2
s scale = 10
sbp(bitmap,bitmap)
call(back, "mjava", "photo_blur.scriptBlur", bitmap,radius,scale)
us(1,"background",back)
photo_blur.mjava
import java.net.URI;
import java.io.File;
import android.graphics.drawable.BitmapDrawable;
import android.widget.ImageView;
import android.renderscript.Allocation;
import android.renderscript.Element;
import android.renderscript.ScriptIntrinsicBlur;
import android.renderscript.RenderScript;
import android.graphics.Bitmap;
public Bitmap scriptBlur(Bitmap bitmap, int radius, int scale)
{
//直接复用传入的bitmap,回收还给用户处理
bitmap = Bitmap.createScaledBitmap(bitmap, bitmap.getWidth()/scale, bitmap.getHeight()/scale,false);
long startTime = System.currentTimeMillis();
RenderScript rs = RenderScript.create(activity);
ScriptIntrinsicBlur sb = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
Allocation inp = Allocation.createFromBitmap(rs, bitmap);
Allocation otp = Allocation.createTyped(rs, inp.getType());
sb.setRadius(radius);
sb.setInput(inp);
sb.forEach(otp);
otp.copyTo(bitmap);
long endTime = System.currentTimeMillis();
long useTime = (endTime - startTime);
//syso("处理用时:"+useTime+"ms");
rs.destroy();
sb.destroy();
return bitmap;
}