Superposer une UIImage avec une couleur?
Je suis d'essayer d'ajouter un charbonné sur certains UIImage (qui est blanc). J'ai essayé d'utiliser code suivant:
[[UIColor blackColor] set];
[image drawAtPoint:CGPointMake(0, 0) blendMode:kCGBlendModeOverlay alpha:1.0];
Mais cela ne fonctionne pas, et je suis sûr que jeu n'est pas censé être là.
source d'informationauteur Oliver
Vous devez vous connecter pour publier un commentaire.
Vous voulez clip le contexte d'un masque d'image et de les remplir avec une couleur unie:
Remarque:
myImage
doit être une variable d'instance qui contient unUIImage
. Je ne suis pas sûr de savoir si il prend le masque de la couche alpha ou l'intensité afin d'essayer les deux.Donc, pour résumer toutes les réponses en un seul voici la liste dans la méthode qui fonctionne parfaitement à partir de
iOS 6
tout le chemin jusqu'àiOS 11
avec toutes sortes d'images et d'icônes:Mise à jour: Swift 3 version
Je viens d'écrire un tutoriel qui va vous aider à cela. Mon approche vous donne une copie d'une UIImage, avec la couleur des altérations de ce que vous voulez. rpetrich l'approche est grand, mais exige que vous êtes en train de créer une sous-classe. Ma démarche est juste quelques lignes de code qui peuvent être déposés dans les partout où vous en avez besoin. http://coffeeshopped.com/2010/09/iphone-how-to-dynamically-color-a-uiimage
Regard sur cette méthode
Depuis iOS 7, il y a une solution beaucoup plus simple:
En plus de la solution par rpetrich (qui est super d'ailleurs - m'aider superbement), vous pouvez également remplacer le CGContextClipToMask ligne avec:
C'est le SourceIn blendmode qui fait le travail de masquage de la couleur par tout ce qui est dans le GetCurrentContext.
Voici comment vous le faites avec Swift 3.0 et utiliser des extensions pour UIImage. Super simple.
Puis de l'exécuter il suffit de faire:
-set
est utilisée pour définir la couleur de la suite des opérations de dessin qui ne comprennent pas les blits. Je suggère qu'un premier appel, l'affichage d'un autre (vide)UIView
sur votreUIImageView
et la fixation de sa couleur de fond:Évidemment, vous devez utiliser le blanc et les valeurs alpha que vous voulez.