Comment faire pour créer une couleur 1x1 UIImage sur l'iPhone de façon dynamique?
Je voudrais créer une 1x1 UIImage de façon dynamique en fonction d'un UIColor.
Je soupçonne que cela peut rapidement être fait avec Quartz2d, et je me suis penché sur la documentation en essayant de comprendre les principes de base. Cependant, il semble que il ya beaucoup de pièges potentiels: ne pas préciser le nombre de bits et d'octets par les choses correctement, en ne spécifiant pas le droit de drapeaux, de ne pas divulguer les données non utilisées, etc.
Comment cela peut-il être effectué en toute sécurité avec du Quartz 2d (ou un autre moyen plus simple)?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
CGContextSetFillColorWithColor
etCGContextFillRect
pour cela:Swift
Swift3
Objective-C
[UIImage imageWithColor: [UIColor redColor]]
.const CGFloat alpha = CGColorGetAlpha(color.CGColor); const BOOL opaque = alpha == 1; UIGraphicsBeginImageContextWithOptions(size, opaque, 0);
UIGraphicsGetCurrentContext()
returninnil
? Modifier: je l'ai eu, j'ai été en passant0
pour larect
'swidth
.[[UIColor redColor] image]
Voici une autre option basée sur Matt Stephen code. Il crée un redimensionnable solide de couleur de l'image telle que vous pouvez la réutiliser ou de modifier sa taille (par exemple, l'utiliser pour l'arrière-plan).
Le mettre dans une UIImage catégorie et modifier le préfixe.
J'ai utilisé Matt Steven de répondre à de nombreuses reprises alors faites un catégorie:
À l'aide d'Apple dernière UIGraphicsImageRenderer le code est assez petit:
Pour moi, une commodité init se sent plus propre à Swift.
Ok, ce ne sera pas exactement ce que vous voulez, mais ce code permet de dessiner une ligne. Vous pouvez l'adapter pour en faire un point. Ou au moins avoir un peu d'info à partir d'elle.
De prise de l'image de 1x1 semble un peu bizarre. Coups de trajet de la ligne, donc un coup de largeur de 1,0 à 0,5 devrait fonctionner. Il suffit de jouer autour.