Sådan bygger du en billedkonverter i seks linjer Python

En af fordelen ved at være programmør er din evne til at oprette værktøjer til at forbedre dit liv. I modsætning til en ikke-programmør bruger du sandsynligvis ikke timer på at grave gennem flere Google-søgeresultatsider for at finde et værktøj, der for det første skulle forbedre din produktivitet ( ironi vinder ). Dette får dig sandsynligvis til at føle dig mere magtfuld ved at kende et programmeringssprog - især hvis det programmeringssprog er så alsidigt og fantastisk som Python er.
Et af punkterne i The Zen of Python siger:
Simpel er bedre end kompleks.Med denne filosofi på plads kan en masse niche-værktøjsudvikling ved hjælp af Python gøres så kortfattet, at det får mig til at spekulere på, om det overhovedet er værd at kalde det et værktøj. Nogle gange script
ville ordet være mere præcist. Uanset hvad vi sætter os her for at bygge en sådan, script
der konverterer billeder fra et filformat (billedtype) til et andet - på kun 6 linjer med Python-kode.
I denne vejledning skal vi oprette en billedtypekonverter, der konverterer et PNG-billede til et JPG-billede. Før dine gråstofceller skynder sig at bedømme, om jeg er vild med at bygge dette værktøj, lad mig sige, at dette ikke kun er til et billede - men for alle billederne i en mappe. Det ville helt sikkert kræve mere manuel indsats at gøre uden kodning (jeg ved, du kan lugte bash
ing).
Python-pakke
Vi vil bruge Python-pakken PIL
(som står for Python Image Library) til dette formål. Originalen PIL
fik ingen opdateringer til den nyeste Python-version, så nogle gode sjæle har oprettet en venlig gaffel kaldet, Pillow
der understøtter endda> Python 3.0.
Installer det ved hjælp af pip3 install Pillow
.
Begyndende script
Der er to primære sektioner i denne kode. Det første afsnit er det sted, hvor vi importerer de krævede pakker, og det andet afsnit er hvor den aktuelle handling sker. Den aktuelle operation kan yderligere opdeles som følger:
- Iterer gennem alle filerne med den givne udvidelse - i vores tilfælde
.png
- og gentag alt følgende: - Åbn billedfilen (som en billedfil)
- Konverter billedfilen til et andet format (
RGB
) - Endelig gem filen - med den nye udvidelse
.jpg
Linje 1 og 2:
from PIL import Image # Python Image Library - Image Processing
import glob
Dette afsnit importerer bare de nødvendige pakker. PIL
til billedbehandling og glob
til iterering gennem filer i den givne mappe i operativsystemet.
Linje 3–6:
# based on SO Answer: //stackoverflow.com/a/43258974/5086335
for file in glob.glob("*.png"):
im = Image.open(file)
rgb_im = im.convert('RGB')
rgb_im.save(file.replace("png", "jpg"), quality=95)
FIN
Så det er slutningen på vores værktøj! Du kan gemme disse 6 linjer som en .py
fil og derefter påberåbe dem på din computer, hvor du har billeder til at konvertere.
Videre udvikling
Hvis du planlægger at forbedre dette script yderligere, kan du konvertere hele dette script til et kommandolinjegrænseværktøj - så kan alle disse detaljer lide File Format
og Folder Path
kan gives som argumenter, hvorved dets styrke udvides yderligere.
Referencer
- Den komplette kode, der bruges her, er tilgængelig på min github
- Zen of Python
- Pude