Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos CIColorMap中的CIFilterGenerator故障_Macos_Cocoa_Core Image_Cifilter - Fatal编程技术网

Macos CIColorMap中的CIFilterGenerator故障

Macos CIColorMap中的CIFilterGenerator故障,macos,cocoa,core-image,cifilter,Macos,Cocoa,Core Image,Cifilter,我正在尝试创建一个CIFilterGenerator,用于使用以下代码的CALayer: CIFilterGenerator *generator = [[CIFilterGenerator alloc] init]; CIFilter *colorFilter = [CIFilter filterWithName:@"CIConstantColorGenerator"]; [colorFilter setDefaults]; [colorFilter setValue:[CIColor co

我正在尝试创建一个
CIFilterGenerator
,用于使用以下代码的CALayer:

CIFilterGenerator *generator = [[CIFilterGenerator alloc] init];

CIFilter *colorFilter = [CIFilter filterWithName:@"CIConstantColorGenerator"];
[colorFilter setDefaults];
[colorFilter setValue:[CIColor colorWithRed:0.0 green:1.0 blue:0.0 alpha:0.5] forKey:kCIInputColorKey];

CIFilter *cropFilter = [CIFilter filterWithName:@"CICrop"];
[cropFilter setDefaults];
[cropFilter setValue:[CIVector vectorWithX:0.0 Y:0.0 Z:1.0 W:1.0] forKey:@"inputRectangle"];
[generator connectObject:colorFilter withKey:kCIOutputImageKey toObject:cropFilter withKey:kCIInputImageKey];

CIFilter *colorMap = [CIFilter filterWithName:@"CIColorMap"];
[colorMap setDefaults];
[generator connectObject:cropFilter withKey:kCIOutputImageKey toObject:colorMap withKey:kCIInputGradientImageKey];

CIFilter *blur = [CIFilter filterWithName:@"CIGaussianBlur"];
[blur setDefaults];
[blur setValue:@10.0 forKey:kCIInputRadiusKey];
[generator connectObject:colorMap withKey:kCIOutputImageKey toObject:blur withKey:kCIInputImageKey];


[generator exportKey:kCIInputColorKey fromObject:colorFilter withName:nil];
[generator exportKey:kCIInputImageKey fromObject:colorMap withName:nil];

[generator exportKey:kCIOutputImageKey fromObject:blur withName:nil];
但是,当我尝试将其附加到层时,会出现一个异常:

/SourceCache/CoreImage/CoreImage-8.2.2/API/CIFilter.mm:588: CIColorMap apply:: Caught exception: CIColorMap: colorMap: nil value for argument #0 (src)

这很奇怪,因为我正在导出颜色贴图输入图像。更奇怪的是,如果我将导出的输出图像更改为颜色贴图,它会按预期工作(当然会减去模糊)。

它也会因为最小的过滤器链而失败吗?例如,仅将
CIColorMap
CIColorMap
连接到您的
colorFilter
?是。看起来,如果我将一个图像设置为输入图像(任何图像,我使用的是恒定颜色),它就可以正常工作。当过滤器应用到图层时,临时图像被替换,一切正常。但是,如果过滤器没有默认的输入图像,那么一旦您尝试访问它,它就会抛出一个异常。认为这是一个错误。