Requerimento
Estou usando este script de shell para criar um arquivo ICO para atender a este requisito:
Os ícones devem ser arquivos .ico do Windows e conter imagens de 32 bits nos seguintes tamanhos: 16, 24, 32, 48 e 256.
#!/bin/sh
echo "*** One way: use Inkscape ***"
inkscape -w 16 -h 16 -o 16.png icon.svg
inkscape -w 24 -h 24 -o 24.png icon.svg
inkscape -w 32 -h 32 -o 32.png icon.svg
inkscape -w 48 -h 48 -o 48.png icon.svg
inkscape -w 256 -h 256 -o 256.png icon.svg
magick convert 16.png 24.png 32.png 48.png 256.png icon.ico
magick identify icon.ico
echo "*** Other way ***"
magick convert -background none icon.svg -resize 16x16 -depth 32 16-32.png
magick convert -background none icon.svg -resize 24x24 -depth 32 24-32.png
magick convert -background none icon.svg -resize 32x32 -depth 32 32-32.png
magick convert -background none icon.svg -resize 48x48 -depth 32 48-32.png
magick convert -background none icon.svg -resize 256x256 -depth 32 256-32.png
magick convert -background none 16-32.png 24-32.png 32-32.png 48-32.png 256-32.png -depth 32 icon.ico
magick identify icon.ico
echo "*** Other way: simpler ***"
magick convert -background none icon.svg -define icon:auto-resize="256,48,32,24,16" -depth 32 icon.ico
magick identify icon.ico
32 bits?
Mas os logs de saída indicam que os arquivos ICO criados contêm imagens sRGB de 8 bits. Como posso gerar os de 32 bits?
Nunca há consistência em nomeá-los. Cada organização parece considerar a numeração de forma diferente.
Seu arquivo de 32 bits é realmente um arquivo de 8 bits.
Cada canal usa 8 bits. Você tem 4 canais - vermelho, verde, azul + alfa.
Canais de 4*8 bits = 32 bits.
Um arquivo RGB simples sem alfa pelo mesmo token seria 3*8=24 bits.
Veja o modelo de cores RGBA