GPUImage :一个基于GPU加速的图形和视频处理库

 ,  ,  , 

快速上手:

GPUImage基于OpenGL ES 2.0,比基于CPU的图形和视频处理更快速.GPUImage把OpenGL ES封装为简洁的Objective-C接口.

把GPUImage引入到你的工程:

把 GPUImage.xcodeproj 文件拖到你的工程中,然后把GPUImage作为一个依赖目标,最后添加 libGPUImage.a静态库即可.

GPUImage 需要使用下面这些库:

  • CoreMedia
  • CoreVideo
  • OpenGLES
  • AVFoundation
  • QuartzCore

在需要使用 GPUImage的地方直接引入即可:


常见的应用场景:

录制视频时使用滤镜:

为了在iOS设备录制视频时实时即时添加滤镜,你可以类似下面的代码:

如果你想录制视频时,同步录制音频,可以设置相机的audioEncodingTarget属性:

截图并给静态的图片添加滤镜:

过程和上面类似,但是这次你要使用 GPUImageStillCamera:

如果你想使用一个截取图片,你可以像下面这样使用回调函数:

处理单张静态图片

有好多种办法来处理并保存单张图片,比如下面这样:

如果你只是想看下图片上使用不同滤镜的效果,可以像下面这样做:

写一个自定义的滤镜

GPUImage 支持编写自定义滤镜,需要使用GLSL语言(OpenGL Shading Language, 一种类C语言).注意添加时,不要把GLSL语言文件添加为资源文件,而不是可编译文件.

自定义滤镜的初始化:

下面是一个GLSL 写的 sepia-tone 滤镜的例子:

添加滤镜并重新编码电影

使用 GPUImageMovie 把电影载入,添加滤镜,并使用 GPUImageMovieWriter 输出.

下面的例子演示了如何引入一个实例电影,并把它传递给像素滤镜,然后记录结果并存储为 480 x 640 h.264 格式的电影:

只有操作完成时,视频才可用:

内置的滤镜


 

目前有 125 中内置滤镜,被分为下面几类:

  • 颜色调整
  • 图片处理
  • 混合模式
  • 视觉效果

开源地址:https://github.com/BradLarson/GPUImage

1 2 收藏

资源整理者简介:yilufeng0

简介还没来得及写 :) 个人主页 · 贡献了28个资源 · 1


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer