Android滤镜开发(一) 开篇:关于滤镜
滤镜
一般是由玻璃,树脂和聚碳酸酯等制成的物体,用来处理相机等传感器受到外界环境的影响,或者达到某种视觉效果。对于现在数字时代的图像,我们可以通过算法处理来达到以前镜片的效果
Android平台上的滤镜开发
处理方式
java层:Bitmap像素点和矩阵操作;ColorMatrix等系统api
native层:使用c/c++本地语言,具有更高的性能,可操作java层传入的Bitmap数据
整体处理:即对整个图片处理,矩阵处理,ColorMatrix或者系统api
局部处理:特殊像素点的单个或局部处理
cpu处理:上述处理都是基于cpu的,cpu计算能力强,但核心少,并行差
gpu处理:核心多,并行强。Android系统上可使用opengl es来调用gpu加速,并行处理图像
对于opengl,我们可以查阅相关资料,能做的事情,并不限于滤镜。
他的核心工作方式,是几乎可以并行的处理图像像素点,而cpu一般只能串行的处理像素点gpu处理,性能更好,更快。对于一张静态图像上,进行简单的滤镜处理,cpu方式还是可以胜任的。但对于相机滤镜和视频动态滤镜时,cpu可能出现明显的卡顿现象,这时就需要进行gpu滤镜处理,且能以胜任
对与cpu的各种处理方式&