2012-05-13 73 views
1

MacOS 10.7.4附帶新圖標,圖像代表144 DPI。壞消息是當我在NSImage中加載其中一個圖標時,我只能得到512px大小的代表。我的意思是:我在NSImage中加載一個1024px/144dpi的icns文件,然後我問每個圖像代表它的大小...沒有代表大小爲1024px,我只能獲得最大尺寸。 (不管是否具有72dpi而不是144dpi的分辨率:事實上,像TextEdit或Automator這樣的10.7.4中的新圖標,對於每種尺寸的兩種分辨率都有代表性,除了1024px,它存在於144dpi的單個代表中)。NSImageRep分辨率錯誤?

Whay NSImageRep好像不理解它的真實分辨率?爲什麼我只爲1024px/144dpi而不是這個問題,例如,爲512px/144dpi?

如果我讀的NSImage中的TIFFRepresentation和我把它寫回文件中我得到一個正確的1,024像素/ 144dpi的TIFF文件,而如果我寫相同的NSImage中通過CGImageSource/CGImageDestination會爲kUTTypeTIFF我收到了1,024像素/ 72dpi的文件。

所有這些東西都讓我變得非常困惑。

非常感謝

回答

4

-[NSImageRep size]的文檔說:

圖像表示的大小,在點測量在用戶座標空間

(着重。)

這不是以像素爲單位進行測量。這是一個以點爲單位的度量,因此當點數爲72 dpi時,144 dpi處的1024 的圖像會測量512

您想要查詢-pixelsWide-pixelsHigh方法(如果您的確關心像素尺寸,通常不應該這樣做)。