【发布时间】:2014-07-28 11:35:42
【问题描述】:
我正在尝试 CIFilter 在图像上应用各种效果(亮度、对比度、饱和度等)。
图片滤镜应用成功。但是最后编辑的图像的状态并没有保持,例如:如果我增加图像的亮度,然后对编辑的图像应用对比度,那么对比度将应用于原始图像,而不是应用于亮度增加的图像
以下是代码:
- (IBAction)contrastSliderValueChanged:(id)sender {
filter=NULL;
result=NULL;
cgimg=NULL;
newimg=NULL;
if (adjustMenuTag==1) {
filter=[CIFilter filterWithName:@"CIColorControls"];
[filter setDefaults];
[filter setValue:beginImage forKey:@"inputImage"];
[filter setValue:[NSNumber numberWithFloat:contrastSlider.value] forKey:@"inputBrightness"] ;
result=[filter valueForKey:kCIOutputImageKey];
cgimg=[context createCGImage:result fromRect:[result extent]];
newimg=[UIImage imageWithCGImage:cgimg];
imageViewDisplay.image=newimg;
beginImage = result;
CFRelease(cgimg);
// beginImage = [[CIImage alloc] initWithImage:imageViewDisplay.image];
} else if(adjustMenuTag ==2 ) {
filter=[CIFilter filterWithName:@"CIColorControls"];
[filter setDefaults];
[filter setValue:beginImage forKey:@"inputImage"];
[filter setValue:[NSNumber numberWithFloat:contrastSlider.value+0.5] forKey:@"inputContrast"] ;
result=[filter valueForKey:kCIOutputImageKey];
cgimg=[context createCGImage:result fromRect:[result extent]];
newimg=[UIImage imageWithCGImage:cgimg];
imageViewDisplay.image=newimg;
beginImage = result;
CFRelease(cgimg);
// beginImage = newimg.CIImage; //this also doesn't work.
}
}
我哪里错了?我该如何解决这个问题?如何保持编辑后图像的状态?
【问题讨论】:
标签: ios core-image cifilter