J'ai des images de masques sans canal alpha, noir et blanc pur avec un polygone noir au centre entouré de blanc.Le masquage UIImage donne un fond noir sur l'iPhone (et non sur le simulateur)
J'ai l'image de png que j'aimerais masquer. le png a un canal alpha. en utilisant la méthode ci-dessous: ok sur le simulateur, mais le fond est noir sur l'appareil ... une idée pour résoudre ce problème?
- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
CGImageRef maskRef = maskImage.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
//CGImageRelease(mask);
//CGImageRelease(maskRef);
return [UIImage imageWithCGImage:masked];
}
Je suis confronté au même problème. pourriez-vous poster un échantillon de code sur la façon de créer le canal alpha? – lxcid
Merci Tibi. Pour moi, il était également important que maskImage possède un canal alpha. Donc, depuis iOS7 BOTH images, l'image à masquer et le masque lui-même doit avoir un canal alpha. – sust86