将button从过滤的图像重置为原始图像

我试图在图像视图中添加filter到我的图像,当我试图点击他们正在堆叠的filterbutton。 你能帮我创build一个重置或撤消button来转到原始图像与IAM从相机和相机胶卷获取原始图像?

(IBAction)filter:(id)sender { CIContext *context=[CIContext contextWithOptions:nil]; CIImage *image =[CIImage imageWithCGImage:imageview.image.CGImage]; CIFilter *filter =[CIFilter filterWithName:@"CISepiaTone"]; [filter setValue:image forKey:kCIInputImageKey]; [filter setValue:@1.0f forKey:@"InputIntensity"]; CIImage *result =[filter valueForKey:kCIOutputImageKey]; CGImageRef cgImage =[context createCGImage:result fromRect:result.extent]; UIImage *uiImage =[[UIImage alloc]initWithCGImage:cgImage]; [self.imageview setImage:uiImage]; 

您的滤镜正在堆叠,因为您正在修改imageview中的图像,然后将修改的图像放回到imageview中。 您应该将原始图像存储在单独的属性中,并始终从中进行修改。 例如,一个属性如:

 @property (nonatomic, strong) UIImage *originalImage; 

然后在你的方法中,使用原始图像而不是图像视图中的图像:

 CIImage *image = [CIImage imageWithCGImage:self.originalImage.CGImage]; 

在成员variables/属性中存储数据也比在视图中存储数据更好。