gpt4 book ai didi

iphone - GPUImage 使用 UISlider 改变亮度

转载 作者:行者123 更新时间:2023-11-28 19:09:21 39 4
gpt4 key购买 nike

如何使用 GPUImageBrightnessFilter 更改带有 slider 的图像的亮度?

我试过了,

-(void)updateBrightness {
GPUImageFilter *selectedFilter = nil;
[selectedFilter removeAllTargets];
selectedFilter = [[GPUImageFilter alloc] init];

CGFloat midpoint = [(UISlider *)sender value];
[(GPUImageBrightnessFilter *)settingsFilter setBrightness:midpoint];

UIImage *filteredImage = [selectedFilter imageByFilteringImage:_image_view.image];
fx_imageView.image = filteredImage;

}

最佳答案

上面的代码有几个问题。

首先,您实际上并没有对图像使用亮度滤镜,因为您是在 selectedFilter 上调用 -imageByFilteringImage:,这是您新分配的通用 GPUImageFilter。 settingsFilter 的 GPUImageBrightnessFilter 从未被使用。

其次,您不希望每次更新参数时都分配一个新的过滤器。分配您的 GPUImageBrightnessFilter 一次,并在值更改时简单地更新它。

第三,您不想继续重新过滤 UIImage。进出 UIImages 是一个缓慢的过程(并且在同一过滤器上使用 -imageByFilteringImage: 时将无法正常工作,因为我做了一些缓存)。相反,根据您的原始图像创建一个 GPUImagePicture,将 GPUImageBrightnessFilter 添加到该图像作为目标,然后将您的 GPUImageBrightnessFilter 定位到 GPUImageView。每次更新亮度过滤器时使用 -processImage,更新速度会快很多。当您需要提取最终图像时,请使用 -imageFromCurrentlyProcessedOutput

关于iphone - GPUImage 使用 UISlider 改变亮度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17206532/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com