如何从我的 XCode 资产目录中获取 CGImage

How can I get a CGImage from my XCode assets catalog

我正在 XCode 进行 OSX 项目。我在 XCode 中的资产目录中添加了一个图像集。它被称为'Foo'。

如何从中获取 CGImage?

从中得到一个NSImage好像很简单:

let image = NSImage(named: "Foo")

...但不是我需要的 CGImage。

具体设置:XCode 7.1 on OSX 10.11 El-Capitan 编码 Swift 2.1 导入 Cocoa 和 MetalKit

编辑:一些人指出了如何通过 CGImageForProposedRect 方法将 NSImage 转换为 CGImage。我希望完全避免使用 NSImage,因为它似乎是一个浪费的中间步骤。但也许这是访问图像资产的唯一方法?如果有人知道避免 NSImage 转换的方法那就太好了,否则我想接受的答案是最好的方法。

从 OS X 10.6 开始,NSImage 有了方法 CGImageForProposedRect(_:context:hints:)。您可以为所有参数传递 nil。因此:

let nsImage = NSImage(named: "foo")
let cgImage = nsImage?.CGImageForProposedRect(nil, context: nil, hints: nil)