Android 图片模糊 性能总结
来源:互联网 发布:matlab编程第刘卫国 编辑:程序博客网 时间:2024/06/07 06:03
转载请标明出处:
http://blog.csdn.net/tyzlmjj/article/details/50823292
本文出自:【M家杰的博客】
概述
模糊一张图片不难,各种算法也很多:高斯、均值、矩阵等等,但是在移动端需要考虑APP的使用体验,对于性能的要求还是很高的。所以在安卓中纯粹使用Java去实现肯定是最坑爹的做法,我们有另外两种方式可以选择:NDK or Renderscript
Renderscript的优缺点
Renderscript,原则上讲应该是安卓上的最佳选择。它自带了模糊图片的算法,在计算速度上可以说已经非常出色了。但是……
优点:
1. 计算速度较快,主要是对CPU的利用比较全面
2. 配置工程方便(相对NDK)
3. 在不需要自定义算法的情况下使用还是很方便的,只需要写一段java代码就可以完成操作
缺点:
1. 学习成本高(如果要自定义一些算法的话)
2. 移植代码基本不可能
3. 对安卓版本要求较高,比如模糊图片的算法就必须要API17以上
4. 自带的模糊算法速度虽快但效果不尽如人意!
Renderscript的模糊用的是什么算法我不清楚,但是出来的效果不太理想!具体效果往后面看,都丁达尔效应了!
NDK的优缺点
NDK在讲求性能的应用中肯定是不能少的,不过我自己用的并不多!所以如果有说的不对请见谅!
优点:
1. 用C或C++,肯定很多人都会(感觉又回到在学校A题的时候了)。
2. 可应用范围比较广泛, 代码移植方便,有很多现成的库可以拉过来用
3. 在进行高复杂度的计算时甩Java好几条街
缺点:
1. 我自己写了半天算法完全追不上Renderscript的速度,所以需要有深厚的功力才能很好的发挥它的作用
2. Eclipse上配置繁琐,Stusio中稍微简化了点
3. 代码调试查错比较麻烦,可能还是跟我的水平有关吧!
效果对比
我用NDK写了两个算法(一维高斯和均值),然后跟Renderscript自带的模糊做个对比。理论上高斯模糊的效果应是最好的,但是我用了一维高斯叠加的算法所以效果不理想!但是二维高斯又太耗时,递归高斯我又不会!只能这样了 - -
想看代码的点我
- 原图:
- 模糊后的图
右键在链接中打开可以看大图
总结
- 将原图缩小后模糊,然后再放大显示。这样可以节省很多时间。推荐缩放到100像素左右
- 需要渐变效果时可以用两个图层叠加改变透明度的方式。这样多占点内存,但是只需要计算一次
- 我个人感觉最理想的应该还是用NDK来实现,可惜本人C只学了点皮毛,写不好啊啊啊
- 算法很重要!
参考资料
均值模糊算法:http://blog.ivank.net/fastest-gaussian-blur.html
二维高斯模糊算法:http://www.ruanyifeng.com/blog/2012/11/gaussian_blur.html
一维高斯模糊算法:http://www.cnblogs.com/hoodlum1980/p/4528486.html
Android NDK配置:http://blog.csdn.net/tyzlmjj/article/details/50725281
RenderScript 配置和使用:http://blog.csdn.net/tyzlmjj/article/details/50747173
- Android 图片模糊 性能总结
- Android 模糊图片技术
- android图片模糊处理
- Android图片模糊处理
- android图片模糊效果
- android 图片模糊解决方案
- Android 生成模糊图片
- Android模糊效果总结
- android 图片模糊化处理
- android图片模糊的效果
- android 图片高斯模糊
- Android 图片模糊实现方式
- android 图片高斯模糊
- android Canvas绘制图片模糊
- Android图片高斯模糊
- android之Blurry,图片模糊
- Android高性能高斯模糊方案
- Android高性能高斯模糊方案
- 【Java】面向对象思想以及类与对象的关系
- SpringMVC Controller 介绍
- Unity自带的SimpleJSon的简单使用
- centos7 菜鸟第一天--输入法在哪
- 有 1 、 2 、 3 、 4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
- Android 图片模糊 性能总结
- 【讀書筆記】成为技术领导者
- HDU 3062 Party(2-SAT入门+学习)
- 浅谈web应用的负载均衡、集群、高可用(HA)解决方案
- 一元多项式的乘积与和
- Photoshop CS6 实例之用调整边缘扣取美女头发
- OBJ、LIB、DLL与EXE之间的关系
- 最简单的livereload安装配置方法
- iOS屏幕旋转