我正在开发图像过滤器应用程序。我使用以下代码创建了过滤器:
context = [CIContext contextWithOptions:nil];
beginImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"biscus_small.png"]];
filter = [CIFilter filterWithName:@"CISepiaTone"
keysAndValues: kCIInputImageKey, beginImage,
@"inputIntensity", [NSNumber numberWithFloat:0.8], nil];
然后,当用户选择过滤器时,我只需在应用过滤器并分配给 UIImageView 后获取 CIImage。出于某种原因,setImage 之后的 UIImageView 显示白色(无)。
CIImage *outputImage = [filter outputImage];
// CGImageRef cgimg =
// [context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *finalImage = [UIImage imageWithCIImage:outputImage];
[self.imageView setImage:finalImage];
如果我使用 CIContext 的 createCGImage 方法,那么它可以正常工作并使用过滤器显示图像,但使用 createCGImage 非常慢。