2012-02-01 214 views
24

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

回答

42

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

第二个参数以图像的大小为单位。以像素为单位(CGImage)的大小与以点为单位的大小之间的因子是比例因子。因此,例如,如果您有100×100px的CGImage,并且传递的尺寸为(NSSize){ 50.0, 50.0 },则该图像的大小将为50个点,并且分辨率为双精度。

通常,您应该仅以像素为单位(从CGImage)以大小为单位传递大小。对于处理多个比例因子,最好使用带有多个NSImageReps的单个NSImage,比如从大多数类型的-[NSWorkspace iconForFileType:]中获得的内容或从典型的图标文件中创建NSImage。

+41

NSZeroSize是“与CGImage大小相同”的简写形式。 – Ken 2012-02-02 04:25:53

+0

@Ken谢谢Ken,这是关键信息! – 2013-02-07 20:38:02