这篇博客主要说一下怎么用GPUImage这个库来撸一个自制滤镜。
GPUImage中滤镜主要使用OpenGL ES来对图片和视频进行渲染,当然,要自制一个滤镜并不需要你对OpenGL ES有很深入的了解,但最好还是简单了解一下。这里给出一个参考资料;
手撸一个滤镜需要算法(像:Overlay(B,A) (A < 128) ? (2 * A * B / 255) : (255 - 2 * (255 - A) * (255 - B) / 255) [强光混合算法])。
GPUImage里面手撸滤镜通过使用vec4来表示一个像素点的颜色,即rgb和a(RGB色通道和透明度);
先写一个超级简单的例子,写一个把亮度改成0.5的滤镜
//这里写2个,一个用手撸的滤镜,一个用GPUImage的,来验证效果
_upGPUImageView = [[GPUImageView alloc] initWithFrame:_imgViewUp.frame];
_downGPUImageView = [[GPUImageView alloc]
initWithFrame:_imgViewDown.frame];
[self.view addSubview:_upGPUImageView];
[self