Есть библиотека Python для генерации.файлы ico?

Я ищу, чтобы создать favicon.ico файлы программно с Python, но PIL поддерживает только чтение ico файлы.

5 ответов


по данным Википедия современные браузеры могут обрабатывать фавиконы в формате PNG, поэтому, возможно, вы могли бы просто создать это?

или статья ICO описывает формат...


можно использовать подушка:

from PIL import Image
filename = r'logo.png'
img = Image.open(filename)
img.save('logo.ico')

при необходимости, вы можете указать размеры значков, которые вы хотите:

icon_sizes = [(16,16), (32, 32), (48, 48), (64,64)]
img.save('logo.ico', sizes=icon_sizes)

на подушка docs говорят, что по умолчанию он будет генерировать размеров [(16, 16), (24, 24), (32, 32), (48, 48), (64, 64), (128, 128), (255, 255)] и любой размер больше исходного размера или 255 будет проигнорирован.

Да, это в только для чтения раздел документов, но он работает в некоторой степени.


возможно, сработает следующее:

  • создайте изображение значка с помощью PIL
  • преобразовать изображение .формат ico с использованием интерфейса python для ImageMagick,PythonMagick

Я не пробовал такой подход. Программа командной строки ImageMagick convert смогла преобразовать a .png файл .формат ico, поэтому по крайней мере ImageMagick поддерживает .формат ico.


Я не знаю, относится ли это ко всем случаям, но на WinXP an .ico может быть bmp размером 16x16, 32x32 или 64x64. Просто измените расширение на ico из bmp, и вы готовы к работе.


Если у вас imageio (вероятно, лучшая библиотека для чтения/записи изображения в Python), вы можете использовать:

import imageio

img = imageio.imread('logo.png')
imageio.imwrite('logo.ico', img)

установить так же легко, как

pip install imageio