Python 3 изучаю работу с изображениями

Наиболее важным классом в библиотеке PIL Python является класс Image, определенный в модуле с тем же именем. Экземпляры этого класса можно создавать несколькими способами: загружая изображения из файлов, обрабатывая другие изображения или создавая изображения с нуля.

Чтобы загрузить изображение из файла, используйте функцию open() в модуле Image:

В случае успеха эта функция возвращает объект Image. Теперь можно использовать атрибуты экземпляра для проверки содержимого файла:

Атрибут format определяет тип изображения. Если изображение не было считано из файла, то ему присваивается значение None. Атрибут size — это 2-кортеж, содержащий ширину и высоту (в пикселях). Атрибут mode определяет количество и названия полос на изображении, а также тип и глубину пикселей. Общие режимы “ » L «(яркость) для изображений в оттенках серого, «RGB “для изображений истинного цвета и ”CMYK» для изображений печати.

Если файл не удается открыть,возникает исключение IOError.

После того, как у вас есть экземпляр класса Image, вы можете использовать методы, определенные этим классом для обработки и управления изображением. Например, давайте покажем изображение, которое мы только что загрузили:

Запустим, откроется изображение

Стандартная версия show() не очень эффективна, так как она сохраняет изображение во временный файл и вызывает утилиту xv для отображения изображения. Если у вас не установлен xv, он даже не будет работать. Когда он все же работает, он очень удобен для отладки и тестирования.

Чтение и запись изображений

Библиотека изображений Python поддерживает широкий спектр форматов файлов изображений. Для чтения файлов с диска используйте функцию open() в модуле Image. Вам не нужно знать формат файла, чтобы открыть файл. Библиотека автоматически определяет формат на основе содержимого файла.

Чтобы сохранить файл, используйте метод save() класса Image. При сохранении файлов имя становится важным. Если формат не указан, библиотека использует расширение имени файла, чтобы определить, какой формат хранения файлов следует использовать.

Конвертировать файлы в формат JPEG

В результате получим в папке с проектом копию изображения в формате JPEG

Идентификация файлов изображений

Вырезание, вставка и объединение изображений

Класс Image содержит методы, позволяющие управлять областями внутри изображения. Чтобы извлечь прямоугольник из изображения, используйте метод crop().

Результат

Замена цветов

поворот изображения

изменить размер изображения

im.transpose(Image.ROTATE_180)

преобразование цвета

Библиотека изображений Python предоставляет ряд методов и модулей, которые можно использовать для улучшения изображений.

Фильтры

Модуль ImageFilter содержит ряд предопределенных фильтров улучшения, которые можно использовать с помощью метода filter().

Метод point() может использоваться для преобразования значений пикселей изображения (например, манипуляции контрастом изображения). В большинстве случаев в этот метод можно передать объект функции, ожидающий один аргумент. Каждый пиксель обрабатывается в соответствии с этой функцией: