Python er kjent for sin allsidighet. Du kan lage virkelige verktøy i Python som kan forenkle og automatisere visse oppgaver.

Lær hvordan du bygger en bildetypekonverterer med bare noen få enkle linjer med Python-kode. Enten det er en enkelt bildefil eller alle filene i en katalog, kan du enkelt konvertere mellom forskjellige formater.

Installere nødvendige biblioteker

Du må installere Pute Python-bibliotek for å bygge en bildetypekonverter i Python. Dette biblioteket fremmer bildebehandlingsmulighetene til Python-tolken din. Du kan lage et generelt bildebehandlingsverktøy ved å bruke flere moduler i dette biblioteket. Noen av de mest nyttige er Bilde, Bildefil, ImageFilter, og ImageStat moduler.

Kjør følgende kommando i terminalen for å installere Pillow Python-biblioteket:

pip installere pute

Når du har installert Pillow på systemet ditt, er du klar til å jobbe med bilder.

Laste og vise egenskaper for et bilde

Først må du importere Bilde modul fra PIL bibliotek for å sette opp koden. Deretter må du bruke

instagram viewer
Image.open() metode for å laste inn bildet og tilordne det til en variabel. Når du har lastet inn bildet, kan du vise det ved å bruke forestilling() metode.

Bildeformatkonverteringskoden er tilgjengelig i en GitHub-depot og er gratis for deg å bruke under MIT-lisensen.

fra PIL import Bilde
bilde = Image.open('sample-image.jpg')
bilde.forestilling()

Bildet du sendte som en parameter til åpen() metoden åpnes etter at du har kjørt koden. Dette er et godt første skritt, som en fornuftssjekk, for å sikre at du har installert biblioteket på systemet ditt.

Bildemodulen gir flere andre egenskaper som du kan bruke for å få mer informasjon om bildet.

# Importerer bibliotek
fra PIL import Bilde

# Laster bildet
bilde = Image.open('sample-image.jpg')

# Skriver ut navnet på filen
skrive ut("Filnavn: ", bilde.filnavn)

# Skriver ut filformatet
# F.eks. PNG, JPG, GIF, etc.
skrive ut("Format: ", image.format)

# Skriver ut modusen til filen
# F.eks. RGB, RFBA, CMYK, etc.
skrive ut("Modus: ", bilde.modus)

# Skriver ut størrelsen som en bredde- og høydetuppel (i piksler)
skrive ut("Størrelse: ", bildestørrelse)

# Skriver ut bredden på bildet (i piksler)
skrive ut("Bredde: ", image.width)

# Skriver ut høyden på bildet (i piksler)
skrive ut("Høyde: ", image.height)

# Lukker bildet
bilde.Lukk()

Du bør se noen meningsfulle data uten feil:

Hvordan konvertere bildeformat ved hjelp av Python

Du kan ganske enkelt konvertere filformatet til et bilde ved å bruke lagre() metode. Du trenger bare å bestå den nye filnavn og utvidelse som en parameter til lagre() metode. De lagre() metoden vil automatisk identifisere utvidelsen du passerte og deretter lagre bildet i det identifiserte formatet. Men før du bruker lagre() metoden, må du kanskje spesifisere modusen til bildet (RGB, RGBA, CMYK, HSV, etc.).

I følge den offisielle putedokumentasjonen, er modusen til et bilde en streng som definerer typen og dybden til en piksel i bildet. Putebiblioteket støtter 11 moduser inkludert følgende standardmoduser:

RGB (3x8-bit piksler, ekte farger)

RGBA (4x8-bit piksler, ekte farger med gjennomsiktighetsmaske)

CMYK (4x8-bit piksler, fargeseparasjon)

HSV (3x8-bit piksler, fargetone, metning, verdi fargerom)

Hvordan konvertere et bilde fra PNG til JPG og JPG til PNG

Du må passere strengen filnavn.jpg som en parameter til lagre() metode for å konvertere bildefiler til en hvilken som helst format (PNG, GIF, BMP, TIFF, etc.) til JPG-format. Du må også oppgi modusen til bildet. Følgende kode konverterer et bilde fra PNG-format til JPG-format:

# Importerer bibliotek
fra PIL import Bilde

# Laster bildet
bilde = Image.open('sample-png-image.png')

# Spesifisere RGB-modus til bildet
bilde = image.convert('RGB')

# Konvertering av et bilde fra PNG til JPG-format
image.save("konvertert-jpg-bilde.jpg")
skrive ut("Bildet er konvertert!"

Du vil miste all gjennomsiktighet i et bilde hvis du konverterer det til JPG-format. Hvis du prøver å bevare gjennomsiktigheten ved å bruke RGBA modus, vil Python gi en feil.

Du kan konvertere et bilde i alle formater til PNG-format ved å bruke lagre() metode. Du trenger bare å sende PNG-bildet som en parameter til lagre() metode. Følgende kode konverterer et bilde fra JPG-format til PNG-format:

# Importerer bibliotek
fra PIL import Bilde

# Laster bildet
bilde = Image.open('sample-jpg-image.jpg')

# Konvertering av bilde fra JPG til PNG-format
image.save("converted-png-image.png")
skrive ut("Bildet er konvertert!")

Konvertering av et bilde til PNG bevarer all gjennomsiktighet. Hvis du for eksempel konverterer et gjennomsiktig GIF-bilde til et PNG-bilde, vil resultatet fortsatt være et gjennomsiktig bilde.

Hvordan konvertere et bilde til et hvilket som helst annet format ved hjelp av Python

I likhet med trinnene ovenfor kan du konvertere et bilde i et hvilket som helst format til et hvilket som helst annet format ved å bruke lagre() metode. Du trenger bare å oppgi riktig bildeutvidelse (.webp, .png, .bmp, osv.) til lagre() metode. For eksempel konverterer følgende kode et bilde fra PNG til WebP-format:

# Importerer bibliotek
fra PIL import Bilde

# Laster bildet
bilde = Image.open('sample-transparent-png-image.png')

# Konvertering av et bilde fra PNG til WEBP-format
image.save("converted-webp-image.webp")
skrive ut("Bildet er konvertert!")

Feilhåndtering for manglende bildefiler

I tilfelle koden ikke er i stand til å finne inndatabildet, vil det gi en feil. Du kan håndtere dette ved å bruke FileNotFoundErrorPython unntak.

# Importerer bibliotek
fra PIL import Bilde

prøve:
# Laster bildet
bilde = Image.open('feil-filnavn.jpg')

# Konvertering av bilde fra JPG til PNG-format
image.save("converted-png-image.png")
skrive ut("Bildet er konvertert!")

unntatt FileNotFoundError:
skrive ut("kunne'ikke finne det angitte bildet")

Konvertering av alle bildene i en katalog til et annet format

Hvis det er flere bildefiler i en katalog som du vil konvertere til et annet format, kan du enkelt gjøre det med bare noen få linjer med kode i Python. Du må importere glob biblioteket for å iterere gjennom filene i gjeldende katalog eller inne i en gitt mappe. Følgende kode konverterer alle JPG-bildene i gjeldende katalog til PNG-format:

fra PIL import Bilde
import glob

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

Hvis du vil konvertere et annet sett med filer, endre strengparameteren du sender til glob() metode.

Bygg et GUI ved hjelp av Python

Python-biblioteker som Pillow gjør det enkelt å utvikle verktøy for å håndtere bilder i Python. Du kan utføre oppgaver raskt med et kommandolinjegrensesnitt, men en GUI er avgjørende for å skape en brukervennlig opplevelse. Du kan lage mer spesialiserte GUI-applikasjoner ved å bruke Python-rammeverk som Tkinter og wxPython.