GPUImage滤镜

本文介绍了iOS中GPUImage库的各种滤镜效果,包括亮度调节、曝光控制、对比度增强、饱和度调整、灰度转换、色阶调整、褐色滤镜以及Haze和highlightAndShadow等效果,通过示例展示了不同滤镜对图像的改变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

亮度调节GPUImageBrightnessFilter

    //亮度调节
    //创建一个亮度的滤镜
    _brightnessFilter = [[GPUImageBrightnessFilter alloc] init];
    _brightnessFilter.brightness = self.slider.value;
   //设置要渲染的区域
    [_brightnessFilter forceProcessingAtSize:self.inputImage.size];
    [_brightnessFilter useNextFrameForImageCapture];
  //获取数据源
    GPUImagePicture *stillImageSource = [[GPUImagePicture alloc]initWithImage:self.inputImage];
    //添加上滤镜
    [stillImageSource addTarget:_brightnessFilter];
    //开始渲染
    [stillImageSource processImage];
    //获取渲染后的图片
    UIImage *newImage = [_brightnessFilter imageFromCurrentFramebuffer];
    //加载出来
    self.imgView.image = newImage;
    //brightness的范围[-1,1]![在这里插入图片描述](https://img-blog.youkuaiyun.com/20181023195325473?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1l1YW5ZdWFuMTM1MjI4NTU2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
    _brightnessFilter.brightness = self.slider.value;

效果图
原图亮度调节

曝光GPUImageExposureFilter

 UIImage *image = [UIImage imageNamed:@"meinv.jpg"];
    _exposureFilter = [[GPUImageExposureFilter alloc]init];
    _exposureFilter.exposure =sender.value;
    [_exposureFilter forceProcessingAtSize:image.size];
    [_exposureFilter useNextFrameForImageCapture];
    //    //获取数据源
    GPUImagePicture *stillImageSource = [[GPUImagePicture alloc]initWithImage:image];
    //添加上滤镜
    [stillImageSource addTarget:_exposureFilter];
    //开始渲染
    [stillImageSource processImage];
    //获取渲染后的图片
    UIImage *newImage = [_exposureFilter imageFromCurrentFramebuffer];
    //加载出来
    self.imageView.image = newImage;

效果
原图
在这里插入图片描述

对比度GPUImageContrastFilter

 UIImage *image = [UIImage imageNamed:@"meinv.jpg"];
    _constrastFilter = [[GPUImageContrastFilter alloc]init];
    _constrastFilter.contrast =sender.value;
    [_constrastFilter forceProcessingAtSize:image.size];
    [_constrastFilter useNextFrameForImageCapture];
    //    //获取数据源
    GPUImagePicture *stillImageSource = [[GPUImagePicture alloc]initWithImage:image];
    //添加上滤镜
    [stillImageSource addTarget:_constrastFilter];
    //开始渲染
    [stillImageSource processImage];
    //获取渲染后的图片
    UIImage *newImage = [_constrastFilter imageFromCurrentFramebuffer];
    //加载出来
    self.imageView.image = newImage;
    

效果
原图
在这里插入图片描述

饱和度GPUImageSaturationFilter

UIImage *image = [UIImage imageNamed:@"meinv.jpg"];
    _saturationFilter = [[GPUImageSaturationFilter alloc]init];
    _saturationFilter.saturation =sender.value;
    [_saturationFilter forceProcessingAtSize:image.size];
    [_saturationFilter useNextFrameForImageCapture];
    //    //获取数据源
    GPUImagePicture *stillImageSource = [[GPUImagePicture alloc]initWithImage:image];
    //添加上滤镜
    [stillImageSource addTarget:_saturationFilter];
    //开始渲染
    [stillImageSource processImage];
    //获取渲染后的图片
    UIImage *newImage = [_saturationFilter imageFromCurrentFramebuffer];
    //加载出来
    self.imageView.image = newImage;

效果
原图
饱和度

灰度

 UIImage *image = [UIImage imageNamed:@"meinv.jpg"];
    _gammaFilter.gamma = self.slider.value;
    [_gammaFilter forceProcessingAtSize:image.size];
    [_gammaFilter useNextFrameForImageCapture];
    //    //获取数据源
    _stillImageSource = [[GPUImagePicture alloc]initWithImage:image];
    //添加上滤镜
    [_stillImageSource addTarget:_gammaFilter];
    //开始渲染
    [_stillImageSource processImage];
    //获取渲染后的图片
    UIImage *newImage = [_gammaFilter imageFromCurrentFramebuffer];
    //加载出来
    self.imageView.image = newImage;

效果
原图
灰度

色阶LevelsFilter

 UIImage *image = [UIImage imageNamed:@"meinv.jpg"];
    [_levelsFilter setMin:0.0 gamma:sender.value max:1.0];
    [_levelsFilter forceProcessingAtSize:image.size];
    [_levelsFilter useNextFrameForImageCapture];
    //    //获取数据源
    GPUImagePicture *stillImageSource = [[GPUImagePicture alloc]initWithImage:image];
    //添加上滤镜
    [stillImageSource addTarget:_levelsFilter];
    //开始渲染
    [stillImageSource processImage];
    //获取渲染后的图片
    UIImage *newImage = [_levelsFilter imageFromCurrentFramebuffer];
    //加载出来
    self.imageView.image = newImage;

效果
原图
色阶

褐色SepiaFilter

 UIImage *image = [UIImage imageNamed:@"meinv.jpg"];
    [_sepiaFilter forceProcessingAtSize:image.size];
    [_sepiaFilter useNextFrameForImageCapture];
    //    //获取数据源
    GPUImagePicture *stillImageSource = [[GPUImagePicture alloc]initWithImage:image];
    //添加上滤镜
    [stillImageSource addTarget:_sepiaFilter];
    //开始渲染
    [stillImageSource processImage];
    //获取渲染后的图片
    UIImage *newImage = [_sepiaFilter imageFromCurrentFramebuffer];
    //加载出来
    self.imageView.image = newImage;

效果yuantu
褐色

Haze

 UIImage *image = [UIImage imageNamed:@"meinv.jpg"];

    _hazeFilter.distance = sender.value;
    [_hazeFilter forceProcessingAtSize:image.size];
    [_hazeFilter useNextFrameForImageCapture];
    //    //获取数据源
    GPUImagePicture *stillImageSource = [[GPUImagePicture alloc]initWithImage:image];
    //添加上滤镜
    [stillImageSource addTarget:_hazeFilter];
    //开始渲染
    [stillImageSource processImage];
    //获取渲染后的图片
    UIImage *newImage = [_hazeFilter imageFromCurrentFramebuffer];
    //加载出来
    self.imageView.image = newImage;

在这里插入图片描述
在这里插入图片描述

highlightAndShadow

    UIImage *image = [UIImage imageNamed:@"meinv.jpg"];
    
    _highlightShadowFilter.highlights = sender.value;
    [_highlightShadowFilter forceProcessingAtSize:image.size];
    [_highlightShadowFilter useNextFrameForImageCapture];
    //    //获取数据源
    GPUImagePicture *stillImageSource = [[GPUImagePicture alloc]initWithImage:image];
    //添加上滤镜
    [stillImageSource addTarget:_highlightShadowFilter];
    //开始渲染
    [stillImageSource processImage];
    //获取渲染后的图片
    UIImage *newImage = [_highlightShadowFilter imageFromCurrentFramebuffer];
    //加载出来
    self.imageView.image = newImage;

原图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值