Как преобразовать текст с атрибутами напрямую в CIImage (без рисования на экране)

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


person Optimalist    schedule 30.07.2016    source источник


Ответы (1)


Вот как нарисовать 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!)!
person Nickkk    schedule 31.07.2016
comment
Благодарю вас! Это помогло. Кроме того, преобразование в CIImage работало нормально, и мой собственный CIFilter справился с этим без проблем. - person Optimalist; 01.08.2016