首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >10.5 Leopard上支持视网膜的.icns图标文件(大小限制?)

10.5 Leopard上支持视网膜的.icns图标文件(大小限制?)
EN

Stack Overflow用户
提问于 2012-10-08 03:56:44
回答 1查看 1.1K关注 0票数 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的支持。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-12 15:58:52

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

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

我建议你只更换视网膜图标(ic10,ic11,ic12,ic13,ic14),因为较早的操作系统版本可能无法使用PNG图像。

如果你刚刚超过1MB的大小,你可以只替换最大的图标来达到限制。这将使大多数图标采用更兼容的JP2格式,只有PNG中的512@2x (ic10)图标。

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12772346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档