¿Cómo puedo permitir que ImageMagick convierta un png en escala de grises a un archivo ico sin errores?

¿Cómo puedo permitir que ImageMagick convierta un png en escala de grises a un archivo ico sin errores?

Tengo un PNG en escala de grises y cuando intento usar ImageMagick (Versión 7.1.1-28) paracrear un archivo ICOsiempre me da la siguiente advertencia:

$ 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.

Pensé que podría ser el perfil de color de mi PNG original, así que intenté usar ImageMagick para forzar la imagen (¿tal vez mi suposición es incorrecta aquí?) a un espacio de color RGB primero y luego crear el archivo ICO a partir de ese archivo intermedio, pero obtuve el perfil exacto. mismo error.

$ 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.

¿Qué estoy haciendo incorrectamente aquí? ¿Hay alguna bandera que pueda agregar para que esto funcione?


Y para cualquiera que quiera intentar reproducirlo, encuentro que cualquier SVG o PNG en escala de grises que se convierta en un archivo ICO recibe este error. Este es un SVG de ejemplo que hice para reproducirlo (también funciona si lo conviertes a PNG con esta fuente):

<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>

Respuesta1

Piensa que la solución para usar -compress nonecomoexplicado aquí; probado en mi instalación de ImageMagick 7.1.1-28 en macOS:

convert favicon.png -compress none -define icon:auto-resize=16,32,48,64,256 favicon.ico

Cuando hago eso con su ejemplo favicon.svgconvertido a favicon.png, crea limpiamente un favicon.icoproblema.

ingrese la descripción de la imagen aquí


Otros intentos a continuación.

¿Qué pasa con esto como se sugiere enesta respuesta:

convert -background transparent "favicon.png" -define icon:auto-resize=16,24,32,48,64,72,96,128,256 "favicon.ico"

O tal vez la sugerencia de utilizar -define profile:skip=ICCcomosugerido aquícon -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"

O sin -background transparent:

convert "favicon.png" -define profile:skip=ICC -define icon:auto-resize=16,24,32,48,64,72,96,128,256 "favicon.ico"

información relacionada