Как да изградим преобразувател на тип изображения в шест реда на Python

Едно от предимствата на това, че сте програмист, е способността ви да изграждате помощни инструменти, за да подобрите живота си. За разлика от непрограмист, вие вероятно не прекарвате часове в ровене из множество страници с резултати от търсенето с Google, за да намерите инструмент, който на първо място е трябвало да подобри вашата производителност ( ирония печели ). Това вероятно ви кара да се чувствате по-мощни, като знаете езика за програмиране - особено ако този език за програмиране е толкова универсален и страхотен, колкото е Python.

Една от точките в Дзен на Python казва:

Простото е по-добро от сложното.

С тази философия на място, много нишови разработки на инструменти с помощта на Python могат да бъдат направени толкова лаконично, че ме кара да се чудя дали си струва изобщо да го наричам инструмент. Понякога думата scriptби била по-точна. Така или иначе, ние се опитваме да изградим такъв, scriptкойто преобразува изображения от един файлов формат (тип на изображението) в друг - само в 6 реда Python код.

Отказ от отговорност: Броят на редовете (6) изключва празни редове и коментари

В този урок ще изградим преобразувател на типове изображения, който преобразува PNG изображение в JPG изображение. Преди вашите клетки от сиво вещество да бързат да преценят дали съм луд да създавам този инструмент, нека кажа, че това не е само за едно изображение - но и за всички изображения в папка. Това определено ще изисква повече ръчни усилия, за да се направи без кодиране (знам, че можете да помиришете bash).

Пакет на Python

За PILтази цел ще използваме пакета Python (което означава библиотека с изображения на Python). Оригиналът PILне получи никакви актуализации за най-новата версия на Python, така че някои добри души са създали приятелска вилица, наречена, Pillowкоято поддържа дори> Python 3.0.

Инсталирайте го с помощта на pip3 install Pillow.

Начален сценарий

В този код има два основни раздела. Първият раздел е мястото, където импортираме необходимите пакети, а вторият раздел е мястото, където се случва действителната операция. Действителната операция може да бъде допълнително разбита по следния начин:

  • Прегледайте всички файлове с даденото разширение - в нашия случай .png- и повторете всичко следното:
  • Отворете файла с изображение (като файл с изображение)
  • Конвертирайте файла с изображение в различен формат ( RGB)
  • Накрая запишете файла - с новото разширение .jpg

Редове 1 и 2:

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

Този раздел просто импортира необходимите пакети. PILза обработка на изображения и globза итерация през файлове от дадената папка в операционната система.

Редове 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

Така че това е краят на нашия инструмент! Можете да запазите тези 6 реда като .pyфайл и след това да ги извикате в компютъра си, където имате изображения за конвертиране.

По-нататъчно развитие

Ако планирате да подобрите този скрипт допълнително, можете да конвертирате целия този скрипт в инструмент за интерфейс на командния ред - тогава всички тези подробности харесват File Formatи Folder Pathмогат да бъдат дадени като аргументи, като по този начин се разширява неговата мощ.

Препратки

  • Пълният код, използван тук, е достъпен на моя github
  • Дзен на Python
  • Възглавница