4

Существуют ли утилиты командной строки для Linux (или других Unix-подобных ОС), которые могут:

  • Создайте файл .ico с несколькими значками в нем
  • Сделайте это только из 1 (одного) изображения PNG или JPEG

Например:

% cool_icon_maker myimage_128x128.png file.ico

В file.ico автоматически должны быть все размеры значков, такие как 128x128, 64x64, 32x32, 16x16 и т.д.

2 ответа2

7

Я не знаю решения «все в одном», но я знаю две части, которые можно объединить:

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

Это чертовски уродливо, я знаю. Но это просто понять, и это работает (я проверял это!). Просто будьте осторожны, так как он создаст временные файлы в текущем каталоге, а затем удалит их.

1

Я не думаю, что это так, но, вероятно, это будет скрипт из нескольких строк, использующий "convert".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .