我写下面的代码:
CIFilter *Filter = [CIFilter filterWithName:@"CIRadialGradient"];
CIColor *startColor = [CIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];
CIColor *endColor = [CIColor colorWithRed:0 green:0 blue:0 alpha:1.0];
CIVector *startVector = [CIVector vectorWithX:CGRectGetMidX(self.frame) Y:CGRectGetMidY(self.frame)];
NSNumber *radius1 = [NSNumber numberWithInt:100];
NSNumber *radius2 = [NSNumber numberWithInt:1000];
[Filter setValue:startVector forKey:@"inputCenter"];
[Filter setValue:radius1 forKey:@"inputRadius0"];
[Filter setValue:radius2 forKey:@"inputRadius1"];
[Filter setValue:startColor forKey:@"inputColor0"];
[Filter setValue:endColor forKey:@"inputColor1"];
SKEffectNode *effectNode = [SKEffectNode node];
effectNode.filter = Filter;
effectNode.shouldEnableEffects = YES;
[self addChild:effectNode];
但在屏幕上,没有任何反应。我使用Sprite Kit。
答案 0 :(得分:0)
你不能这样做。根据Apple的说法,filter
的{{1}}属性需要输入和输出图像参数:
Core Image过滤器必须具有单个inputImage参数和 生成一个outputImage参数。
SKEffectNode
没有CIRadialGradient
参数。