【问题标题】:NSImageRep wrong resolution?NSImageRep 分辨率错误?
【发布时间】:2012-05-13 21:13:02
【问题描述】:

MacOS 10.7.4 带有新图标,其图像代表为 144 DPI。不好的是,当我在 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 文件,而如果我通过 CGImageSource/CGImageDestination 编写与 kUTTypeTIFF 相同的 NSImage,我会得到一个 1024px/72dpi 文件.

所有这些都让我很困惑。

非常感谢

【问题讨论】:

    标签: objective-c size tiff nsimage nsimagerep


    【解决方案1】:

    -[NSImageRep size] 的文档说:

    图像表示的大小,在用户坐标空间中以点为单位

    (已添加重点。)

    这不是以像素为单位的测量值。这是一个以点为单位的测量,因此在 144 dpi 时为 1024 像素 的图像在点为 72 dpi 时测量为 512

    您想查询-pixelsWide-pixelsHigh 方法(如果您确实关心像素尺寸;通常您不应该这样做)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      相关资源
      最近更新 更多