首页 > 系统 > Android > 正文

Android RenderScript高斯模糊

2019-12-12 04:34:59
字体:
来源:转载
供稿:网友

看代码的时候,看到了其中有.rs结尾的文件,不是很明白,还有RenderScript类,看的一脸蒙蔽,不知所云,然后百度了一下,收货还真不少,这东西在图形处理这块用处挺大的。

今天先说说ScriptIntrinsicBlur,这个类不需要定义rs文件,从这个Intrinsic单词可以看的出来,它是API17以后内置的类,专门用来处理图像的,让图片变模糊。

public static Bitmap blurBitmap(Bitmap bitmap, float radius, Context context) {     //创建渲染脚本上下文     RenderScript rs = RenderScript.create(context);      //为位图分配内存     Allocation allocation = Allocation.createFromBitmap(rs, bitmap);      Type t = allocation.getType();      //用同样的类型创建内存,一般用这两种方式创建 <span style="font-family: Arial, Helvetica, sans-serif;">Allocation</span>     Allocation blurredAllocation = Allocation.createTyped(rs, t);      //创建高斯渲染脚本      ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));     //设置模糊半径 (maximum 25.0)     blurScript.setRadius(radius);     //为脚本设置输入参数      blurScript.setInput(allocation);     //调用脚本 结果存入 <span style="font-family: Arial, Helvetica, sans-serif;">blurredAllocation中</span>     blurScript.forEach(blurredAllocation);      //把脚本结果存入位图中 因为为native层渲染,所以结果需要复制到上层     blurredAllocation.copyTo(bitmap);      //Destroy everything to free memory     allocation.destroy();     blurredAllocation.destroy();     blurScript.destroy();     t.destroy();      return bitmap;   } 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表