Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

Вы можете использовать Pillow:

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)

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

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

Ответ 3

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

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

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

Ответ 4

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