Есть библиотека 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