Python er kendt for sin alsidighed. Du kan oprette virkelige hjælpeværktøjer i Python, der kan forenkle og automatisere visse opgaver.

Lær, hvordan du bygger en billedtypekonverter med blot et par enkle linjer Python-kode. Uanset om det er en enkelt billedfil eller alle filer i en mappe, kan du nemt konvertere mellem forskellige formater.

Installation af nødvendige biblioteker

Du skal installere Pude Python-bibliotek til at bygge en billedtypekonverter i Python. Dette bibliotek fremmer billedbehandlingsmulighederne i din Python-fortolker. Du kan oprette et generelt billedbehandlingsværktøj ved hjælp af flere moduler i dette bibliotek. Nogle af de mest nyttige er Billede, Billedfil, Billedfilter, og ImageStat moduler.

Kør følgende kommando i terminalen for at installere Pillow Python-biblioteket:

pip installere pude

Når du har Pillow installeret på dit system, er du klar til at arbejde med billeder.

Indlæsning og visning af egenskaber for et billede

Først skal du importere Billede modul fra PIL

instagram viewer
bibliotek for at opsætte koden. Dernæst skal du bruge Image.open() metode til at indlæse billedet og tildele det til en variabel. Når du har indlæst billedet, kan du vise det ved hjælp af at vise() metode.

Billedformatkonverteringskoden er tilgængelig i en GitHub-depot og er gratis for dig at bruge under MIT-licensen.

fra PIL importere Billede
billede = Image.open('sample-image.jpg')
billede.at vise()

Billedet, du sendte som parameter til åben() metoden åbnes, når du har udført koden. Dette er et godt første skridt, som et sundhedstjek, for at sikre, at du har installeret biblioteket på dit system.

Billedmodulet indeholder flere andre egenskaber, som du kan bruge til at få mere information om billedet.

# Importerer bibliotek
fra PIL importere Billede

# Indlæser billedet
billede = Image.open('sample-image.jpg')

# Udskriver navnet på filen
Print("Filnavn: ", billede.filnavn)

# Udskriver filformatet
# Fx- PNG, JPG, GIF osv.
Print("Format: ", image.format)

# Udskriver filens tilstand
# F.eks. RGB, RFBA, CMYK osv.
Print("Mode: ", image.mode)

# Udskriver størrelsen som en bredde- og højdetupel (i pixels)
Print("Størrelse: ", billedestørrelse)

# Udskriver bredden af ​​billedet (i pixels)
Print("Bredde: ", image.width)

# Udskriver højden af ​​billedet (i pixels)
Print("Højde: ", image.height)

# Lukning af billedet
billede.tæt()

Du bør se nogle meningsfulde data uden fejl:

Sådan konverteres billedformat ved hjælp af Python

Du kan blot konvertere filformatet på et billede ved hjælp af Gemme() metode. Du skal bare bestå det nye filnavn og udvidelse som en parameter til Gemme() metode. Det Gemme() metoden vil automatisk identificere den udvidelse, du har bestået, og derefter gemme billedet i det identificerede format. Men før du bruger Gemme() metode, skal du muligvis angive billedets tilstand (RGB, RGBA, CMYK, HSV osv.).

Ifølge den officielle pudedokumentation, er tilstanden for et billede en streng, der definerer typen og dybden af ​​en pixel i billedet. Pudebiblioteket understøtter 11 tilstande, herunder følgende standardtilstande:

RGB (3x8-bit pixels, ægte farve)

RGBA (4x8-bit pixels, ægte farve med gennemsigtighedsmaske)

CMYK (4x8-bit pixels, farveseparation)

HSV (3x8-bit pixels, farvetone, mætning, værdifarverum)

Sådan konverteres et billede fra PNG til JPG og JPG til PNG

Du skal passere strengen filnavn.jpg som en parameter til Gemme() metode til at konvertere billedfiler til enhver format (PNG, GIF, BMP, TIFF osv.) til JPG-format. Du skal også angive billedets tilstand. Følgende kode konverterer et billede fra PNG-format til JPG-format:

# Importerer bibliotek
fra PIL importere Billede

# Indlæser billedet
billede = Image.open('sample-png-image.png')

# Angivelse af RGB-tilstand til billedet
billede = image.convert('RGB')

# Konvertering af et billede fra PNG til JPG-format
image.save("converted-jpg-image.jpg")
Print("Billedet blev konverteret!"

Du mister enhver gennemsigtighed i et billede, hvis du konverterer det til JPG-format. Hvis du forsøger at bevare gennemsigtigheden ved hjælp af RGBA tilstand, vil Python give en fejl.

Du kan konvertere et billede i ethvert format til PNG-format ved hjælp af Gemme() metode. Du skal blot sende PNG-billedet som en parameter til Gemme() metode. Følgende kode konverterer et billede fra JPG-format til PNG-format:

# Importerer bibliotek
fra PIL importere Billede

# Indlæser billedet
billede = Image.open('sample-jpg-image.jpg')

# Konvertering af billede fra JPG til PNG-format
image.save("converted-png-image.png")
Print("Billedet blev konverteret!")

Konvertering af et billede til PNG bevarer enhver gennemsigtighed. For eksempel, hvis du konverterer et gennemsigtigt GIF-billede til et PNG-billede, vil resultatet stadig være et gennemsigtigt billede.

Sådan konverteres et billede til ethvert andet format ved hjælp af Python

I lighed med trinene ovenfor kan du konvertere et billede i ethvert format til et hvilket som helst andet format ved hjælp af Gemme() metode. Du skal blot angive den korrekte billedudvidelse (.webp, .png, .bmp osv.) til Gemme() metode. For eksempel konverterer følgende kode et billede fra PNG til WebP-format:

# Importerer bibliotek
fra PIL importere Billede

# Indlæser billedet
billede = Image.open('sample-transparent-png-image.png')

# Konvertering af et billede fra PNG til WEBP-format
image.save("converted-webp-image.webp")
Print("Billedet blev konverteret!")

Fejlhåndtering for manglende billedfiler

Hvis koden ikke er i stand til at finde inputbilledet, vil den give en fejl. Du kan håndtere dette ved hjælp af FileNotFoundErrorPython undtagelse.

# Importerer bibliotek
fra PIL importere Billede

prøve:
# Indlæser billedet
billede = Image.open('forkert-filnavn.jpg')

# Konvertering af billede fra JPG til PNG-format
image.save("converted-png-image.png")
Print("Billedet blev konverteret!")

undtagen FileNotFoundError:
Print("kunne'ikke finde det medfølgende billede")

Konvertering af alle billeder i en mappe til et andet format

Hvis der er flere billedfiler i en mappe, som du vil konvertere til et andet format, kan du nemt gøre det med blot et par linjer kode i Python. Du skal importere glob bibliotek for at gentage filerne i den aktuelle mappe eller inde i en given mappe. Følgende kode konverterer alle JPG-billeder i den aktuelle mappe til PNG-format:

fra PIL importere Billede
importere glob

til fil i glob.glob("*.jpg"):
image = Image.open (fil)
image.save (fil.erstat("jpg", "png"))

Hvis du vil konvertere et andet sæt filer, skal du ændre den strengparameter, du sender til glob() metode.

Byg en GUI ved hjælp af Python

Python-biblioteker som Pillow gør det nemt at udvikle værktøjer til at håndtere billeder i Python. Du kan udføre opgaver hurtigt med en kommandolinjegrænseflade, men en GUI er afgørende for at skabe en brugervenlig oplevelse. Du kan oprette mere specialiserede GUI-applikationer ved hjælp af Python-rammer som Tkinter og wxPython.