15

Я видел иконки .ico, которые имеют разные изображения для разных размеров, например. 16x16, 32x32, 48x48, 128x128, 256x256. В Windows как я могу создать файл значков, который поддерживает несколько размеров, если у меня есть файлы .ico для каждого размера? Пожалуйста, обратите внимание, что я надеюсь сделать это с 200+ файлами, так что делать это из cmd было бы идеально.

7 ответов7

23

ImageMagick (Windows/Mac/Linux) содержит инструмент командной строки, называемый convert который может использоваться для многих целей, включая упаковку нескольких изображений в один значок:

convert 16.png 32.png 48.png 128.png 256.png -colors 256 icon.ico

Предыдущая команда берет 5 изображений PNG и объединяет их в один файл .ico.

В отличие от других ответов, этот метод можно легко использовать в пакетных сценариях для автоматического создания нескольких файлов значков. В одном из моих проектов у меня есть одно векторное изображение (SVG), и я использую Inkscape для генерации png разных размеров, а затем convert для создания контейнера значков. Это сокращенный пример (в скрипте bash):

#!/bin/bash
for size in 16 32 48 128 256; do
    inkscape -z -e $size.png -w $size -h $size icon.svg >/dev/null 2>/dev/null
done
convert 16.png 32.png 48.png 128.png 256.png -colors 256 icon.ico
7

Лучшая команда для ImageMagick:

convert in.jpg -define icon:auto-resize=16,48,256 -compress zip out.ico
4

Вы можете сделать это бесплатно в GIMP. Есть краткие инструкции для этого здесь.

Цитировать:

  1. Откройте свое изображение в Gimp
  2. Сделай свой холст квадратным
  3. Измените размер вашего слоя на изображение
  4. Масштабируйте слой до максимального размера в вашем файле .ico, например, до 64 пикселей.
  5. Дублируйте слой
  6. Масштабировать дублирующий слой до следующего размера
  7. Продолжайте дублировать / масштабировать для всех размеров, которые вы хотите в вашем файле .ico
  8. Сохранить как .ico

В вашем случае вы могли бы либо начать с самого большого изображения и уменьшить его для каждого дублированного изображения, либо просто добавить новые слои и импортировать конкретные изображения значков, которые вы хотите, в этот слой.

1

Вот принятый ответ Роба В. с тривиальной адаптацией, чтобы избежать необходимости набирать размеры (16, 32 и т.д.) Более одного раза:

#!/bin/bash
files=()
for size in 16 32 48 128 256; do
    inkscape -z -e "$size.png" -w "$size" -h "$size" logo.svg > /dev/null 2> /dev/null
    files+=("$size.png")
done
convert "${files[@]}" -colors 256 favicon.ico
unlink  "${files[@]}"

Здесь logo.svg представляет входное (исходное) изображение, из которого мы создаем файлы меньшего размера нужного размера (16.png , 32.png и т.д.). который мы затем объединяем в файл значка вывода (результата) favicon.ico .  Вы можете изменить список размеров в строке 3, например, на "16 24 32 48 64 72 128", и команда convert автоматически адаптируется соответствующим образом, потому что этот скрипт использует технику, описанную G-Man в его ответе здесь, для построения массив имен файлов.  И, наконец, мы отсоединяем (удаляем) файлы PNG, созданные в строке 4, снова используя массив имен файлов.


Я заметил, что команда:

convert logo.svg -define icon:auto-resize=16,48,256 -compress zip favicon.ico

(эквивалентно представленному в ответе пользователя 400747) фактически масштабированное растровое изображение (потерянное качество) и фон слоев теряют прозрачность.

0

По моему мнению, Axialis IconMaker - лучшее решение проблем со значками . Существует 30-дневная пробная версия, которая, вероятно, решит проблему для вас.

Я использовал Axialis в течение многих лет, и в стольких проектах я могу засвидетельствовать, что это действительно стоящий продукт. Вам не понадобится 30 дней! Ха!

0

Вы должны использовать стороннюю программу для редактирования иконок, потому что MSPaint поддерживает только один значок на файл. Здесь есть несколько тем с рекомендациями для редакторов иконок, некоторые бесплатные, некоторые коммерческие.

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

Если вы решите использовать опцию создания из существующего при добавлении нового формата / размера, убедитесь, что вы создали их из самого большого формата иконок, который у вас уже есть, поскольку он будет иметь наибольшее количество данных для алгоритма изменения размера для работы с ним. , Кроме того, обязательно используйте версию с прозрачностью при создании значка XP / Vista, так как большинство программ не очень хороши в создании альфа-канала с нуля.

0

Вы можете попробовать png2ico Матиаса Бенкмана. Это бесплатно и может упаковать png-файлы нескольких размеров в один файл ico.

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