我试图在图像上使用颜色减淡混合模式(CIFilter)并将其与我的整个场景(这是一个 SKScene 节点)合成。不幸的是,CIColorDodgeBlendMode 只将 CIImage 作为背景的输入。有没有可能的解决方法?
基本上我想要相同的结果,就像在具有 2 层的 Photoshop 中一样,并且上层应用了颜色减淡混合模式。
这是我的代码('self' 将是 SKScene 节点):
UIImage *inputUIImage = [UIImage imageNamed:@"inputImage.png"];
CIImage *inputCIImage = [[CIImage alloc]initWithImage:inputUIImage];
CIFilter *filter = [CIFilter filterWithName:@"CIColorDodgeBlendMode"];
[filter setValue:inputCIImage forKey:@"inputImage"];
[filter setValue:self forKey:@"inputBackgroundImage"];
CIImage *outputImage = [filter outputImage];
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cg = [context createCGImage:outputImage fromRect:[outputImage extent]];
SKTexture *outputTexture = [SKTexture textureWithCGImage:cg];
SKSpriteNode * outputSprite = [[SKSpriteNode alloc]initWithTexture:outputTexture];
[self addChild:outputSprite];