如何将具有属性的文本直接转换为CIImage(无需在屏幕上绘制)



我想将具有属性(即特定字体和大小)的文本直接转换为CIImage,也就是说,不需要先将其绘制到屏幕上,这样我就可以使用自定义的CIFilter来动态更改文本的外观。我该怎么做?

以下是如何在NSImage上绘制NSAttributedString。不过,我没有测试到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!)!

相关内容

  • 没有找到相关文章

最新更新