从CGImageRef获取NSImage

27

我正在尝试在CoreGraphics中处理图像,然后将处理后的图像返回到NSImage以便保存和显示。我有充足的资源来了解如何在iOS中执行这些函数,但在NSImage中似乎缺少辅助方法。在iOS中,类方法是imageWithCGImage:,那么在Mac OS中该怎么做呢?

我试图在Core Graphics中处理一张图片,然后将处理好的图片返回到NSImage用于保存和展示。虽然我参考了许多iOS 上对此功能的实现方式,但是在NSImage上却找不到相应的辅助方法。在iOS中,可以使用类方法imageWithCGImage:进行操作,请问在Mac OS中应该怎样实现呢?

1个回答

49

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

第二个参数以点为单位指定图像的大小。像素大小(CGImage的大小)与点大小之间的比例因子是缩放因子。例如,如果您有一个100×100像素的CGImage,并传递(NSSize){50.0,50.0} 作为大小,则图像将为50个点的大小,并且具有双倍分辨率。

通常,您应该将像素大小(来自CGImage)作为点大小直接传递。要处理多个比例因子,最好使用具有多个NSImageReps的单个NSImage,例如从 - [NSWorkspace iconForFileType:] 获取大多数类型或从创建来的典型.icns文件的NSImage。


49
NSZeroSize是“与CGImage相同大小”的简写。 - Ken

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接