2016-07-30 12 views
1

Я хотел бы преобразовать текст с атрибутами (то есть конкретным шрифтом и размером) прямо в CIImage, то есть без предварительного рисования на экране - так что я могу использовать пользовательский CIFilter для динамического изменения внешнего вида текста. Как я могу это сделать?Как преобразовать текст с атрибутами прямо в CIImage (без рисования на экран)

ответ

2

Как нарисовать NSAttributedString на NSImage. Я не тестировал преобразование на CIImage, хотя (последняя строка), но это не должно быть слишком сложно:

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!)! 
+0

Спасибо! Это сделал трюк. Кроме того, преобразование в CIImage отлично работало, и мой пользовательский CIFilter справился с этим без проблем. – Optimalist