1
我想將具有屬性的文本(即特定的字體和大小)直接轉換爲CIImage,即不先將其繪製到屏幕上因此,我可以使用自定義的CIFilter動態更改文本的外觀。我怎樣才能做到這一點?如何將文本與屬性直接轉換爲CIImage(不繪製到屏幕)
我想將具有屬性的文本(即特定的字體和大小)直接轉換爲CIImage,即不先將其繪製到屏幕上因此,我可以使用自定義的CIFilter動態更改文本的外觀。我怎樣才能做到這一點?如何將文本與屬性直接轉換爲CIImage(不繪製到屏幕)
下面介紹如何將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!)!
謝謝!那就是訣竅。此外,轉換到CIImage工作正常,我的自定義CIFilter處理它沒有問題。 – Optimalist