Я не знаю решения «все в одном», но я знаю две части, которые можно объединить:
- У icoutils есть
icotool
, который может создавать / извлекать файлы .ico.
- ImageMagick имеет
convert
, который может конвертировать и изменять размер файлов до желаемых размеров.
Итак, что-то вроде этого будет работать (это может работать только для файлов с расширением ".png"):
#!/bin/bash
# Just pass the original .png image as the only parameter to this script.
SOURCE="$1"
BASE=`basename "${SOURCE}" .png`
convert "${SOURCE}" -thumbnail 16x16 "${BASE}_16.png"
convert "${SOURCE}" -thumbnail 32x32 "${BASE}_32.png"
convert "${SOURCE}" -thumbnail 48x48 "${BASE}_48.png"
convert "${SOURCE}" -thumbnail 64x64 "${BASE}_64.png"
icotool -c -o "${BASE}.ico" "${BASE}"_{16,32,48,64}.png
rm -f "${BASE}"_{16,32,48,64}.png
Это чертовски уродливо, я знаю. Но это просто понять, и это работает (я проверял это!). Просто будьте осторожны, так как он создаст временные файлы в текущем каталоге, а затем удалит их.