Ich möchte Text mit Attributen (dh einer bestimmten Schrift und Größe) direkt in einen CImage konvertieren, dh ohne ihn zuerst auf den Bildschirm zu zeichnen So kann ich einen benutzerdefinierten CIF-Filter verwenden, um das Erscheinungsbild des Texts dynamisch zu ändern. Wie kann ich das machen?So wandeln Sie Text mit Attributen direkt in einen CI-Ausdruck um (ohne auf Bildschirm zu zeichnen)
Q
So wandeln Sie Text mit Attributen direkt in einen CI-Ausdruck um (ohne auf Bildschirm zu zeichnen)
1
A
Antwort
2
So zeichnen Sie eine NSAttributedString
auf eine NSImage
. Ich habe die Umwandlung zu CIImage
though (die letzte Zeile) nicht getestet, aber es sollte nicht zu schwierig sein:
let string = NSAttributedString(string: "Hello World!", attributes: [NSFontAttributeName: NSFont.labelFontOfSize(10)])
let image = NSImage(size: string.size())
image.lockFocus()
NSGraphicsContext.saveGraphicsState()
NSGraphicsContext.currentContext()!.shouldAntialias = true
string.drawAtPoint(NSZeroPoint)
NSGraphicsContext.restoreGraphicsState()
image.unlockFocus()
let ciimage = CIImage(data: image.TIFFRepresentation!)!
Vielen Dank! Das hat den Trick gemacht. Auch die Konvertierung in ein CI-Image funktionierte einwandfrei, und mein benutzerdefinierter CIFilter bewältigte das Problem problemlos. – Optimalist