iOS couleur transparente dans UIImage

Comment puis-je effacer le magenta partie d'une UIImage et le rendre transparent?

J'ai regardé à travers de nombreuses réponses ainsi que des liens sur DONC et rien ne fonctionne (par exemple, Comment rendre une couleur transparente sur une UIImage? réponse 1 supprime tout, mais le rouge, réponse 2, apparemment, ne fonctionne pas en raison de Pourquoi est-CGImageCreateWithMaskingColors() pour retourner néant dans ce cas?).

Mise à jour:

Si j'utilise CGImageCreateWithMaskingColors avec le UIImage-je obtenir une valeur nulle. Si je supprimer le canal alpha (je représente l'image comme JPEG et le lire) CGImageCreateWithMaskingColors renvoie une image peinte avec un fond noir.

Update2, le code:

Retour néant:

const float colorMasking[6] = {222, 255, 222, 255, 222, 255};
CGImageRef imageRef = CGImageCreateWithMaskingColors(anchorWithMask.CGImage, colorMasking);

NSLog(@"image ref %@", imageRef);
//this is going to return a nil imgref.

UIImage *image = [UIImage imageWithCGImage:imageRef];

Renvoyant une image avec un fond noir (ce qui est normal puisqu'il n'y a pas de canal alpha):

UIImage *inputImage = [UIImage imageWithData:UIImageJPEGRepresentation(anchorWithMask, 1.0)];

const float colorMasking[6] = {222, 255, 222, 255, 222, 255};
CGImageRef imageRef = CGImageCreateWithMaskingColors(inputImage.CGImage, colorMasking);

NSLog(@"image ref %@", imageRef);
//imgref is NOT nil.

UIImage *image = [UIImage imageWithCGImage:imageRef];

Update3:

J'ai eu de travail en ajoutant le canal alpha après le processus de masquage.

Poster votre code.
Ajouté le code.
Comment avez-vous "ajouter un canal alpha après le processus de masquage?"

OriginalL'auteur MB. | 2011-11-29