准备工作: 导入GPUImage框架
方式一 : 利用cocoapods 集成
方式二 : 去Githup下载源代码,然后导入
代码 :
方法一: (利用GPUImage框架提供的GPUImageView来展示滤镜后的图片)
// 预览view
GPUImageView *imageView = [[GPUImageView alloc]initWithFrame:self.view.bounds];
[self.view insertSubview:imageView atIndex:1];
// 原图
UIImage *image = [UIImage imageNamed:@"10.jpg"];
// 创建图片源
GPUImagePicture *picture = [[GPUImagePicture alloc]initWithImage:image];
// 滤镜
GPUImageSepiaFilter *filter = [GPUImageSepiaFilter new];
// 把图片数据添加到过滤器中
[picture addTarget:filter];
// 把过滤后的数据放到预览view上展示
[filter addTarget:imageView];
// 开始渲染
[picture processImage];
方法二 : (用自己定义的UImageView)
// 预览view
UImageView *imageView = [[UImageView alloc]initWithFrame:self.view.bounds];
[self.view addSubview:imageView];
// 原图
UIImage *image = [UIImage imageNamed:@"10.jpg"];
// 创建图片源
GPUImagePicture *picture = [[GPUImagePicture alloc]initWithImage:image];
// 滤镜
GPUImageSepiaFilter *filter = [GPUImageSepiaFilter new];
// 把图片数据添加到过滤器中
[picture addTarget:filter];
// 开始渲染
[picture processImage];
// 获取滤镜后的image
UIImage *image= [filter imageFromCurrentFramebuffer]
// 给自己定义的imageview赋值
imageView.image = image;
滤镜可以随便换的,想要达到什么效果换什么滤镜就可以了
简单介绍几种滤镜:
GPUImageBrightnessFilter : 调整亮度(所谓的美白)
GPUImageBilateralFilter : 模糊 (用来忽略脸上的痘痘啊之类的)
GPUImageSepiaFilter : 怀旧风格