GPUImage
- 开源的基于GPU处理图片/视频的一个框架!采用GPU加速处理图片/视频滤镜效果,本身内置几百种滤镜效果,支持自定义滤镜
- 目前比较主流的框架
- 目的是隐藏和减弱关于OpenGL ES复杂性
GPUImage框架基于以下框架
- CoreMedia
- CoreVideo
- AVFoundation
- QuartCore
- OpenGL ES
GPUImage优缺点
- GPUImage可以自定义滤镜,缺乏人脸识别功能
- GPUImage在GPU上处理速度高于CPU上百倍
处理流程
-
滤镜处理原理:就是把静态图片/视频每一帧图片进行图形变换(饱和度…)处理之后再显示到屏幕上,本质是像素点坐标和颜色的变换
-
OpenGL ES处理图片的步骤
- 初始化OpenGL ES环境,编译/链接顶点着色器和片元着色器
- 缓存顶点、纹理坐标数据,传输相关数据到GPU
- 图片绘制帧缓存区
- 从帧缓存区中绘制图像
-
GPUImage 处理过程
- GPUImage采用链式方法来处理图片,通过添加对象到链中,处理一个target,把上一个环节处理好的图像作为数据传递给下一个target去处理
- GPUImage