
Ich habe ein Graustufen-PNG und wenn ich versuche, ImageMagick (Version 7.1.1-28) zu verwenden, umErstellen Sie eine ICO-Dateies gibt mir immer die folgende Warnung:
$ 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.
Ich dachte, es könnte am Farbprofil meines Original-PNG liegen, also habe ich versucht, das Bild mit ImageMagick (vielleicht ist meine Annahme hier falsch?) zuerst in einen RGB-Farbraum zu zwingen und dann aus dieser Zwischendatei die ICO-Datei zu erstellen, aber ich bekam genau denselben Fehler.
$ 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.
Was mache ich hier falsch? Gibt es Flags, die ich hinzufügen könnte, damit das funktioniert?
Und für alle, die es reproduzieren möchten: Ich stelle fest, dass bei jeder Graustufen-SVG oder PNG, die in eine ICO-Datei konvertiert wird, dieser Fehler auftritt. Dies ist ein Beispiel-SVG, das ich erstellt habe, um dies zu reproduzieren (funktioniert auch, wenn Sie es mit dieser Quelle in ein PNG konvertieren):
<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>
Antwort1
Ich denke, die Lösung zu verwenden -compress none
alshier erklärt; getestet in meiner Installation von ImageMagick 7.1.1-28 auf macOS:
convert favicon.png -compress none -define icon:auto-resize=16,32,48,64,256 favicon.ico
Wenn ich das mit Ihrem Beispiel mache und favicon.svg
es in konvertiere favicon.png
, wird sauber und favicon.ico
ohne Probleme ein erstellt.
Weitere Versuche unten.
Wie wäre es mit dem hier vorgeschlagenendiese Antwort:
convert -background transparent "favicon.png" -define icon:auto-resize=16,24,32,48,64,72,96,128,256 "favicon.ico"
Oder vielleicht der Vorschlag, -define profile:skip=ICC
alshier vorgeschlagenmit -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"
Oder ohne -background transparent
:
convert "favicon.png" -define profile:skip=ICC -define icon:auto-resize=16,24,32,48,64,72,96,128,256 "favicon.ico"