Я хочу программно создавать файлы favicon.ico
из Python, но PIL поддерживает только чтение файлов ico
.
Есть ли библиотека Python для генерации файлов .ico?
Ответ 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, и вы готовы к работе.