
グレースケールのPNGファイルがあり、ImageMagick(バージョン7.1.1-28)を使用してICOファイルを作成する常に次の警告が表示されます。
$ convert favicon.png -define icon:auto-resize=16,32,48,64,256 favicon.ico
convert: Cannot write image with defined png:bit-depth or png:color-type. `' @ warning/png.c/MagickPNGWarningHandler/1526.
元の PNG のカラー プロファイルが原因かもしれないと思ったので、ImageMagick を使用して最初に画像を RGB カラー スペースに強制変換し (おそらく私の想定は間違っているのでしょうか)、その中間ファイルから ICO ファイルを作成してみましたが、まったく同じエラーが発生しました。
$ convert favicon.png +profile "*" -colorspace RGB ico-temp.png
$ convert ico-temp.png -define icon:auto-resize=16,32,48,64,256 favicon.ico
convert: Cannot write image with defined png:bit-depth or png:color-type. `' @ warning/png.c/MagickPNGWarningHandler/1526.
ここで何を間違えているのでしょうか? これを機能させるために追加できるフラグはありますか?
再現を試してみたい方のために、グレースケールの SVG または PNG を ICO ファイルに変換すると、このエラーが発生することがわかりました。これは、これを再現するために作成した SVG の例です (このソースを使用して PNG に変換した場合も機能します)。
<svg xmlns="http://www.w3.org/2000/svg"
width="100mm"
height="100mm"
viewBox="0 0 100 100">
<circle cx="25" cy="75" r="20" style="fill:#ccc"/>
<circle cx="65" cy="35" r="30" style="fill:#4d4d4d"/>
</svg>
答え1
-compress none
解決策として使うことを考えるここで説明; macOS 上の ImageMagick 7.1.1-28 のインストールでテスト済み:
convert favicon.png -compress none -define icon:auto-resize=16,32,48,64,256 favicon.ico
あなたの例を にfavicon.svg
変換してこれを実行するとfavicon.png
、favicon.ico
問題なく がきれいに作成されます。
その他の試みは以下をご覧ください。
これはどうでしょうか?この答え:
convert -background transparent "favicon.png" -define icon:auto-resize=16,24,32,48,64,72,96,128,256 "favicon.ico"
あるいは-define profile:skip=ICC
、ここで提案と-background transparent
:
convert -background transparent "favicon.png" -define profile:skip=ICC -define icon:auto-resize=16,24,32,48,64,72,96,128,256 "favicon.ico"
またはなし-background transparent
:
convert "favicon.png" -define profile:skip=ICC -define icon:auto-resize=16,24,32,48,64,72,96,128,256 "favicon.ico"