`
rensanning
  • 浏览: 3548117 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:38136
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:607280
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:682280
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:89329
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:401825
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69686
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:91694
社区版块
存档分类
最新评论

Android图像处理之GPUImage for Android

 
阅读更多
GPUImage 是iOS下一个开源的基于GPU的图像处理库,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜。GPUImage for Android是它在Android下的实现,同样也是开源的,托管在Github上。

版本:android-gpuimage-1.1.1

Android模拟器上不支持OpenGL ES 2.0所以会报错,可以选用Genymotion测试,或真机上运行。
引用
Caused by: java.lang.IllegalStateException: OpenGL ES 2.0 is not supported on this phone.


(1)使用自定义的ImageView

<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()); // sepia
mImageView.setFilter(new GPUImageGrayscaleFilter()); // gray
mImageView.setFilter(new GPUImageSharpenFilter()); // sharp
mImageView.setFilter(new GPUImageSobelEdgeDetection()); // edge


原图:


sepia后:


gray后:


sharp后:


edge后:


(2) 处理Assets中的文件

// 读取图像
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);


(3)使用Photoshop的acv文件

// 读取图像
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);
  • 大小: 336.9 KB
  • 大小: 255.2 KB
  • 大小: 208.9 KB
  • 大小: 357.5 KB
  • 大小: 218.8 KB
分享到:
评论
6 楼 Yimi-依米 2018-03-31  
你好,我下载了你的例子安装在我7.1.2的手机上,但发现会有个弹出框报错Detected problems with app native libraries(Please consult log for detail);libgpuimage-library.so:text relocation,网上说因为所生成的so文件的版本小于23,所以在6.0以上版本的手机上会报这个错,请问有什么解决方法吗?
5 楼 MySpringDay 2015-10-13  
                 
4 楼 xdm199 2015-05-08  
楼主,请问下这么保存图片啊。
3 楼 Mybeautiful 2015-01-11  
博主有没有更新,处理过的图片不能保存,也很纠结啊....
2 楼 Mybeautiful 2014-12-19  
补充一下,我下载了最新的源码使用,发现可以过去,但是非常卡;确实是跟图片大小有关;图片越大,运算量就大,导致超级慢,估计5秒吧。
1 楼 Mybeautiful 2014-12-19  
试验了下,发现

// 使用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);  


其中这句卡住,不能继续
bitmap = gpuImage.getBitmapWithFilterApplied();

不知道是不是因为图片大小的原因;

相关推荐

    Android图片滤镜框架GPUImage演示Demo

    GPUImage是一个强大的图像处理框架,它充分利用了设备的GPU(图形处理器)来执行高效的图像滤镜操作。这个"Android图片滤镜框架GPUImage演示Demo"就是一个实际的应用示例,帮助开发者了解和学习如何在Android项目中...

    GPUImage for Android.zip

    GPUImage for Android介绍: 实现各种各样图像滤镜(图像处理)效果,多达50多种效果,基本囊括了最常见的图像处理效果。包括:contrast,hue,gamma,brightness,sharpness,emboss,saturation,exposure,...

    Android图像处理技术(实现Android中的PS)(五)

    一、Android图像处理基础 Android提供了丰富的API来处理图像,主要涉及以下几个库: 1. Android SDK的Bitmap类:Bitmap是Android系统中处理图像的基本类,包含了加载、绘制、裁剪、缩放和颜色操作等方法。 2. ...

    Android-GpuImage

    这个库受到了iOS平台上的GPUImage框架的启发,旨在提高图像处理的性能,尤其是在处理大量或者高分辨率图片时,能够显著减少CPU的负载。 GPU(图形处理器)相比于CPU在并行计算上有天然的优势,特别适合于像素级别的...

    Android GPUImage图像滤镜(图像处理)效果.zip

    Android GPUImage是一个强大的开源库,专门用于在Android设备上实现高性能的图像处理和滤镜效果。这个库基于iOS上的GPUImage框架,通过利用设备的图形处理单元(GPU)来加速图像处理,相比于CPU处理,GPU并行计算的...

    Android代码-gpuImage搭建安卓滤镜效果

    在Android开发中,GPUImage库是一个非常实用的工具,它允许开发者轻松地实现各种图像处理效果,包括滤镜。这个库充分利用了GPU的并行计算能力,为Android应用提供了高效且流畅的实时图像过滤功能。以下是对GPUImage...

    GPUImage组合滤镜Android

    GPUImage是一个强大的图像处理库,尤其在Android平台上,它提供了丰富的滤镜效果,可以实现对图像和视频的实时处理。这个“GPUImage组合滤镜Android”项目,正如标题所示,专注于利用GPU进行图像过滤,以实现高效且...

    android-gpuimage-master

    总结,"android-gpuimage-master"是一个强大的Android图像处理工具,它简化了在Android上实现复杂的图像滤镜和效果的过程。通过充分利用GPU的计算能力,可以在保持流畅用户体验的同时,实现丰富的图像处理功能。无论...

    android-gpuimage-plus.zip

    GPUImage Plus的核心概念是滤镜(Filter),它封装了各种图像处理算法,如模糊、锐化、色彩调整等。通过组合不同的滤镜,开发者可以创建出丰富的视觉效果,例如模仿复古照片、添加艺术风格或者进行高级的图像编辑...

    android-gpuimage-plus,基于opengl的android图像和相机过滤器。.zip

    在移动设备上,尤其是在Android平台上,图像处理和实时滤镜应用越来越受到用户的欢迎。Android GPUImage+项目,正如其名,是一个针对Android系统,利用OpenGL ES进行图像和相机处理的开源库。这个库的出现,极大地...

    GPUImage图像滤镜(图像处理)效果.zip

    GPUImage是一个强大的开源框架,专为iOS和Android平台设计,用于实时图像处理。它利用图形处理器(GPU)的强大性能来实现高效、流畅的图像滤镜和视觉效果。GPUImage框架由Brad Larson创建,旨在简化复杂的图像滤镜和...

    gpuimage给本地视频添加滤镜

    GPUImage 是一个强大的 iOS 和 Android 图像处理框架,由Brad Larson 开发。它利用设备的图形处理器(GPU)进行高效、实时的图像过滤和效果应用。在这个场景中,我们要讨论如何使用 GPUImage 在本地视频上添加滤镜。...

    GPUIMAGE安卓版本源码文件

    这个“GPUIMAGE安卓版本源码文件”显然是将 GPUImage 库移植到了 Android 平台,使得 Android 开发者也能利用 GPU 的并行计算能力来实现高性能的图像处理。 在 Android 上使用 GPUImage,开发者可以轻松地应用各种...

    GPUImage for Android

    GPUImage for Android介绍: 实现各种各样图像滤镜(图像处理)效果,多达50多种效果,基本囊括了最常见的图像处理效果。包括:contrast,hue,gamma,brightness,sharpness,emboss,saturation,exposure,...

    GPUImage for Android(安卓源代码)

     实现各种各样图像滤镜(图像处理)效果,多达50多种效果,基本囊括了最常见的图像处理效果。包括:contrast,hue,gamma,brightness,sharpness,emboss,saturation,exposure,shadow,blend等等。 由于需要...

    Android程序研发源码Android 图像过滤器.rar

    1. **OpenCV库**:OpenCV(开源计算机视觉库)是Android图像处理常用的第三方库,它提供了大量的图像处理函数,如滤波、色彩转换、边缘检测等。开发者可以利用OpenCV的API来实现图像过滤器功能。 2. **Bitmap类**:...

    GPUImage_android_

    在Android平台上,GPUImage是一个强大的图像处理库,它利用GPU(图形处理器)的强大计算能力来实现高效的实时图像过滤和特效。GPUImage对于开发者来说是一个非常有用的工具,它可以帮助我们在应用程序中轻松添加各种...

    GPUImage:适用于 Android 的 GPUImage

    - GPUImage 的核心理念是利用 GPU 进行图像处理,而不是依赖于 CPU。相较于 CPU,GPU 更适合执行大量并行计算,因此在处理图像和视频时速度更快,效率更高,对设备电池寿命的影响也相对较小。 2. **实时滤镜**: ...

    GPUImage-master.zip

    GPUImage 是一个强大的开源iOS和Android图像处理框架,由Brad Larson开发。这个框架利用了图形处理器(GPU)的强大计算能力,实现了高效的实时图像过滤、视频处理和计算机视觉任务。GPUImage-master.zip 包含了该...

Global site tag (gtag.js) - Google Analytics