26

我正在尝试在 CoreGraphics 中处理图像,然后将处理后的图像返回到NSImage用于保存和显示的图像。我有足够的资源来说明如何在 iOS 中执行这些功能,但在NSImage. 在 iOS 中,类方法是imageWithCGImage:,你怎么能在 Mac OS 中做到这一点?

4

1 回答 1

48

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

第二个参数以点为单位获取图像的大小。(CGImage 的)像素大小和点大小之间的因子是比例因子。因此,例如,如果你有一个 100×100px 的 CGImage,并传递一个大小为 的(NSSize){ 50.0, 50.0 },图像的大小将是 50 点,分辨率是双倍的。

通常你应该只传递以像素为单位的大小(来自 CGImage)作为以点为单位的大小。为了处理多个比例因子,最好使用带有多个 NSImageRep 的单个 NSImage,就像您从-[NSWorkspace iconForFileType:]大多数类型中获得的内容或从典型的 .icns 文件创建 NSImage 一样。

于 2012-02-01T17:47:08.110 回答