Je voudrais créer une UIImage 1x1 dynamiquement basée sur un UIColor.
Je soupçonne que cela peut être fait rapidement avec Quartz2d, et je me penche sur la documentation pour essayer de comprendre les principes de base. Cependant, il semble qu'il existe de nombreux pièges potentiels: ne pas identifier correctement le nombre de bits et d'octets par chose, ne pas spécifier les bons indicateurs, ne pas libérer les données inutilisées, etc.
Comment cela peut-il être fait en toute sécurité avec Quartz 2d (ou un autre moyen plus simple)?
ios
uiimage
core-graphics
quartz-graphics
Ian Terrell
la source
la source
[UIImage imageWithColor: [UIColor redColor]]
.const CGFloat alpha = CGColorGetAlpha(color.CGColor); const BOOL opaque = alpha == 1; UIGraphicsBeginImageContextWithOptions(size, opaque, 0);
UIGraphicsGetCurrentContext()
returninnil
? Edit : je l'ai eu, je passais0
pour lerect
'swidth
.Voici une autre option basée sur le code de Matt Stephen. Il crée une image de couleur unie redimensionnable de telle sorte que vous puissiez la réutiliser ou modifier sa taille (par exemple, l'utiliser pour un arrière-plan).
Mettez-le dans une catégorie UIImage et changez le préfixe.
la source
J'ai utilisé la réponse de Matt Steven à plusieurs reprises, alors j'ai créé une catégorie pour cela:
la source
En utilisant le dernier UIGraphicsImageRenderer d'Apple, le code est assez petit:
la source
Pour moi, un init pratique me semble plus soigné dans Swift.
la source
Ok, ce ne sera pas exactement ce que vous voulez, mais ce code dessinera une ligne. Vous pouvez l'adapter pour faire valoir un point. Ou du moins en tirer quelques informations.
Faire l'image 1x1 semble un peu bizarre. Les traits chevauchent la ligne, donc un trait de largeur 1,0 à 0,5 devrait fonctionner. Jouez simplement.
la source