Kuinka rakentaa kuvatyyppimuunnin kuudelle Python-riville

Yksi ohjelmoijana olemisen etu on kykysi rakentaa apuvälineitä elämän parantamiseksi. Toisin kuin ei-ohjelmoija, et todennäköisesti viettää tuntikausia kaivamalla useita Google-hakutulossivuja löytääksesi työkalun, jonka ensisijaisesti piti parantaa tuottavuuttasi ( ironia voittaa ). Tämä saa sinut tuntemaan itsesi tehokkaammaksi tuntemalla ohjelmointikielen - varsinkin jos kyseinen ohjelmointikieli on yhtä monipuolinen ja mahtava kuin Python.

Yksi The Zen of Python -pisteistä sanoo:

Yksinkertainen on parempi kuin monimutkainen.

Tämän filosofian ollessa paikallaan, paljon kapealla työkalulla tapahtuvaa kehitystä Pythonilla voidaan tehdä niin ytimekkäästi, että saa minut miettimään, kannattaako sitä kutsua työkaluksi ollenkaan. Joskus sana scriptolisi tarkempi. Kummassakin tapauksessa aiomme rakentaa sellaisen, scriptjoka muuntaa kuvat yhdestä tiedostomuodosta (kuvatyypistä) toiseen - vain 6 rivillä Python-koodia.

Vastuuvapauslauseke: Rivien määrä (6) ei sisällä tyhjiä rivejä ja kommentteja

Tässä opetusohjelmassa rakennetaan kuvatyyppimuunnin, joka muuntaa PNG-kuvan JPG-kuvaksi. Ennen kuin harmaasolusolusi kiirehtivät arvioimaan, olenko hullu rakentamaan tätä työkalua, haluan sanoa, että tämä ei ole vain yhtä kuvaa - vaan kaikkia kansion sisällä olevia kuvia. Se vaatii ehdottomasti enemmän manuaalista työtä ilman koodausta (tiedän, että voit haistaa bash).

Python-paketti

Aiomme käyttää Python-pakettia PIL(joka tarkoittaa Python-kuvakirjastoa) tähän tarkoitukseen. Alkuperäinen PILei saanut päivityksiä uusimpaan Python-versioon, joten jotkut hyvät sielut ovat luoneet ystävällisen haarukan, Pillowjoka tukee jopa> Python 3.0: ta.

Asenna se käyttämällä pip3 install Pillow.

Aloitusohjelma

Tässä koodissa on kaksi pääosaa. Ensimmäisessä osassa tuomme vaaditut paketit, ja toisessa osassa todellinen operaatio tapahtuu. Varsinainen toiminta voidaan jakaa edelleen seuraavasti:

  • .pngToista kaikki tiedostot, joilla on annettu tiedostotunniste - tapauksessamme - ja toista kaikki seuraavat:
  • Avaa kuvatiedosto (kuvatiedostona)
  • Muunna kuvatiedosto toiseen muotoon ( RGB)
  • Lopuksi tallenna tiedosto - uudella laajennuksella .jpg

Rivit 1 ja 2:

from PIL import Image # Python Image Library - Image Processing
import glob

Tämä osio tuo vain tarvittavat paketit. PILkuvankäsittelyyn ja globtietyn kansion tiedostojen iterointiin käyttöjärjestelmässä.

Rivit 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

Joten se on työkalumme loppu! Voit tallentaa nämä 6 riviä .pytiedostona ja kutsua ne sitten tietokoneellesi, jossa sinulla on muunnettavia kuvia.

Edelleen kehittäminen

Jos aiot parantaa tätä komentosarjaa edelleen, voit muuntaa koko tämän komentosarjan komentoriviliitäntätyökaluksi - kaikki nämä yksityiskohdat pitävät File Formatja Folder Pathvoidaan antaa argumentteina, mikä laajentaa sen tehoa edelleen.

Viitteet

  • Tässä käytetty täydellinen koodi on saatavana githubissani
  • Zen of Python
  • Tyyny