【发布时间】:2012-02-01 15:21:01
【问题描述】:
我正在尝试在 CoreGraphics 中处理图像,然后将处理后的图像返回到 NSImage 以进行保存和显示。我有足够的资源来说明如何在 iOS 中执行这些功能,但 NSImage 中似乎缺少辅助方法。在 iOS 中类方法是imageWithCGImage:,在 Mac OS 中怎么做呢?
【问题讨论】:
标签: macos core-graphics nsimage cgimageref
我正在尝试在 CoreGraphics 中处理图像,然后将处理后的图像返回到 NSImage 以进行保存和显示。我有足够的资源来说明如何在 iOS 中执行这些功能,但 NSImage 中似乎缺少辅助方法。在 iOS 中类方法是imageWithCGImage:,在 Mac OS 中怎么做呢?
【问题讨论】:
标签: macos core-graphics nsimage cgimageref
NSImage中的匹配方法是initWithCGImage:size:。
第二个参数以点为单位获取图像的大小。 (CGImage 的)像素大小和点大小之间的因子是比例因子。因此,例如,如果您有一个 100×100px 的 CGImage,并传递 (NSSize){ 50.0, 50.0 } 的大小,则该图像的大小将是 50 点,分辨率是双倍的。
通常你应该只传递以像素为单位的大小(来自 CGImage)作为以点为单位的大小。为了处理多个比例因子,最好使用带有多个 NSImageRep 的单个 NSImage,例如从 -[NSWorkspace iconForFileType:] 获得的大多数类型或从典型的 .icns 文件创建 NSImage。
【讨论】: