2012-02-01 211 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