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

Dan*_*ard 2 macos xcode cgimage swift

我正在开发XCode中的OSX项目.我在XCode中添加了一个图像集到我的资产目录.它被称为'Foo'.

我如何从中获得CGImage?

从中获取NSImage似乎非常简单:

let image = NSImage(named: "Foo")
Run Code Online (Sandbox Code Playgroud)

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

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

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

rob*_*off 8

自OS X 10.6以来,NSImage已经有了方法CGImageForProposedRect(_:context:hints:).您可以传递nil所有参数.从而:

let nsImage = NSImage(named: "foo")
let cgImage = nsImage?.CGImageForProposedRect(nil, context: nil, hints: nil)
Run Code Online (Sandbox Code Playgroud)