В моей предыдущей статье о советах по экономии времени для Pythonists я упоминал, что Python — это язык, который может вдохновлять любовь пользователей .
Одной из причин этого является число экономящих время библиотек, доступных для этого языка. Хорошим примером является библиотека изображений Python (PIL) , которая является основной темой этой статьи.
Что вы можете сделать с PIL
PIL — это бесплатная библиотека, которая добавляет в ваш интерпретатор Python возможности обработки изображений и поддерживает ряд форматов файлов изображений, таких как PPM, PNG, JPEG, GIF, TIFF и BMP.
PIL предлагает несколько стандартных процедур для обработки / обработки изображений, таких как:
- пиксельные манипуляции
- маскировка и прозрачность
- фильтрация (например, размытие, контур, сглаживание, обнаружение краев)
- улучшение изображения (например, повышение резкости, регулировка яркости, контрастность)
- геометрические, цветные и другие преобразования
- добавление текста к изображениям
- вырезание, вставка и объединение изображений
- создание эскизов.
ПИЛ и Подушка
Одна из проблем PIL заключается в том, что его последняя версия 1.1.7 была выпущена в 2009 году и поддерживает только Python 1.5.2–2.7. Хотя сайт PIL обещает выход следующей версии для Python 3.X, его последняя фиксация была в 2011 году, и похоже, что разработка была прекращена.
К счастью, еще не все потеряно для пользователей Python 3.X. Проект под названием Pillow разветвил репозиторий PIL и добавил поддержку Python 3.X. Учитывая, что большинство читателей, вероятно, будут работать с Python 3.X, я сосредоточусь на обновлении Pillow в этой статье.
Установка подушки
Поскольку Pillow поддерживает версии Python до Python 2.4, я сосредоточусь только на установке Pillow, а не на более старой версии PIL.
Python на Mac
В настоящее время я пишу это руководство для Mac OS X Yosemite 10.10.5 и, таким образом, опишу, как установить Pillow на компьютер Mac OS X. Но, не волнуйтесь, в конце этого раздела я предоставлю ссылку, которая описывает, как установить Pillow на другие операционные системы.
Я просто хочу отметить, что Mac OS X поставляется с предустановленным Python. Тем не менее, версия, скорее всего, будет до 3.X.
Например, на моем компьютере, когда я запускаю $ python --version
Python 2.7.10
Питон и пипс
Очень простой способ установить подушку — через пипс .
Если на вашем компьютере не установлен pip, просто введите следующую команду в своем терминале, и все готово:
$ sudo easy_install pip
Теперь, чтобы установить подушку, просто введите в своем терминале следующее:
$ sudo pip install pillow
Это было легко, не так ли?
Как я и обещал, для установки Pillow на другие операционные системы вы можете найти инструкции для этого здесь .
Несколько примеров
В этом разделе я продемонстрирую несколько простых вещей, которые мы можем сделать с помощью PIL.
Я выполню эти тесты на следующем изображении :
Если вы хотите следовать этим примерам, загрузите изображение.
Читать изображение
Это самая основная операция в задаче обработки изображения, так как для обработки изображения вы должны сначала прочитать его. С PIL это можно легко сделать следующим образом:
from PIL import Image
img = Image.open('brick-house.png')
Обратите внимание, что img
open()
, которая является частью модуля PIL Image
Вы также можете прочитать уже открытые файлы, либо из строки, либо из архива tar.
Преобразуйте изображение в оттенки серого, отобразите его и сохраните
Файл brick-house.png
Чтобы преобразовать его в оттенки серого , отобразить и сохранить новое изображение в оттенках серого, вы можете просто сделать следующее:
from PIL import Image
img = Image.open('brick-house.png').convert('L')
img.show()
img.save('brick-house-gs','png')
Обратите внимание, что мы использовали три основные функции для выполнения этой операции: convert()
, show()
и save()
. Поскольку мы хотим преобразовать в изображение в градациях серого, параметр L
convert()
Вот возвращенное изображение:
Преобразовать в другой тип изображения
Изображение, над которым мы работаем, имеет тип png
Скажем, вы хотите преобразовать его в другой тип изображения, например, jpg
Эту операцию можно выполнить с помощью функции save()
from PIL import Image
img = Image.open('brick-house.png')
img.save('brick-image','jpeg')
Изменить размер изображения
Размер (размеры) нашего исходного изображения составляет 440 х 600 пикселей. Если мы хотим изменить его размер и сделать его размером 256 x 256 пикселей, это можно сделать следующим образом:
from PIL import Image
img = Image.open('brick-house.png')
new_img = img.resize((256,256))
new_img.save('brick-house-256x256','png')
Это создает новое квадратное изображение:
Как видите, это сжимает изображение в желаемые размеры, а не обрезает его, что может быть не тем, что вы хотите. Конечно, вы также можете обрезать изображение, сохраняя при этом правильное соотношение сторон.
В заключение
Это краткое введение предназначено только для того, чтобы поцарапать поверхность PIL и продемонстрировать, как легко можно выполнить некоторые сложные задачи обработки изображений в Python через библиотеку PIL.
Многие другие операции, которые вы можете выполнять с помощью этой библиотеки, описаны в обширной документации Pillow , где вы можете прочитать более подробную информацию о проблемах, описанных выше, а также удобные учебные пособия.
Я надеюсь, что это введение вдохновило вас попробовать манипулирование изображениями с помощью Python. Веселиться!