MacOS 10.7.4带来了新的图标,具有144dpi的图像代表。糟糕的是,当我在NSImage中加载这些图标之一时,我只能得到512px大小的代表。我的意思是:我在NSImage中加载一个1024px/144dpi的icns文件,然后向每个图像代表询问它的大小……没有代表有1024px的大小,我只得到最大的大小。512px的分辨率(无论代表的分辨率是72dpi还是144dpi:事实上,10.7.4中的新图标,如TextEdit或Automator,除了1024px之外,每个尺寸都有两种分辨率的代表,存在于144dpi的单个代表中)。
为什么NSImageRep看起来不理解它真正的解决方案?为什么只针对1024px/144dpi而不是512px/144dpi出现此问题?
如果我读取NSImage的TIFFRepresentation并将其写回一个文件,我会得到一个正确的1024px/144dpi TIFF文件,而如果我像kUTTypeTIFF一样通过CGImageSource/CGImageDestination编写相同的NSImage,我会得到一个1024px/72dpi文件。
所有这些事情都让我变得非常困惑。
非常感谢
发布于 2012-05-14 07:28:26
-[NSImageRep size]的文档中写道:
图像表示的大小,以用户坐标空间中的点为单位测量。
(重点已添加。)
这不是以像素为单位的度量。这是以点为单位的测量,因此,当点为72dpi时,1024像素、144dpi的图像测量512点。
您希望查询-pixelsWide和-pixelsHigh方法(如果您确实关心像素大小,通常不应该这样做)。
https://stackoverflow.com/questions/10575289
复制相似问题