4

画像でカラー ダッジ ブレンド モード (CIFilter) を使用して、シーン全体 (SKScene ノード) と合成しようとしています。残念ながら、CIColorDodgeBlendMode は、背景の入力として CIImage のみを受け取ります。回避策はありますか?

基本的に、Photoshop のように 2 つのレイヤーがあり、上のレイヤーには覆い焼きブレンディング モードが適用されているのと同じ結果が必要です。

これが私のコードです(「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];
4

0 に答える 0