【问题标题】:Reset button to original image from filtered image将按钮从过滤后的图像重置为原始图像
【发布时间】:2014-05-22 17:23:30
【问题描述】:

我尝试在图像视图中为我的图像添加过滤器,当我尝试单击过滤器按钮时,它们正在堆叠。您能帮我创建一个重置或撤消按钮,以通过 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];

【问题讨论】:

标签: ios objective-c cifilter


【解决方案1】:

您的过滤器正在堆叠,因为您正在修改 imageview 中的图像,然后将修改后的图像放回 imageview。您应该将原始图像存储在单独的属性中,并始终从该属性开始修改。例如,像这样的属性:

@property (nonatomic, strong) UIImage *originalImage;

然后在您的方法中,使用原始图像而不是图像视图中已经存在的图像:

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

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

【讨论】:

  • 感谢回复我试过这个方法它显示空白屏幕你能举个例子,如果你能,这将是一个很大的帮助
  • 你需要为originalImage 分配一些东西(即你用来填充图像视图的任何东西)
  • 来自相机和相机胶卷的原始图像对不起,我是开发新手,所以我该如何分配?
猜你喜欢
  • 1970-01-01
  • 2016-07-04
  • 2017-12-22
  • 1970-01-01
  • 2011-02-15
  • 2014-10-01
  • 1970-01-01
  • 2012-01-11
  • 1970-01-01
相关资源
最近更新 更多