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 scriptville ordet være mere præcist. Uanset hvad vi sætter os her for at bygge en sådan, scriptder konverterer billeder fra et filformat (billedtype) til et andet - på kun 6 linjer med Python-kode.

Ansvarsfraskrivelse: Antallet af linjer (6) ekskluderer tomme linjer og kommentarer

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 bashing).

Python-pakke

Vi vil bruge Python-pakken PIL(som står for Python Image Library) til dette formål. Originalen PILfik ingen opdateringer til den nyeste Python-version, så nogle gode sjæle har oprettet en venlig gaffel kaldet, Pillowder 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. PILtil billedbehandling og globtil 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 .pyfil 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 Formatog Folder Pathkan 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