3

我正在尝试创建我的应用程序图标的视网膜就绪版本。该应用程序的目标是 10.5+。我正在使用 Uli Kusterer 的oldiconutil在 10.8 上使用 iconutil 对我从 .iconset 制作的 .icns 文件进行后期处理。问题是,如果我包含一个 1024x1024 图标(“icon_512x512@2x.png”),则该图标不会显示在 10.5 上。Finder 不显示图标,当它在 10.5 的 Icon Composer 中打开时,它似乎是空白/空的。如果我删除这个最大尺寸,图标会在 10.5 上正确显示。有趣的是,如果我用更小的文件大小(~300K 而不是~1MB)替换一个完全不同的、更简单的 1024x1024 图像,该图标在 10.5 上仍然可以正常工作。因此,似乎整个 .icns 文件和/或 .icns 文件中的单个图像块的文件大小可能存在一些限制,当超出时会破坏与 Leopard 的兼容性。

使用TinyPNG压缩 1024x1024 图像不足以解决问题。在通过 oldiconutil 运行它之前,它确实导致了一个小得多的 .icns 文件,但 oldiconutil 的最终 JPEG2000 压缩输出仍然比使用更简单的替代图像的变体大得多,大概是因为更复杂的图像根本不那么可压缩。

有没有其他人遇到过这个问题?你找到解决办法了吗?如果我无法找到解决方案,我将不得不省略一个视网膜就绪应用程序图标,直到我放弃对 10.5 的支持。

4

1 回答 1

2

使用 TinyPNG 是正确的想法,但是当您使用 oldiconutil 创建 .icns 文件时,它会将它们转换为更大的 JP2 并导致问题。

通过使用十六进制编辑器,您可以找到各个图标并将特定的 JP2 版本替换为 TinyPNG 版本。您还需要为您换出的任何图标编辑 icns 标头中的文件长度字节(字节 5-8)以及图标图像长度字节(ic## 类型之后的 4 个字节)。

我建议您只替换视网膜图标(ic10、ic11、ic12、ic13、ic14),因为旧版操作系统可能无法使用 PNG 图像。

如果您的大小刚刚超过 1MB,则可以仅替换最大的图标以低于限制。这将使大多数图标保持更兼容的 JP2 格式,只有 PNG 中的 512@2x (ic10) 图标。

希望这可以帮助。

于 2012-10-12T07:58:51.893 回答