Question

Je suis à la recherche pour créer favicon.ico fichiers par programmation à partir de Python, mais PIL a seulement un soutien pour la lecture ico les fichiers.

Était-ce utile?

La solution

Selon Wikipédia les navigateurs modernes peuvent gérer des icônes au format PNG, de sorte que vous pourriez peut-être tout simplement de générer que?

Sinon l' ICO article décrit le format...

Autres conseils

Vous pouvez utiliser Oreiller:

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

En option, vous pouvez spécifier les tailles d'icône que vous souhaitez:

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

L' Oreiller docs dire que, par défaut, il va générer des tailles [(16, 16), (24, 24), (32, 32), (48, 48), (64, 64), (128, 128), (255, 255)] et de toute taille plus grande que la taille d'origine ou 255 seront ignorés.

Oui, il est dans l' En lecture seule section de la documentation, mais il fonctionne dans une certaine mesure.

Peut-être la suivante devrait fonctionner:

  • Générer votre image de l'icône à l'aide de PIL
  • Convertissez l'image .ico format à l'aide de l'interface python pour ImageMagick, PythonMagick

Je n'ai pas essayé cette approche.ImageMagick convertir programme en ligne de commande a été en mesure de convertir un .fichier png .ico format, donc au moins ImageMagick prend en charge l' .ico format.

Je ne sais pas si cela s'applique pour tous les cas, mais sur un WinXP .ico peut être un bmp de taille 16x16, 32x32 ou 64x64.Il suffit de changer l'extension de l'ico à partir de bmp et vous êtes prêt à aller.

Si vous avez imageio, (probablement le meilleur de la bibliothèque pour la lecture/écriture des images en Python), vous pouvez utiliser:

import imageio

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

L'installation est aussi facile que de

pip install imageio
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top