Pregunta

estoy buscando crear favicon.ico archivos mediante programación desde Python, pero PIL solo tiene soporte para lectura ico archivos.

¿Fue útil?

Solución

De acuerdo a Wikipedia Los navegadores modernos pueden manejar favicons en formato PNG, así que ¿tal vez podrías generar eso?

Alternativamente el artículo de la ICO describe el formato...

Otros consejos

Puedes usar Almohada:

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

Opcionalmente, puede especificar los tamaños de ícono que desee:

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

El Doctores de almohadas decir que por defecto generará tamaños[(16, 16), (24, 24), (32, 32), (48, 48), (64, 64), (128, 128), (255, 255)] y se ignorará cualquier tamaño mayor que el tamaño original o 255.

Sí, está en el Solo lectura sección de los documentos, pero funciona hasta cierto punto.

Quizás lo siguiente funcionaría:

  • Genera tu imagen de icono usando PIL
  • Convierta la imagen al formato .ico usando la interfaz de Python para ImageMagick, PythonMagia

No he probado este enfoque.El programa de línea de comando de conversión de ImageMagick pudo convertir un archivo .png al formato .ico, por lo que al menos ImageMagick admite el formato .ico.

No sé si esto se aplica a todos los casos, pero en WinXP un .ico puede ser un bmp de tamaño 16x16, 32x32 o 64x64.Simplemente cambie la extensión a ico desde bmp y estará listo para comenzar.

Si usted tiene imagenio, (probablemente la mejor biblioteca para leer/escribir imágenes en Python), puedes usarla:

import imageio

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

Instalar es tan fácil como

pip install imageio
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top