【发布时间】:2016-12-05 08:22:56
【问题描述】:
我想将具有属性(即特定字体和大小)的文本直接转换为 CIImage(即,无需先将其绘制到屏幕上),以便我可以使用自定义 CIFilter 来动态更改文本的外观。我该怎么做?
【问题讨论】:
标签: swift macos cocoa cifilter ciimage
我想将具有属性(即特定字体和大小)的文本直接转换为 CIImage(即,无需先将其绘制到屏幕上),以便我可以使用自定义 CIFilter 来动态更改文本的外观。我该怎么做?
【问题讨论】:
标签: swift macos cocoa 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!)!
【讨论】: