Преобразование GIF, PNG и JPG в файлы .ICO с помощью Imagemagick - PullRequest
66 голосов
/ 06 июля 2010

From: JPG, To: ICO;

/usr/bin/convert -resize x16 -gravity center -crop 16x16+0+0 input.jpg \
-transparent white -colors 256 output/favicon.ico 

Это выходные данные для командной строки.

From: GIF, PNG To: ICO;

/usr/bin/convert -resize x16 -gravity center -crop 16x16+0+0 input.png \
-flatten -colors 256 output/favicon.ico 

У меня проблемы с прозрачностью.Кажется, я не могу получить правильный код для этого, я пробовал -channel alpha -negate и т. Д.

Это создает изображение, и когда я обращаюсь к сайту, он работает с Firefox, но ни один из другихбраузеры.IE, Chrome, Opera и Safari почему-то ненавидят его, это простой файл favicon.ico.Мой вывод: должно быть, моя команда где-то нарушает.Пожалуйста, помогите?

Ответы [ 3 ]

42 голосов
/ 12 ноября 2012

Добавьте эту опцию к convert:

-background transparent

Однако имейте в виду, что ваше исходное изображение должно иметь альфа-канал. PNG могут иметь альфа-канал, а JPEG - нет.

10 голосов
/ 13 апреля 2018

Чтобы преобразовать PNG в ICO, задав нужные размеры и сохранив прозрачность:
(работает для ImageMagick 7.0 или новее)

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

В этом примере файл ico будет иметь 9 записей: 16x16 px, 24x24 px и т. Д. (При условии, что это квадрат)


Подсказка: Если вы работаете в Windows 7, вы можете сохранить приведенный ниже код в файле REG и применитьэто в реестр.Это создаст запись в контекстном меню файлов PNG под названием «Преобразовать в ICO».Если щелкнуть правой кнопкой мыши file.png и выбрать эту команду, file.png.ico будет создан в той же папке.

InstallConvertToIcoCtxMenu.reg
(не забудьте заменить путь ImageMagick на путь, по которому он установлен на вашем компьютере)

Windows Registry Editor Version 5.00

; Created with Default Programs Editor
; http://defaultprogramseditor.com/

; Edit Verb
[HKEY_CURRENT_USER\Software\Classes\pngfile\shell\ConvertToICO]
@="Convert to ICO"
[HKEY_CURRENT_USER\Software\Classes\pngfile\shell\ConvertToICO\command]
@="\"C:\\Program Files\\ImageMagick\\7.0.3-Q16\\convert.exe\" -background transparent \"%1\" -define icon:auto-resize=16,24,32,48,64,72,96,128,256 \"%1.ico\""
[HKEY_CURRENT_USER\Software\Classes\pngfile\shell\ConvertToICO]
"Icon"="C:\\Program Files\\ImageMagick\\7.0.3-Q16\\convert.exe,0"

An entry is added to context menu

3 голосов
/ 04 марта 2012

Одним из решений проблемы ICO было бы не использовать его:

<link rel=icon href=/favicon.png>

Работает во всех браузерах, и вы можете использовать более удобный формат файла с лучшим сжатием.

...