gpt4 book ai didi

ios - 无法生成蒙版图像; CISourceOverCompositing 未按预期工作

转载 作者:行者123 更新时间:2023-12-01 18:24:04 25 4
gpt4 key购买 nike

我基本上是想得到 "Anonymous Faces Filter Recipe" example在 iOS 模拟器中工作。

没有错误或警告,但似乎“CISourceOverCompositing”过滤器没有按预期工作。在 maskImage 上绘制的圆圈是破坏性的,而不是相加的。例如,如果找到 5 个面,则绘制 5 个圆圈,但在 maskImage 上只显示最后一个。

我怎样才能使每个圆圈以加法方式绘制到 maskImage ?

这是我用来构建掩码的代码:

// Create a green circle to cover the rects that are returned.
CIImage *maskImage = nil;
for (CIFeature *f in faces){
CIVector *circleCenter = [CIVector vectorWithX:f.bounds.origin.x+f.bounds.size.width/2.0 Y:f.bounds.origin.y+f.bounds.size.height/2.0];
CGFloat circleRadius = MIN([f bounds].size.width, [f bounds].size.height)/1.5;
CIFilter *radialGradient = [CIFilter filterWithName:@"CIRadialGradient" keysAndValues:
@"inputRadius0", [NSNumber numberWithFloat:circleRadius],
@"inputRadius1", [NSNumber numberWithFloat:circleRadius+1.0f],
@"inputColor0", [CIColor colorWithRed:0.0 green:1.0 blue:0.0 alpha:1.0],
@"inputColor1", [CIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0],
@"inputCenter", circleCenter, nil];
CIImage *circleImage = [radialGradient valueForKey:@"outputImage"];
if (maskImage == nil) {
maskImage = circleImage;
} else {
maskImage = [[CIFilter filterWithName:@"CISourceOverCompositing" keysAndValues:@"inputImage", circleImage, @"inputBackgroundImage",maskImage, nil] valueForKey:@"outputImage"];
}
}

最佳答案

不幸的是,在 Anonymous Faces Filter Recipe 上找到的源代码没有开箱即用地编译或工作。 的问题CISourceOverCompositing 可以使用 inputColor1 找到过滤器参数和 alpha channel 。替换 inputColor1用以下颜色着色,你应该很高兴:
@"inputColor1", [CIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0]

关于ios - 无法生成蒙版图像; CISourceOverCompositing 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15057161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com