Android图像处理之GPUImage for Android
[url=https://github.com/BradLarson/GPUImage]GPUImage[/url] 是iOS下一个开源的基于GPU的图像处理库,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜。[url=https://github.com/CyberAgent/android-gpuimage]GPUImage for Android[/url]是它在Android下的实现,同样也是开源的,托管在Github上。
版本:android-gpuimage-1.1.1
Android模拟器上不支持OpenGL ES 2.0所以会报错,可以选用[url=http://www.genymotion.com/]Genymotion[/url]测试,或真机上运行。
[quote]Caused by: java.lang.IllegalStateException: OpenGL ES 2.0 is not supported on this phone.[/quote]
[b](1)使用自定义的ImageView[/b]
<jp.co.cyberagent.android.gpuimage.GPUImageView android:id="@+id/gpuimage" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_gravity="center" android:layout_weight="1" />
mImageView.setFilter(new GPUImageSepiaFilter()); // sepiamImageView.setFilter(new GPUImageGrayscaleFilter()); // graymImageView.setFilter(new GPUImageSharpenFilter()); // sharpmImageView.setFilter(new GPUImageSobelEdgeDetection()); // edge
原图:
[img]http://dl2.iteye.com/upload/attachment/0093/2021/32e1bf04-8735-3c17-abac-c8bc267fede4.png[/img]
sepia后:
[img]http://dl2.iteye.com/upload/attachment/0093/2023/f7cd1809-f717-302a-bc60-0135264492aa.png[/img]
gray后:
[img]http://dl2.iteye.com/upload/attachment/0093/2025/c6ade696-bfbb-3432-8fc9-375df8cfbfeb.png[/img]
sharp后:
[img]http://dl2.iteye.com/upload/attachment/0093/2027/0445a204-f6b1-37ae-b73c-40ea4376b54a.png[/img]
edge后:
[img]http://dl2.iteye.com/upload/attachment/0093/2029/a619dd0c-98fe-3295-80bb-ccc64dfe352e.png[/img]
[b](2) 处理Assets中的文件[/b]
// 读取图像AssetManager as = getAssets();InputStream is = null;Bitmap bitmap = null;try { is = as.open("dog.jpg"); bitmap = BitmapFactory.decodeStream(is); is.close();} catch (IOException e) { Log.e("MainActivity", "Error");}
// 使用GPUImage处理图像GPUImage gpuImage = new GPUImage(this);gpuImage.setImage(bitmap);gpuImage.setFilter(new GPUImageToonFilter());bitmap = gpuImage.getBitmapWithFilterApplied();
// 在ImageView中显示处理后的图像ImageView view = new ImageView(this);view.setImageBitmap(bitmap);setContentView(view);
[b](3)使用Photoshop的acv文件[/b]
// 读取图像AssetManager as = getAssets();InputStream is = null;Bitmap bitmap = null;try { is = as.open("dog.jpg"); bitmap = BitmapFactory.decodeStream(is); is.close();} catch (IOException e) { Log.e("MainActivity", "Error");}
// 读取Photoshop的acv文件GPUImageToneCurveFilter filter = new GPUImageToneCurveFilter();try { is = as.open("tone_curve.acv"); filter.setFromCurveFileInputStream(is); is.close();} catch (IOException e) { Log.e("MainActivity", "Error");}
// 使用GPUImage处理图像GPUImage gpuImage = new GPUImage(self);gpuImage.setImage(bitmap);gpuImage.setFilter(filter);bitmap = gpuImage.getBitmapWithFilterApplied();
// 在ImageView中显示处理后的图像ImageView view = new ImageView(self);view.setImageBitmap(bitmap);setContentView(view);
Android图像处理之GPUImage for Android相关推荐
- Android图像处理整理
Android图像处理整理 参考:http://blog.csdn.net/luzhenyuxfcy/article/details/49427781 我们常用的处理方式基本都是在对像素矩阵按照一定的 ...
- android图像处理系列之五-- 给图片添加边框(中)
前面一篇讲到给图片加边框的方式,只能给图片加一些有规则的边框,如果想加一些比较精美的效果,就有点麻烦了.下面就给出解决这个问题的思路. 思路是:一些比较精美的花边图片我们是很难用代码控制,就目前本人水 ...
- android 涂鸦之图片叠加,android图像处理系列之七--图片涂鸦,水印-图片叠加...
图片涂鸦和水印其实是一个功能,实现的方式是一样的,就是一张大图片和一张小点图片叠加即可.前面在android图像处理系列之六--给图片添加边框(下)-图片叠加中也讲到了图片叠加,里面实现的原理是直接操 ...
- Android图像处理-像素化的原理及实现
原文地址:Android图像处理-像素化的原理及实现 博客地址:xiazdong.github.io 马赛克算法首先需要确定马赛克单元的大小,即小方块的大小.马赛克图的每个马赛克单元都是纯色的块,其取 ...
- 客户端+调用+matlab,基于web的android图像处理示范(Win7+Apache+PHP+Matlab+Android)
基于web的android图像处理示例(Win7+Apache+PHP+Matlab+Android) 本文将介绍C/S模式的图像处理系统.C/S的框架已经在[1]中作了简单的介绍.[2]中介绍了如何 ...
- Android 图像处理软件
原文出处:http://blog.csdn.net/mc_hust/article/details/43708163 在机器视觉实验室呆了有一年半时间了,但由于自己"任性".一直以 ...
- Android图像处理之图形特效处理
前面我们了解了关于图像色彩处理的相关技巧,下面继续来探讨图形图像方面的处理技巧. 1.Android变形矩阵------Matrix 对于图像的色彩处理,Android系统提供了ColorMatrix ...
- android图像边缘检测,Android图像处理系统1.4图像的锐化-边缘检测
Android图像处理系统1.4图像的锐化-边缘检测 图像的锐化-边缘检测:(Robert Gradient.Sobel Gradient.Laplace Gradient) @author:郑海波 ...
- android图像处理系列之五--给图片添加边框(中)
前面一篇讲到给图片加边框的方式,只能给图片加一些有规则的边框,如果想加一些比较精美的效果,就有点麻烦了.下面就给出解决这个问题的思路. 思路是:一些比较精美的花边图片我们是很难用代码控制,就目前本人水 ...
最新文章
- XCTF-高手进阶区:web2
- php html标签自定义属性,浅谈JS读取DOM对象(标签)的自定义属性
- java中System类、String Builder类简介
- 总结-Linux基础指令
- 分布式SQL学习总结(1)——蚂蚁金服资深总监韩鸿源:像使用集中式数据库一样使用OceanBase分布式数据库
- 银联接口的一些加密方式
- JSON在Java中的使用(一)
- 百度 | 2022年科技趋势预测
- 带你玩转Visual Studio——带你高效开发
- 【超详细!】【超全面!】计算机二级公共基础知识考点整理
- 【DirectX 9.0c入门教程】之一 开发环境搭建:安装vs2008 sp1和DirectX SDK
- t恤衫尺码对照表_T恤衫
- 高级语言是如何运行的——语言的运行方式
- 叶俊:没有人会把钱存在有漏洞的账户
- gltf 2.0快速入门
- 洛谷P5804 [SEERC2019]Absolute Game
- 栈——栈的基本概念和基本操作
- transformer论文研读
- Qt QNetworkAccessManager 下载url
- a的b次方对p取模 a乘b对p取模 快速幂
热门文章
- linux 支持7代cpu,Intel第七代cpu有哪些型号
- android仿微信聊天功能,Android高仿微信聊天界面代码分享
- 谷歌 Google Custom Search 站内搜索功能
- 1503 Problem A 最简分式
- 澳门SEO优化:名词诠释大全以及新站上线后,seo优化应该如何做?
- I2C的基础概念和框架
- 中国制造构建全球产业链,是关于价值链的创新
- 如何linux删除文件夹,linux删除文件夹,教您电脑的linux怎么样删除文件夹
- android 删除一个工程,Android Studio该怎样删除项目?
- CCProxy + Proxifier 通过另一台电脑访问网络