[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相关推荐

  1. Android图像处理整理

    Android图像处理整理 参考:http://blog.csdn.net/luzhenyuxfcy/article/details/49427781 我们常用的处理方式基本都是在对像素矩阵按照一定的 ...

  2. android图像处理系列之五-- 给图片添加边框(中)

    前面一篇讲到给图片加边框的方式,只能给图片加一些有规则的边框,如果想加一些比较精美的效果,就有点麻烦了.下面就给出解决这个问题的思路. 思路是:一些比较精美的花边图片我们是很难用代码控制,就目前本人水 ...

  3. android 涂鸦之图片叠加,android图像处理系列之七--图片涂鸦,水印-图片叠加...

    图片涂鸦和水印其实是一个功能,实现的方式是一样的,就是一张大图片和一张小点图片叠加即可.前面在android图像处理系列之六--给图片添加边框(下)-图片叠加中也讲到了图片叠加,里面实现的原理是直接操 ...

  4. Android图像处理-像素化的原理及实现

    原文地址:Android图像处理-像素化的原理及实现 博客地址:xiazdong.github.io 马赛克算法首先需要确定马赛克单元的大小,即小方块的大小.马赛克图的每个马赛克单元都是纯色的块,其取 ...

  5. 客户端+调用+matlab,基于web的android图像处理示范(Win7+Apache+PHP+Matlab+Android)

    基于web的android图像处理示例(Win7+Apache+PHP+Matlab+Android) 本文将介绍C/S模式的图像处理系统.C/S的框架已经在[1]中作了简单的介绍.[2]中介绍了如何 ...

  6. Android 图像处理软件

    原文出处:http://blog.csdn.net/mc_hust/article/details/43708163 在机器视觉实验室呆了有一年半时间了,但由于自己"任性".一直以 ...

  7. Android图像处理之图形特效处理

    前面我们了解了关于图像色彩处理的相关技巧,下面继续来探讨图形图像方面的处理技巧. 1.Android变形矩阵------Matrix 对于图像的色彩处理,Android系统提供了ColorMatrix ...

  8. android图像边缘检测,Android图像处理系统1.4图像的锐化-边缘检测

    Android图像处理系统1.4图像的锐化-边缘检测 图像的锐化-边缘检测:(Robert Gradient.Sobel Gradient.Laplace Gradient) @author:郑海波 ...

  9. android图像处理系列之五--给图片添加边框(中)

    前面一篇讲到给图片加边框的方式,只能给图片加一些有规则的边框,如果想加一些比较精美的效果,就有点麻烦了.下面就给出解决这个问题的思路. 思路是:一些比较精美的花边图片我们是很难用代码控制,就目前本人水 ...

最新文章

  1. XCTF-高手进阶区:web2
  2. php html标签自定义属性,浅谈JS读取DOM对象(标签)的自定义属性
  3. java中System类、String Builder类简介
  4. 总结-Linux基础指令
  5. 分布式SQL学习总结(1)——蚂蚁金服资深总监韩鸿源:像使用集中式数据库一样使用OceanBase分布式数据库
  6. 银联接口的一些加密方式
  7. JSON在Java中的使用(一)
  8. 百度 | 2022年科技趋势预测
  9. 带你玩转Visual Studio——带你高效开发
  10. 【超详细!】【超全面!】计算机二级公共基础知识考点整理
  11. 【DirectX 9.0c入门教程】之一 开发环境搭建:安装vs2008 sp1和DirectX SDK
  12. t恤衫尺码对照表_T恤衫
  13. 高级语言是如何运行的——语言的运行方式
  14. 叶俊:没有人会把钱存在有漏洞的账户
  15. gltf 2.0快速入门
  16. 洛谷P5804 [SEERC2019]Absolute Game
  17. 栈——栈的基本概念和基本操作
  18. transformer论文研读
  19. Qt QNetworkAccessManager 下载url
  20. a的b次方对p取模 a乘b对p取模 快速幂

热门文章

  1. linux 支持7代cpu,Intel第七代cpu有哪些型号
  2. android仿微信聊天功能,Android高仿微信聊天界面代码分享
  3. 谷歌 Google Custom Search 站内搜索功能
  4. 1503 Problem A 最简分式
  5. 澳门SEO优化:名词诠释大全以及新站上线后,seo优化应该如何做?
  6. I2C的基础概念和框架
  7. 中国制造构建全球产业链,是关于价值链的创新
  8. 如何linux删除文件夹,linux删除文件夹,教您电脑的linux怎么样删除文件夹
  9. android 删除一个工程,Android Studio该怎样删除项目?
  10. CCProxy + Proxifier 通过另一台电脑访问网络