开源的图像滤镜库----for 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
开源的图像滤镜库----for Android的更多相关文章
- 开源自己的一个小android项目(美女撕衣服游戏)
这是自己的一个开源自己的一个小android项目(美女撕衣服游戏),也是前6个月开发的,有部分的资源来自网络上的,现在开源出来给大家吧,由于源码比较大,不上传了,我已经上传到源码天堂那个网站那里了,大 ...
- [开源]在iOS上实现Android风格的控件Toast
[开源]在iOS上实现Android风格的控件Toast iOS的风格和Apple其他产品一样,简单而粗暴.没有给人其他选择的余地,让你又爱又恨.同样的,Apple对待iOS平台的开发人员和对待大众消 ...
- 利用开源项目jadx反编译Android应用
原文转自:http://bbs.itheima.com/thread-200475-1-1.html 利用开源项目jadx反编译Android应用 利用Github开源项目jadx可以直接对 .dex ...
- 【开源库推荐】#3 Android EventBus的使用
原文地址:[开源库推荐]#3 Android EventBus的使用 | Stars-One的杂货小窝 EventBus的Github Event bus for Android and Java t ...
- 可跨平台C++开源图形图像框架:openFrameworks
博客参考:https://www.hahack.com/codes/openframeworks-intro/#%E4%BB%80%E4%B9%88%E6%98%AF-openframeworks 和 ...
- 保持长宽比 对背景图像进行修改android:scaleType="fitXY"
关于android中ImageView的外观,即图片在其内显示出的样子,与布局文件中adjustViewBonds和scaleType属性的关系.我进行了一些探索.现跟大家共享,欢迎各位指教.分别将a ...
- 推荐一款功能齐全的开源客户端( iOS 、Android )研发助手。
DoraemonKit ,简称DoKit,中文名 哆啦A梦,意味着能够像哆啦A梦一样提供给他的主人各种各样的工具. 开发背景 每一个稍微有点规模的 App,总会自带一些线下的测试功能代码,比如环境切换 ...
- 开源一个C#写的Android和IOS都能跑的 打击感强的RPG玩玩。
攒到 250楼再统一发一次代码,各位 给力啊 156楼之前的兄弟 都已经发送代码了!各位查收一下! 156楼之后的兄弟要晚上统一发送 200楼之前的兄弟都已经发送代码了! 各位查收一下!!!顺便 ...
- 开源项目 apk cfg and android app path profiling
暑假里面完毕的一个小项目,limitation还是挺多的. 期待未来有更大的motivation 去完好它.通过此次的项目设计,对于smali的语法更加了解了,对于进一步学习android app的安 ...
随机推荐
- BZOJ4345 POI2016Korale(构造+堆+线段树)
注意到k与n同阶,考虑构造一种枚举子集的方式,使得尽量先枚举较小的子集.首先sort一下,用堆维护待选子集.每次取出最小子集,并加入:1.将子集中最大数ai替换为ai+1 2.直接向子集中添加ai+1 ...
- [洛谷P1640][SCOI2010]连续攻击游戏
题目大意:有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.每种装备最多只能使用一次,且只能使用其中一种属性.装备所使用的属性值必须从1开始连续.问最多能攻击多少次? ...
- 《软件调试的艺术》学习笔记——GDB使用技巧摘要
<软件调试的艺术>学习笔记——GDB使用技巧摘要 <软件调试的艺术>,因为名是The Art of Debugging with GDB, DDD, and Eclipse. ...
- 【BZOJ3038】上帝造题的七分钟2 线段树
根据一个数六次√必死,我们可以打标记死了就不管他了,于是有贡献的操作复杂度为O(n*logn*6),然而我们还有由于盲目修改造成的多余代价我们把每次查询的区间分成三部分前全死,中残,后全死,对于中残, ...
- JavaScript 知识点之escape()与decodeURI()
解释:escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法:escape(string)参数描述string必需.要被转义或编码的字符串. 返回值:已编码的 str ...
- 前端面试js题
var a=10; (function(){ console.log(a); var a=100; })(); 结果:输出undefined 解释: function中有var a=100; 声明会提 ...
- java简单发送邮件
需要的jar 据说是: <dependency> <groupId>javax.mail</groupId> <artifactId>mail</ ...
- jsp中路径的问题。。。
刚刚学jsp的时候都是从看别人的代码,模仿着做,但是这样也有看不懂的地方,这个相对路径和绝对路径就让我纠结了好久..所以我自己弄了一个demo实验了一下,试验出结果了,但是不明白原理,纠结了一天,终于 ...
- Java输入输出流备忘
重要博客: http://blog.csdn.net/hguisu/article/details/7418161 File dir = new File("\\root"); ...
- nginx proxy_buffer_size 解决后端服务传输数据过多,其实是header过大的问题
nginx proxy_buffer_size 解决后端服务传输数据过多,其实是header过大的问题 这三个参数已设置就搞定了额 proxy_buffer_size 64k; proxy_buffe ...