GPUImage 是一款使用OpenGL技术处理视频和图像的开源框架,因为其包含各种功能强大的图像处理滤镜,使用GPU加速,得到及其广泛的应用。
Github下载地址: https://github.com/BradLarson/GPUImage
在工程源码中examples目录包含多个使用GPUImage 滤镜的例子,其中FilterShowcase这个工程是展示GPUImage所有滤镜功能的例子,原工程支持打开相机,针对相机捕获视频做各种滤镜处理,基于学习的目的,对这个例子增加了本地图片和相册中照片的滤镜处理。
修改后工程源码地址:https://github.com/OjisanC/GPUImageDemo
Demo 演示截图如下:
GPUImage 包含一百多种图像处理的滤镜,主要分为四类,本文基于这个四个类别分别对各个滤镜做详细描述并附上一些效果图,仅供参考。
(一)Color Adjustments 色彩调整
以下是几乎所有摄影类APP都支持的色彩调整相关的基本功能,这些滤镜并非是调节相机本身的参数,而是在相机捕获的图像上做滤镜处理。
GPUImageSaturationFilter 饱和度
GPUImageContrastFilter 对比度
GPUImageOpacityFilter 透明度
GPUImageWhiteBalanceFilter 白平衡
GPUImageBrightnessFilter 亮度
GPUImageExposureFilter 曝光
以下一些色彩处理,比如 色调,色阶,单色,灰色,高光阴影等也是图像处理app中常见的功能。
GPUImageHueFilter 色调
GPUImageGrayscaleFilter 黑白
GPUImageColorInvertFilter 反色
GPUImageMonochromeFilter 单色
GPUImageRGBFilter RGB
GPUImageLevelsFilter 色阶
GPUImageToneCurveFilter 曲线
GPUImageGammaFilter Gamma
GPUImageHazeFilter 去雾
GPUImageHighlightShadowFilter 高光阴影
- 色调,RGB, 色阶,曲线,反色,单色 :都是对色彩调节的功能
- 黑白 :去色,黑白效果
- Gamma: 灰度调节
- 反色:也就是反相,相反颜色
- 去雾:类似于UV过滤器
- 高光阴影: 调整图像的阴影和高光
图像分析相关
GPUImageHistogramFilter 直方图
GPUImageHistogramGenerator 直方图过滤
GPUImageAverageColor 平均颜色
GPUImageLuminosity 平均亮度
GPUImageLuminanceThresholdFilter 亮度阈值
GPUImageAdaptiveThresholdFilter 自适应阈值
GPUImageAverageLuminanceThresholdFilter 平均亮度阈值
- 直方图 :获取图像直方图并显示在图像上
- 直方图过滤:根据直方图对指定颜色进行过滤
- 平均颜色,平均亮度 :获取图像中的平均颜色,亮度
- 亮度阈值,自适应阈值,平均亮度阈值:阈值
几个色彩滤镜
GPUImageFalseColorFilter 颜色混合
GPUImageChromaKeyFilter 色度key
GPUImageSepiaFilter 棕褐色
GPUImageAmatorkaFilter Amatorka滤镜
GPUImageMissEtikateFilter Miss Etikate滤镜
GPUImageSoftEleganceFilter 颜色重映射滤镜
- 颜色混合: 根据图像的亮度在两个用户指定的颜色之间进行混合
- 色度key:用于两幅图像叠加保留一幅图像指定色度
- 棕褐色: 棕褐色调滤镜,老照片
- Amatorka,Miss Etikate:Photoshop 相关滤镜,需要使用外部图片资源
- 颜色重映射滤镜: 一种基于查找的颜色重映射滤镜,需要使用外部图片资源