概述
GPUImage是一个著名的图像处理开源库,它让你能够在图片、视频、相机上使用GPU加速的滤镜和其它特效。与CoreImage框架相比,可以根据GPUImage提供的接口,使用自定义的滤镜。项目地址:https://github.com/BradLarson/GPUImage
这边文章主要是对GPUImage框架做一个概述。在阅读源码的时候可以按照输入、滤镜、输出以及GPUImage依赖环境这个流程来阅读。
环境
- GPUImage上下文对象
| 类名 | 说明 | 解析 |
|---|---|---|
| GPUImageContext | GPUImage上下文对象 | 参见 GPUImage源码阅读(一) |
- GL程序
| 类名 | 说明 | 解析 |
|---|---|---|
| GLProgram | 管理GL程序 | 参见 GPUImage源码阅读(一) |
- 帧缓存
| 类名 | 说明 | 解析 |
|---|---|---|
| GPUImageFramebufferCache | 管理帧缓存对象 | 参见 GPUImage源码阅读(二) |
| GPUImageFramebuffer | 帧缓存对象 | 参见 GPUImage源码阅读(二) |
- 基类
| 类名 | 说明 | 解析 |
|---|---|---|
| GPUImageOutput | 能够输出帧缓存对象的基类 | 参见 GPUImage源码阅读(三) |
- 协议
| 类名 | 说明 | 解析 |
|---|---|---|
| GPUImageInput | 被能接受帧缓存对象输入的类实现 | 参见 GPUImage源码阅读(三) |
输入
| 类名 | 说明 | 解析 |
|---|---|---|
| GPUImageUIElement | UI渲染输入 | 参见GPUImage源码阅读(四) |
| GPUImageMovie | 视频输入 | 参见GPUImage源码阅读(五) |
| GPUImagePicture | 图片输入 | 参见GPUImage源码阅读(四) |
| GPUImageRawDataInput | 元数据输入 | 参见GPUImage源码阅读(六) |
| GPUImageTextureInput | 纹理输入 | 参见GPUImage源码阅读(六) |
| GPUImageVideoCamera | 相机视频输入 | 参见GPUImage源码阅读(五) |
| GPUImageStillCamera | 相机照片输入 | 参见GPUImage源码阅读(五) |
滤镜
- 单目标输入滤镜
| 类名 | 说明 | 解析 |
|---|---|---|
| GPUImageFilter | 单目标输入滤镜 | 参见GPUImage源码阅读(九) |
- 多重目标输入滤镜
| 类名 | 说明 | 解析 |
|---|---|---|
| GPUImageTwoInputFilter | 两个目标输入滤镜 | 参见GPUImage源码阅读(八) |
| GPUImageThreeInputFilter | 三个目标输入滤镜 | 参见GPUImage源码阅读(八) |
| GPUImageFourInputFilter | 四个目标输入滤镜 | 参见GPUImage源码阅读(八) |
- 组合滤镜
| 类名 | 说明 | 解析 |
|---|---|---|
| GPUImageFilterGroup | 自身可参与响应链的组合滤镜 | 参见GPUImage源码阅读(七) |
| GPUImageFilterPipeline | 自身不可参与响应链的组合滤镜 | 参见GPUImage源码阅读(七) |
输出
| 类名 | 说明 | 解析 |
|---|---|---|
| GPUImageRawDataOutput | 元数据输出 | 参见GPUImage源码阅读(六) |
| GPUImageTextureOutput | 纹理输出 | 参见GPUImage源码阅读(六) |
| GPUImageMovieWriter | 视频输出 | 参见GPUImage源码阅读(五) |
| GPUImageView | 图片预览输出 | 参见GPUImage源码阅读(四) |
最后
最后附上相关链接😁😁😁
源码地址:GPUImage源码阅读系列 https://github.com/QinminiOS/GPUImage
系列文章地址:GPUImage源码阅读 http://www.jianshu.com/nb/11749791
OpenGL ES入门专题: http://www.jianshu.com/c/30e2e76bc140