Як побудувати перетворювач типу зображення у шість рядків Python

Однією з переваг програміста є здатність створювати утиліти для покращення свого життя. На відміну від непрограміста, ви, мабуть, не витрачаєте години, перекопуючи кілька сторінок результатів пошуку Google, щоб знайти інструмент, який, насамперед, повинен був підвищити вашу продуктивність ( іронія перемоги ). Це, ймовірно, змусить вас почувати себе потужнішими, знаючи мову програмування - особливо, якщо ця мова програмування настільки ж універсальна і чудова, як і Python.

Один із пунктів у «Дзені Пітона» говорить:

Просте - краще, ніж складне.

З цією філософією можна створити багато нішевих інструментів за допомогою Python настільки лаконічно, що змушує задуматися, чи варто взагалі називати це інструментом. Іноді це слово scriptбуло б точнішим. У будь-якому випадку, ми тут беремося за створення такого, scriptякий перетворює зображення з одного формату файлу (типу зображення) в інший - всього за 6 рядків коду Python.

Застереження: Кількість рядків (6) виключає порожні рядки та коментарі

У цьому підручнику ми збираємося створити перетворювач типів зображень, який перетворює зображення PNG у зображення JPG. Перш ніж ваші клітини сірої речовини поспішають судити, чи я божевільний будувати цей інструмент, дозвольте мені сказати, що це стосується не лише одного зображення, а всіх зображень у папці. Це, безумовно, вимагає більше ручних зусиль, щоб обійтися без кодування (я знаю, ви можете відчути запах bash).

Пакет Python

Для цього ми будемо використовувати пакет Python PIL(що означає «Бібліотека зображень 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
  • Дзен Пітона
  • Подушка