Ich möchte ein 1x1 UIImage dynamisch basierend auf einer UIColor erstellen.
Ich vermute, dass dies mit Quartz2d schnell erledigt werden kann, und ich stöbere in der Dokumentation, um die Grundlagen zu verstehen. Es sieht jedoch so aus, als gäbe es viele potenzielle Fallstricke: die Anzahl der Bits und Bytes pro Sache nicht richtig zu identifizieren, die richtigen Flags nicht anzugeben, nicht verwendete Daten nicht freizugeben usw.
Wie kann dies sicher mit Quartz 2d (oder einem anderen einfacheren Weg) gemacht werden?
ios
uiimage
core-graphics
quartz-graphics
Ian Terrell
quelle
quelle
[UIImage imageWithColor: [UIColor redColor]]
.const CGFloat alpha = CGColorGetAlpha(color.CGColor); const BOOL opaque = alpha == 1; UIGraphicsBeginImageContextWithOptions(size, opaque, 0);
UIGraphicsGetCurrentContext()
kehrt ich zurücknil
? Bearbeiten : Ich habe es, ich war vorbei0
für dierect
‚swidth
.Hier ist eine weitere Option, die auf dem Code von Matt Stephen basiert. Es wird ein anpassbares Vollfarbbild erstellt, sodass Sie es wiederverwenden oder seine Größe ändern können (z. B. als Hintergrund verwenden).
Fügen Sie es in eine UIImage-Kategorie ein und ändern Sie das Präfix.
quelle
Ich habe die Antwort von Matt Steven viele Male verwendet, also habe ich eine Kategorie dafür erstellt:
quelle
Mit Apples neuestem UIGraphicsImageRenderer ist der Code ziemlich klein:
quelle
Für mich fühlt sich ein Convenience-Init in Swift ordentlicher an.
quelle
Ok, das wird nicht genau das sein, was Sie wollen, aber dieser Code wird eine Linie ziehen. Sie können es anpassen, um einen Punkt zu machen. Oder zumindest ein paar Infos davon.
Das Bild 1x1 zu machen scheint etwas seltsam. Striche fahren auf der Linie, daher sollte ein Strich mit einer Breite von 1,0 bei 0,5 funktionieren. Spielen Sie einfach herum.
quelle