微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何强制imagemagick将PNG存储在ICO中

如何解决如何强制imagemagick将PNG存储在ICO中

  • ImageMagick版本:x16 x86_64 Q7.0.10-25
  • 环境(操作系统,版本等):MacOS 10.15.6

将1.4k(96x96)png转换为ico时,生成文件为37k。

$ magick convert jsiu.dev.black-96.png jsiu.dev.black-96.ico

$ ls -lh
-rw-r--r--  1 js  staff    37K Aug  9 22:19 jsiu.dev.black-96.ico
-rw-r--r--@ 1 js  staff   1.4K Aug  8 17:49 jsiu.dev.black-96.png

相比之下:3.8k(256x256)png png生成的5.1k ico文件

-rw-r--r--  1 js  staff   5.1K Aug  8 18:06 jsiu.dev.black-256.ico
-rw-r--r--@ 1 js  staff   3.8K Aug  8 18:05 jsiu.dev.black-256.png

不确定1.3k的开销是否过多,但至少不是96x96版本的26.4倍。

经过一些测试,如果图像

以下是96x96 PNG:

96x96 PNG

以下是256x256 PNG:

256x256 PNG

其他测试:

magick jsiu.dev.white-96.png -compress none jsiu.dev.white-96.ico
magick jsiu.dev.white-96.png -compress zip jsiu.dev.white-96.ico
magick jsiu.dev.white-96.png -strip jsiu.dev.white-96.ico
magick jsiu.dev.white-96.png -define png:color-type=6 jsiu.dev.white-96.ico

它们的大小都相同:

-rw-r--r--  1 js  staff  38078 Aug 12 04:52 jsiu.dev.white-96.ico

解决方法

我没有收到任何积极的反馈,所以最终我使用golang创建了自己的命令行工具。它无需进行任何转换即可创建带有png的ico文件,

https://github.com/J-Siu/go-png2ico

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。