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
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 Bildeprø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.