Er det en Python bibliotek for å generere Ico filer?

stemmer
13

Jeg ønsker å lage favicon.icofiler auto fra Python, men PIL har bare støtte for lesing icofiler.

Publisert på 05/09/2008 klokken 10:26
kilden bruker
På andre språk...                            


5 svar

stemmer
11

Du kan bruke Pillow :

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

Eventuelt kan du angi ikonstørrelser du ønsker:

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

De Pillow docs si at som standard vil det generere størrelser [(16, 16), (24, 24), (32, 32), (48, 48), (64, 64), (128, 128), (255, 255)]og alle størrelser større enn den opprinnelige størrelse eller 255 vil bli ignorert.

Ja, det er i lese- delen av docs, men det fungerer til en viss grad.

Svarte 23/03/2016 kl. 01:49
kilden bruker

stemmer
7

Ifølge Wikipedia moderne nettlesere kan håndtere favicon i PNG-format, så kanskje du bare kunne generere det?

Alternativt ICO artikkelen beskriver formatet ...

Svarte 05/09/2008 kl. 13:35
kilden bruker

stemmer
7

Kanskje følgende ville fungere:

  • Generere ikonet bilde ved hjelp av PIL
  • Konverter bildet til ICO format ved hjelp av python grensesnitt til ImageMagick, PythonMagick

Jeg har ikke prøvd denne tilnærmingen. ImageMagick konvertere kommandolinje program var i stand til å konvertere en PNG-fil til ICO format, så i hvert fall ImageMagick støtter ICO format.

Svarte 05/09/2008 kl. 10:36
kilden bruker

stemmer
3

Jeg vet ikke om dette gjelder for alle tilfeller, men på WinXP en Ico kan være en bmp størrelse 16x16, 32x32 eller 64x64. Bare endre filtypen til ICO fra bmp og du er klar til å gå.

Svarte 05/09/2008 kl. 10:38
kilden bruker

stemmer
0

Hvis du har ImageIOs , (sannsynligvis den beste bibliotek for å lese / skrive bilder i Python), kan du bruke det:

import imageio

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

Installer er like enkelt som

pip install imageio
Svarte 14/09/2018 kl. 14:25
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more