我正在尝试对从照片库加载到 UI View 的图像实现棕褐色滤镜。
我有一个 UI slider ...范围从 -1 到 1。并应用棕褐色效果。
我遇到的问题是,总体效果正在汇总。就像...如果我将 slider 置于 1,然后将其移回 0。它不会将图像恢复为原始形式。然后我将其移回 1.. 总共应用了 2 次棕褐色。
- (IBAction)slidermove:(id)sender {
currentValue=_sliderValue.value;
if (currentButton==1)
{
//1
CIImage *beginImage = [CIImage imageWithData: UIImagePNGRepresentation(self.imageView.image)];
//2
CIContext *context = [CIContext contextWithOptions:nil];
//3
CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"
keysAndValues: kCIInputImageKey, beginImage,
@"inputIntensity", [NSNumber numberWithFloat:currentValue], nil];
//4
CIImage *outputImage = [filter outputImage];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];
//5
self.imageView.image = [UIImage imageWithCGImage:cgimg];
//6
CGImageRelease(cgimg);
}
}
- (IBAction)applyeffect:(id)sender
{
currentButton=1;
}
最佳答案
出现此问题是因为您没有保存原始图像。每次 slider 更改时您都会更改图像,因此效果会很复杂。以下是您应该做的:
在你的@interface
中:
@property(strong, nonatomic)UIImage *originalImage;
在你的@implementation
中:
-(void)viewDidLoad{
[super viewDidLoad];
self.imageView.image = self.originalImage;
}
然后当你做效果时,将它应用到 originalImage
属性,并在 self.imageView 中显示结果。
关于ios - 核心图像过滤器 iOS UISlider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22970281/