[译]Android高级技巧: Renderscript优化模糊效果
来源:互联网 发布:物业软件 编辑:程序博客网 时间:2024/05/20 04:26
Android ProTips: Blur Images Efficiently using Renderscript
Blurring images like a feather on Android
很多开发者都需要实现模糊效果,它可能需要一些时间和精力才能实现。而且,因为需要大量的图片处理,如果没写好代码,CPU和内存将会产生很大的负担。
这有一个快速有效的方法处理模糊图片,就是使用Renderscript。
从API11(蜜罐)起,Renderscript允许使用GPU加速,来处理高性能3D渲染和计算处理。
Renderscript是一个十分复的杂铰接性产品,允许进行深度定制并使用C99语言编码,这使得它具有移植性,高性能和易用性。
然而,从API17(4.2.2)起,Renderscript提供了一些内置函数来执行明确定义的操作,称为内部函数。
内部函数是预定义脚本,它允许执行模糊,混纺,矩阵卷积及更多的效果处理,而不需要写Renderscript代码。
简单的方法来可以轻松的处理Bitmap的模糊过滤效果:
public Bitmap blurBitmap(Bitmap bitmap){//Let’s create an empty bitmap with the same size of the bitmap we want to blurBitmap outBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);//Instantiate a new Renderscript RenderScript rs = RenderScript.create(getApplicationContext());//Create an Intrinsic Blur Script using the Renderscript ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));//Create the in/out Allocations with the Renderscript and the in/out bitmaps Allocation allIn = Allocation.createFromBitmap(rs, bitmap); Allocation allOut = Allocation.createFromBitmap(rs, outBitmap);//Set the radius of the blur blurScript.setRadius(25.f);//Perform the Renderscript blurScript.setInput(allIn); blurScript.forEach(allOut);//Copy the final bitmap created by the out Allocation to the outBitmap allOut.copyTo(outBitmap);//recycle the original bitmap bitmap.recycle();//After finishing everything, we destroy the Renderscript. rs.destroy(); return outBitmap;}
还有……瞧!模糊的位图!:-)
请记住,运行前面的代码需要的最低API17(4.2.2)版本。
下面是此方法的要点是:
https://gist.github.com/Mariuxtheone/903c35b4927c0df18cf8
如果你想发现更多的内部函数,请看Android开发者博客的这篇博文:
http://android-developers.blogspot.it/2013/08/renderscript-intrinsics.html
如果你想深入了解Renderscript,请查看这些链接:
http://android-developers.blogspot.it/2011/02/introducing-renderscript.html
http://android-developers.blogspot.it/2011/03/renderscript.html
- [译]Android高级技巧: Renderscript优化模糊效果
- Android高级模糊技术RenderScript和FastBlur
- Android:用RenderScript实现模糊效果
- RenderScript----Android图片模糊效果的简单实现
- Android高级Renderscript---Andvanced Renderscript(一)
- Android高级Renderscript---Andvanced Renderscript(二)
- Android高级Renderscript---Andvanced Renderscript(三)
- Android高级Renderscript---Andvanced Renderscript(四)
- Android高级Renderscript---Andvanced Renderscript(五)
- Android高级Renderscript---Andvanced Renderscript(一)
- Android高级Renderscript---Andvanced Renderscript(二)
- Android高级Renderscript---Andvanced Renderscript(三)
- Android高级Renderscript---Andvanced Renderscript(四)
- Android高级Renderscript---Andvanced Renderscript(五)
- Android高斯模糊(RenderScript)
- Android RenderScript 简单高效实现图片的高斯模糊效果
- Android利用RenderScript对图片处理实现高斯模糊效果。
- 【Android高级】高斯模糊效果从319ms到3ms的优化实现
- request.getParameter() 和request.getAttribute() 区别
- 通过命令查询并关闭占有端口的任务
- Floyd算法的java实现
- 最短路径算法
- 嵌入式Linux编译器gcc使用
- [译]Android高级技巧: Renderscript优化模糊效果
- mac上同时安装多个jdk,选择版本
- JAVA中关于DATE时间日期加减、String与Date类型的转换
- Linux学习笔记1
- List,Set,Map
- 【java基础概念】(2016/3/28)
- Android系统Recovery工作原理之使用update.zip升级过程分析
- 第四周项目1—三角形类雏形
- Linux命令之VIM编辑器