【发布时间】:2016-05-05 10:41:02
【问题描述】:
我用 Androids Rederscript 模糊了位图
private Bitmap createBitmap_ScriptIntrinsicBlur(Bitmap src, float r) {
//Radius range (0 < r <= 25)
if(r <= 0){
r = 0.1f;
}else if(r > 25){
r = 25.0f;
}
Bitmap bitmap = Bitmap.createBitmap(src.getWidth(), src.getHeight(),Bitmap.Config.ARGB_8888);
RenderScript renderScript = RenderScript.create(getActivity());
Allocation blurInput = Allocation.createFromBitmap(renderScript, src);
Allocation blurOutput = Allocation.createFromBitmap(renderScript, bitmap);
ScriptIntrinsicBlur blur = ScriptIntrinsicBlur.create(renderScript,Element.U8_4(renderScript));
blur.setInput(blurInput);
blur.setRadius(r);
blur.forEach(blurOutput);
blurOutput.copyTo(bitmap);
renderScript.destroy();
return bitmap;
}
但图像不够模糊。
是否有可能模糊半径超过 25 的图像。
当我多次调用模糊函数时,图像保持与单个函数调用一样模糊。所以这也不起作用。
谢谢您的帮助。
【问题讨论】:
-
如果您在修改后的位图上再次调用它,它会做什么?
-
有点奇怪,当我这样做时:Bitmap bitmap = ....my Bitmap; imageView.setImageBitmap(createRenderScriptBlur(createRenderScriptBlur(bitmap,25),25));就像一个电话一样运作。但是当我这样做时: Bitmap a =...myBitmap Bitmap b = createRenderScriptBlur(a,25);位图 c = createRenderScriptBlur(b,25); imageView.setImageBitmap(c);它有效。
-
是的,我想说更像位图 a = blur(mybitmap, 25); a = 模糊(a, 25);
标签: android bitmap blur renderscript