Ich füge einen Bildrahmen (Bild mit transparentem Hintergrund) um einen vorhandenen UIImage hinzu und speichere alles als ein Bild. Am Simulator sieht alles wie toll aus. Auf dem Gerät werden jedoch einige weiße Pixel um einige Bereiche des Bilds des Rahmens herum hinzugefügt. Hier ist mein Code:Weiße Pixel um iOS Bild mit CIFilter
- (void)applyFilter {
NSLog(@"Running");
UIImage *borderImage = [UIImage imageNamed:@"IMG_8055.PNG"];
NSData *dataFromImage = UIImageJPEGRepresentation(self.imgView.image, 1);
CIImage *beginImage= [CIImage imageWithData:dataFromImage];
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *border =[CIImage imageWithData:UIImagePNGRepresentation(borderImage)];
border = [border imageByApplyingTransform:CGAffineTransformMakeScale(beginImage.extent.size.width/border.extent.size.width, beginImage.extent.size.height/border.extent.size.height)];
CIFilter *filter= [CIFilter filterWithName:@"CISourceOverCompositing"]; //@"CISoftLightBlendMode"];
[filter setDefaults];
[filter setValue:border forKey:@"inputImage"];
[filter setValue:beginImage forKey:@"inputBackgroundImage"];
CIImage *outputImage = [filter valueForKey:@"outputImage"];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *newImg = [UIImage imageWithCGImage:cgimg];
self.imgView.image = newImg;
}
Hier ist das resultierende Bild:
Der Bildrahmen im Bild verwendet sieht wie folgt aus:
Hier ist ein Screenshot des Frame-Bildes in Photoshop, zeigt diese Pixel nicht in der PNG.
Das Original ist ein transparentes PNG. Im Simulator erscheint das Weiß nicht. – user717452
Definitiv nicht das Problem. Öffnen Sie einfach das PNG in PHOTOSHOP und gezoomt, um transparent zu bestätigen, außer für Notizen und Titel oben. Fügen Sie einen Screenshot hinzu, der dies in OP zeigt – user717452
@ user717452 - Ich habe Ihren Code mit meinen eigenen Bildern und nicht die Artefakte, die Sie beschreiben, erlebt. Ich würde vorschlagen, dass Sie das PNG-Bild, das sich im Paket Ihrer App befindet, nochmals überprüfen und sicherstellen, dass es dem in Photoshop verifizierten PNG-Bild entspricht. Bearbeiten Sie die Frage vielleicht so, dass sie die tatsächlichen Bilder enthält, damit wir das von Ihnen beschriebene Verhalten reproduzieren können. Bis wir das Verhalten reproduzieren können, können wir Ihnen nicht helfen. Und meine Versuche mit deinem Code und meinen eigenen Bildern haben gut funktioniert. – Rob