Бібліотека Pillow: обробка зображень у Python
Бібліотека Pillow в Python — незамінний помічник під час роботи із зображеннями. Створено її Джеффрі А. Кларком у 2013 році як форк широко відомої бібліотеки Python Imaging Library (PIL). За допомогою Pillow можна завантажувати, змінювати та зберігати оброблені фотографії у файл різних форматів. Ця властивість робить бібліотеку затребуваним інструментом для розробки програм, які потребують перетворення зображень.
Де потрібна Pillow?
Бібліотека Pillow необхідна у таких ситуаціях:
- Редагування зображень: масштабування, обрізання, зміна формату та роздільної здатності.
- Генерування мініатюр: створення зменшених копій зображень для веб-сторінок або програм.
- Нанесення тексту на зображення (наприклад, водяні знаки або підписи).
- Додавання фільтрів до зображення: корекція яскравості, контрасту та інші ефекти.
- Вилучення метаданих: читання та запис метаданих з фото, таких як EXIF.
- Склеювання декількох фотографій в одне нове зображення.
Як встановити Pillow
Встановлення Pillow для роботи з фотографіями відбувається за допомогою пакетного менеджера pip. Введіть просту команду:
pip install Pillow
Після завершення встановлення бібліотеку можна імпортувати таким чином:
від pil import image
Бібліотека Pillow: варіанти використання у Python
1. Відкриття та перегляд зображень
За допомогою Python Pillow ви можете відкрити та переглянути зображення. У цьому вам допоможе клас Image:
від PIL import Image # Відкриваємо фото image = Image.open("photo.jpg") # Переглядаємо фото image.show()
Ці дві команди відкривають одне зображення photo.jpg та показують його у стандартному засобі перегляду вашої операційної системи.
2. Редагування розміру
Щоб змінити розмір зображення, слід використати метод resize():
# Виконуємо зміну розміру вихідного зображення new_image = image.resize((800, 600)) # Зберігаємо результат new_image.save("resized_photo.jpg")
В результаті ширина та висота фотографії зменшаться до 800×600 пікселів, а саме зображення отримає нову назву resized_photo.jpg.
3. Обрізання зображення
Для обрізання фотографій використовується метод crop(), який приймає координати області обрізання:
# Обрізаємо фотографію по лівій верхній і правій нижній межі cropped_image = image.crop((100, 100, 400, 400)) # Зберігаємо результат cropped_image.save("cropped_photo.jpg")
Цей приклад обріже область зображення від (100, 100) до (400, 400) і збереже отриманий результат.
4. Поворот та дзеркальне відображення
Також ви можете повертати фотографію за допомогою методу rotate(), дзеркально відобразити за допомогою transpose():
# Потрібно повернути на 30 градусів rotated_image = image.rotate(30) # Дзеркальне відображення по горизонталі flipped_image = image.transpose(Image.FLIP_LEFT_RIGHT) # Зберігаємо результат rotated_image.save("rotated_photo.jpg") flipped_image.save("flipped_photo.jpg")
5. Інші фільтри для обробки зображень
Бібліотека Pillow має різні можливості фільтрації зображень: ви можете додавати фільтри для фото, створювати розмите зображення, збільшити різкість або виконати інші команди. У цьому вам допоможе модуль ImageFilter:
від PIL import ImageFilter # Ефект розмиття blurred_image = image.filter(ImageFilter.BLUR) # Збільшення різкості sharpened_image = image.filter(ImageFilter.SHARPEN) # Зберігаємо результати blurred_image.save("blurred_photo.jpg") sharpened_image.save("sharpened_photo.jpg")
6. Нанесення тексту на фото
Щоб нанести текст на кольорове або чорно-біле зображення, використовуйте клас ImageDraw у бібліотеці Pillow. Якщо хочете змінити шрифт напису, то скористайтеся модулем ImageFont:
from PIL import ImageDraw, ImageFont # Створення об'єкту для малювання draw = ImageDraw.Draw(image) # Завантаження шрифту font = ImageFont.truetype("tahoma.ttf", 28) # Нанесення тексту draw.text((100, 100), "Hello, Pillow!", font=font, fill="red") # Збереження результату image.save("text_photo.jpg")
Цей код нанесе текст Hello, Pillow! червоного кольору на наше зображення.
7. Генерування мініатюр
Для створення зображень зменшеного розміру (мініатюри) та подальшого використання її у веб-додатках виконайте дії:
# Створюємо мініатюру (пропорційно до зазначених розмірів) image.thumbnail((250, 250)) # Зберігаємо результат image.save("thumbnail_photo.jpg")
8. Вилучення метаданих EXIF
Бібліотека Pillow дозволяє вилучати та змінювати метадані EXIF з фотографій. Ось код, щоб прочитати метадані:
# Читання метаданих EXIF exif_data = image._getexif() # Виведення метаданих на екран if exif_data: for tag, value in exif_data.items(): print(f"{tag}: {value}")
Просунуті методи обробки зображень
1. Об’єднання зображень
Бібліотека Pillow підтримує поєднання двох зображень в одне. Це можливо завдяки методу Image.blend(). Єдина умова: обидва зображення мають бути однакового розміру:
# Відкрити друге зображення image2 = Image.open("photo2.jpg").resize(image.size) # Об'єднати зображення зі значенням альфа 0,5 blended_image = Image.blend (image, image2, alpha = 0.5) # Зберегти змішане зображення blended_image.save("blended_photo.jpg")
2. Маскування та альфа-композитинг
Альфа-композитинг дозволяє виконувати більш складні маніпуляції з фотографіями, використовуючи маску для керування тим, які частини зображення торкнуться:
# Створити альфа-маску mask = Image.new("L", image.size, 128) # Режим L для маски у відтінках сірого з прозорістю 50% # Скомпонувати зображення за допомогою маски composited_image = Image.composite(image, image2, mask) # Зберегти складне зображення composited_image.save("composited_photo.jpg")
3. Робота з різними колірними режимами
Pillow може перетворювати зображення між різними колірними режимами, такими як RGB, відтінки сірого та CMYK:
# Перетворити зображення на відтінки сірого grayscale_image = image.convert("L") # Перетворити зображення на CMYK cmyk_image = image.convert("CMYK") #Зберегти перетворені зображення grayscale_image.save("grayscale_photo.jpg") cmyk_image.save("cmyk_photo.jpg")
Далі просто запустіть наведений вище код. Як бачите, ви можете використовувати Pillow для різних завдань.
Висновок
Як ви вже переконалися, популярна бібліотека Pillow — чудовий та зручний засіб для роботи з фотографіями та будь-якими іншими типами зображень у Python. Вона включає безліч корисних функцій, які дозволяють обробляти фотографії за заданими параметрами. Ви можете встановити для нового фото нову ширину і висоту, об’єднати в одне зображення дві фотографії, виконати багато інших перетворень.
З бібліотекою Pillow особливо зручно працювати при розробці веб-застосунків, тому що з її допомогою багато графічних завдань можна автоматизувати. Обробка зображень з допомогою бібліотеки скорочує робочий час, витрачений розробником на виконання цих завдань.
Бібліотека Python Pillow — відмінний вибір для розробників будь-якого професійного рівня, які хочуть навчитися методом спроб і помилок ефективніше працювати із зображеннями.
Favbet Tech – це ІТ-компанія зі 100% українською ДНК, що створює досконалі сервіси для iGaming і Betting з використанням передових технологій та надає доступ до них. Favbet Tech розробляє інноваційне програмне забезпечення через складну багатокомпонентну платформу, яка здатна витримувати величезні навантаження та створювати унікальний досвід для гравців.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: