从CGImageRef获取NSImage

时间:2012-02-01 15:21:01

标签: macos core-graphics nsimage cgimageref

我正在尝试在CoreGraphics中处理图像,然后将处理后的图像返回到NSImage以进行保存和显示。我有足够的资源来介绍如何在iOS中执行这些功能,但NSImage中似乎缺少帮助方法。在iOS中,类方法是imageWithCGImage:,如何在Mac OS中执行此操作?

1 个答案:

答案 0 :(得分:45)

NSImage中的匹配方法是initWithCGImage:size:

第二个参数采用图像的大小。像素(CGImage)的大小和点的大小之间的因子是比例因子。因此,例如,如果你有一个100×100px的CGImage,并传递(NSSize){ 50.0, 50.0 }的大小,那么图像将是50个点,并且是双分辨率。

通常你应该以像素的大小(以CGI像素为单位)传递大小。为了处理多个比例因子,最好使用具有多个NSImageRep的单个NSImage,例如对于大多数类型从-[NSWorkspace iconForFileType:]获得的内容,或者从典型的.icns文件创建NSImage。