CIScreenBlendModeフィルタを使用して、イメージを青色でブレンドしたいとします。そのためにCIScreenBlendModeフィルタを適用する
、私は次のコードを使用します。
-(CIImage*)makeitBlue:(CIImage*)greyImage{
CIImage* outputImage = nil;
//create some blue
CIFilter* blueGenerator = [CIFilter filterWithName:@"CIConstantColorGenerator"];
CIColor* blue = [CIColor colorWithString:@"0.1 0.5 0.8 1.0"];
[blueGenerator setValue:blue forKey:@"inputColor"];
CIImage* blueImage = [blueGenerator valueForKey:@"outputImage"];
//apply a screen filter
CIFilter* filter = [CIFilter filterWithName:@"CIScreenBlendMode"];
[filter setValue:blueImage forKey:@"inputImage"];
[filter setValue:greyImage forKey:@"inputBackgroundImage"];
outputImage = [filter valueForKey:@"outputImage"];
return outputImage;
}
この方法では、私のアプリのクラッシュを行い、私は理由を知りません。
そのマニュアルではAppleがCIScreenBlendModeの次のパラメータ状態:
inputImageとし|表示名がImageのCIImageオブジェクト。
inputBackgroundImage |表示名が のCIImageオブジェクトです。
私はそれが私が提供しているものだと思います。
私はCIScreenBlendMode CIMultiplyCompositingと置き換える
、このコードは、罰金を実行しています。多分私が作った間違いを見つけられる人がいますか?