ios - 为什么我在设置 CIAdditionCompositing 过滤器时会看到 NSUnknownKeyException?

标签 ios core-image

我正在尝试使用以下代码设置 CIAdditionCompositing 过滤器:

CIImage *imageOne = [CIImage imageWithCGImage:[UIImage imageNamed:@"picOne"].CGImage];
CIImage *imageTwo = [CIImage imageWithCGImage:[UIImage imageNamed:@"picTwo"].CGImage];

filter = [CIFilter filterWithName:@"CIAdditionCompositing"];
[filter setDefaults];
[filter setValue:imageOne forKey:kCIInputImageKey];
[filter setValue:imageTwo forKey:kCIInputBackgroundImageKey];

CIImage *imageResult  = [filter outputImage];
CGImageRef imageRef = [context createCGImage:imageResult fromRect:imageResult.extent];
_imageView.image = [UIImage imageWithCGImage:imageRef];

我看到以下错误:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<__NSCFConstantString 0x2e2d60> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key inputImage.'

在线

[filter setValue:imageOne forKey:kCIInputImageKey];

我在这个 Core Image 过滤器的设置中做错了什么?

最佳答案

奇怪,这个方法行得通...

filter = [CIFilter filterWithName:@"CIAdditionCompositing" keysAndValues:kCIInputImageKey, imageOne, kCIInputBackgroundImageKey, imageTwo, nil];

谁能解释一下区别?

关于ios - 为什么我在设置 CIAdditionCompositing 过滤器时会看到 NSUnknownKeyException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15010372/

相关文章:

ios - 检测何时将 iOS 截图添加到相册

android - 如何在不更新应用程序的情况下重新加载 Cordova 应用程序的 UI

cocoa - 为什么 kCIAttribute(Max|Min) 和 kCIAttributeSlider(Max|Min) 有时会有不同的值

ios - CIMedianFilter 是如何工作的? (算法)

ios - Ipad-数据未显示在 UItableview 上

android - 如何将 LinearGradient 用于 react 选项卡导航器选项卡

ios - NSMutableArray 集合和@Synchronized block

objective-c - 从 CIImage 创建 CVPixelBufferRef 以写入文件

ios - CI过滤器组合

ios - 使用CIFilter的链接器错误