如何强制 imagemagick 将 PNG 存储在 ICO 中
How to force imagemagick to store PNG inside ICO
- ImageMagick 版本:7.0.10-25 Q16x86_64
- 环境(操作系统、版本等):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 生成 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 倍。
经过一些测试,如果图像小于 256x256,magick 似乎总是在 ICO 中使用 BMP。有没有办法强制 magick 将 PNG 存储在 ICO 中?
以下是 96x96 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 文件而不进行任何转换,
- ImageMagick 版本:7.0.10-25 Q16x86_64
- 环境(操作系统、版本等):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 生成 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 倍。
经过一些测试,如果图像小于 256x256,magick 似乎总是在 ICO 中使用 BMP。有没有办法强制 magick 将 PNG 存储在 ICO 中?
以下是 96x96 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 文件而不进行任何转换,