分析整理Android的开源滤镜

Posted 赤耳A狼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析整理Android的开源滤镜相关的知识,希望对你有一定的参考价值。

1.GPUImage for android(推荐使用)


GPUImage基于OpenGL实现的各种各样图像滤镜(图像处理)效果,多达50多种,

idea源于GPUImage for ios,基本囊括了最常见的图像处理效果,包括:contrast,hue,

gamma,brightness,sharpness,emboss,saturation,exposure,shadow,blend 等,

功能十分强大、又十分易用的图像处理库,还支持照相机和摄像机的实时滤镜,而正因为

基于GPU的图像加速,所以图像处理速度非常.

Sample Code

With preview:

@Override
public void onCreate(final Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);

    Uri imageUri = ...;
    mGPUImage = new GPUImage(this);
    mGPUImage.setGLSurfaceView((GLSurfaceView) findViewById(R.id.surfaceView));
    mGPUImage.setImage(imageUri); // this loads image on the current thread, should be run in a thread
    mGPUImage.setFilter(new GPUImageSepiaFilter());

    // Later when image should be saved saved:
    mGPUImage.saveToPictures("GPUImage", "ImageWithFilter.jpg", null);

Without preview:

Uri imageUri = ...;
mGPUImage = new GPUImage(context);
mGPUImage.setFilter(new GPUImageSobelEdgeDetection());
mGPUImage.setImage(imageUri);
mGPUImage.saveToPictures("GPUImage", "ImageWithFilter.jpg", null);

注:由于用到OpenGL ES 2.0,仅能在真机中测试.  https://github.com/CyberAgent/android-gpuimage


2.ImageFilterForAndroid

是由一个名叫戴震军的大牛写的,Android,ios,windows phone3个平台都写了,说

是历经三个多月的开发就完成了,用到的开发语言主要有使用了C++,JAVA,C#。


目前已正式投入到生产环境中.为了实现三种语言一种命名方式,作者采用了相

同的类名,接口,namespace(package)。据说只要熟悉了其中一个平台的代码,

就可以很顺利的写出另外两个平台的滤镜代码(作者承诺后续还会加入更多的滤

镜效果)。该库基于LGPL协议,可以将其免费用于自己项目及产品中(包括商业

项目).当然也可以私下和作者洽谈合作事宜

http://www.cnblogs.com/daizhj/archive/2012/05/15/2501406.html

https://github.com/daizhenjun/ImageFilterForAndroid

 

3.Android内置滤镜


颜色滤镜--http://blog.sina.com.cn/s/blog_5da93c8f01012pkj.html

利用一些滤镜算法--http://blog.csdn.net/jingwen3699/article/details/7770287

Android系统将内置滤镜功能(有二十余种不同效果),颜色矩阵 ColorMatrix--相关介绍


4.OpenCV

全称是:Open Source Computer Vision Library.OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运

行在Linux,Windows和Mac OS操作系统上.它轻量级而且高效——由一系列 C 函数和少量 C++ 类,同时提供Python,Ru

by,MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法.这个并不是真正专门用作滤镜的库,但是

可以通过其实现一定量的滤镜效果.不过,配置用法比较麻烦.

http://blog.csdn.net/yanzi1225627/article/details/16917961

http://blog.csdn.net/sangni007/article/category/1106771/1


5.其他一些开源滤镜

资料较少,适用人群也不多,目前不建议采用,可参考

https://github.com/ragnraok/android-image-filter

http://www.jhlabs.com/ip/filters/index.html

http://phenom.iteye.com/blog/1575975


以上是关于分析整理Android的开源滤镜的主要内容,如果未能解决你的问题,请参考以下文章

1Android项目框架搭建 (分析需求整理资料)

android学习网站整理

android学习网站整理

Android技术分享| 超简单!给 Android WebRTC增加美颜滤镜功能

基于OpenGL ES的滤镜算法及GLSL实现代码

开源整理:Android App新手指引开源控件