GPUImage 是一个基于 GPU 图像和视频处理的开源 iOS 框架。由于使用 GPU 来处理图像和视频,所以速度非常快. 除了速度上的优势,GPUImage 还提供了很多很棒的图像处理滤镜,但有时候这些基本功能仍然无法满足实际开发中的需求,GPUImage 还支持自定义滤镜.
简单滤镜
GPUImageSepiaFilter *filter = [[GPUImageSepiaFilter alloc] init];
_filteredImage = [filter imageByFilteringImage:_originImage];
滤镜效果如图:
GPUImage将大多数的滤镜效果都做了如上类似的封装, 因此使用非常简便. 使用的时候可以直接在GPUImage.h中查找.
自定义滤镜
GPUImage的自定义滤镜需要使用到OpenGL着色语言(GLSL)来编写Fragment Shader(片段着色器), 且后缀为.fsh. 至于GLSL的语法等内容, 暂时不多做说明, 以后会单独补充.
GPUImageFilter *customFilter = [[GPUImageFilter alloc] initWithFragmentShaderFromFile:@"GPUImageCustomFilter"]