【发布时间】:2014-12-10 19:14:17
【问题描述】:
我正在尝试在动画期间更改 UIImage 饱和度。但这样做似乎太重/太慢了:
-(void) changeSaturation:(CGFloat)value{
CIContext * context = [CIContext contextWithOptions:nil];
CIFilter *colorControlsFilter = [CIFilter filterWithName:@"CIColorControls"];
CIImage *image = self.imageView.image.CIImage;
[colorControlsFilter setValue:image forKey:@"inputImage"];
[colorControlsFilter setValue:[NSNumber numberWithFloat:value] forKey:@"inputSaturation"];
CIImage *outputImage = [colorControlsFilter outputImage];
CGImageRef cgimg = [context createCGImage:outputImage
fromRect:[outputImage extent]];
UIImage *newImage = [UIImage imageWithCGImage:cgimg];
self.imageView.image = newImage;
CGImageRelease(cgimg);}
每次用户拖动视图时都会调用此方法(当距离改变时,饱和度也会改变),这显然不是正确的方法,但我想要类似的行为。 我想知道我是否可以通过 UIImageview 顶部的图层来实现这一点。
谁能告诉我如何实现我的目标?
【问题讨论】:
-
您的问题动画或滞后?
-
动画中途中断
-
需要平滑更改图像吗?
-
我想问题应该与图像更改或创建有关。不确定
标签: ios uiimageview uiimage hsv ciimage