Ich möchte ein Bild mit einer blauen Farbe unter Verwendung des CIScreenBlendMode Filters mischen.Anwenden des CIScreenBlendMode-Filters
Dafür verwende ich den folgenden Code:
-(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;
}
Diese Methode meiner app Absturz macht und ich weiß nicht, warum.
In seiner Dokumentation von Apple heißt es folgende Parameter für CIScreenBlendMode:
inputImage | Ein CIImage-Objekt, dessen Anzeigename Image lautet.
inputBackgroundImage | Ein CIImage-Objekt, dessen Anzeigename Hintergrundbild ist.
Ich denke, das ist genau das, was ich anbiete.
Als ich CIScreenBlendMode mit CIMultiplyCompositing, dieser Code in Ordnung ersetzen läuft.
Vielleicht können einige von Ihnen den Fehler erkennen, den ich mache?