Обработка изображений в Python с Pillow: исчерпывающее руководство
Библиотека Python Imaging Library Pillow идеальна для обработки изображений. Обычно она используется для архивации и пакетной обработки. Конечно, вы свободны использовать её для чего угодно, что вы можете придумать. Вы можете использовать библиотеку для:
- Создания миниатюр
- Конвертации между файловыми форматами
- Печати изображений
- Получения гистограммы (идеально для автоматического улучшения контраста)
- Поворота изображений
- Применения фильтров вроде размытия
Содержание
Установка пакета обработки изображений
Для установки Pillow, который является форком и продолжением оригинальной Python Imaging Library, используйте команду pip install:
pip3 install Pillow
Обработка изображений
Pillow предлагает несколько фильтров, которые становятся доступными после импорта ImageFilter. Например, для размытия изображения используйте:
from PIL import Image, ImageFilter
im = Image.open("kittens.jpg")
blurred = im.filter(ImageFilter.BLUR)
Другие фильтры включают SHARPEN, SMOOTH и EDGE_ENHANCE. Для полного списка фильтров проверьте справочную документацию по ImageFilter.
Для поворота изображения на 180 градусов:
rotated_image = im.rotate(180)
И наконец, для сохранения результатов вашей тяжелой работы:
rotated_image.save("rotated.jpg")
Отображение изображений
Помимо обработки изображений, эта библиотека также может использоваться для отображения изображений на экране. Вот пример кода для отображения файла kittens.jpg:
from PIL import Image
im = Image.open("kittens.jpg")
im.show()
print(im.format, im.size, im.mode)
# JPEG (1920, 1357) RGB
В следующем анимированном gif я демонстрирую, как использовать Pillow прямо из IPython:

Дальнейшее чтение
Библиотека имеет гораздо больше чем предложить. Чтобы узнать всё об обработке изображений в Python с использованием Pillow, лучше всего перейти к официальному туториалу!
Python
- Создание робота на Raspberry Pi и Python: полное руководство
- Функция print() в Python: практическое руководство с примерами
- Мастерство метода strip() в Python: подробное руководство и практические примеры
- Мастерство метода str.count() в Python: как подсчитывать символы и подстроки с примерами
- Мастерство строк форматирования format() в Python: понятные примеры
- Мастерство метода String.find() в Python: синтаксис, примеры и альтернативы
- Освоение лямбда-функций Python: практические примеры и лучшие практики
- Функция round() в Python: подробное объяснение с практическими примерами
- Освоение функции map() в Python: синтаксис, примеры и лучшие практики
- Python timeit(): измерение времени выполнения с практическими примерами