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.
Ajouté le code.
Comment avez-vous "ajouter un canal alpha après le processus de masquage?"
OriginalL'auteur MB. | 2011-11-29
Vous devez vous connecter pour publier un commentaire.
Vous recevez néant, parce que les paramètres que vous envoyez n'est pas valide. Si vous ouvrez la documentation d'Apple, vous verrez ceci:
Vous pouvez ouvrir rapidement la documentation en appuyant sur Option + Clic de la Souris sur une fonction ou une classe, comme CGImageCreateWithMaskingColors.
C'est de cette façon l'image d'entrée ressemble à ceci: i.imgur.com/lxJdm.png (c'est la version png, en interne c'est une UIImage de UIImagePicker)
OriginalL'auteur ArtFeel
J'ai fait cette fonction statique qui supprime le fond blanc, vous pouvez l'utiliser en remplacement du masque avec de la gamme de couleur que vous souhaitez supprimer:
C'est en travaillant sur mon projet et je suis de retirer la couleur blanche de la gamme. Je pense que vous spécifiez les couleurs de la gamme, comme dans celui-ci que j'utilise 222 -> 255 Rouge à être supprimé. J'ai peut-être pas le comprendre à 100%, mais vous pouvez essayer de nouveau avec la gamme dont vous avez besoin.
J'ai utilisé ce code, c'est le travail parfait, mais encore un peu de blanc pixcel ne pouvez pas supprimer à partir de la frontière de la ligne vide que j'ai dessinés par programmation dans mon application
bhalodiya Vous pouvez essayer de changer les plages de la couleur blanche (plus large) que je ne sais pas comment vous aider. 🙁
OriginalL'auteur Khaled Annajar