Подушка Python - Работа с изображениями

В этой главе подробно рассматриваются такие темы, как чтение и сохранение изображения в Pillow.

Чтение изображения

Читать и писать изображения с помощью библиотеки подушек очень просто, с помощью PIL.Image module function.

Синтаксис

Image.open(fp, mode=’r’)

где

  • fp- Имя файла (строка), pathlib.Path объект или объект файла. Файловый объект должен реализовывать методы read (), seek () и tell () и открываться в двоичном режиме.

  • mode - Это необязательный аргумент, если он указан, должен быть «r».

  • Return value - Объект Image.

  • Error - Если файл не может быть найден или изображение не может быть открыто и идентифицировано.

пример

Ниже приведен очень простой пример, в котором мы собираемся открыть изображение любого формата (мы используем.jpg), отобразите его в окне и затем сохраните (расположение по умолчанию) с другим форматом файла (.png).

from PIL import Image
image = Image.open('beach1.jpg')
image.show()
image.save('beach1.bmp')
image1 = Image.open('beach1.bmp')
image1.show()

В приведенном выше примере мы импортируем модуль Image из библиотеки PIL, а затем вызываем Image.open()функция для чтения изображения с диска, которая возвращает тип данных объекта изображения. Он автоматически определит тип файла, просмотрев его содержимое. Для чтенияopen() функция принимает filename(string), а path object или image(file) объект.

Итак, используя функцию open (), мы фактически читаем изображение. Image.open () прочитает изображение и получит всю необходимую информацию из изображения.

Вывод

Если вы сохраните указанную выше программу как Example.py и выполните ее, она отобразит исходные (.jpg) и повторно сохраненные (.bmp) изображения с использованием стандартной утилиты отображения PNG, как показано ниже:

Actual image

Resaved image (.bmp)

Сохранение изображения

Функция save () записывает изображение в файл. Как и для чтения (функция open ()), функция save () принимает имя файла, объект пути или объект файла, который был открыт для записи.

Синтаксис

Image.save(fp, format=None, **params)

Где,

  • fp - Имя файла (строка), pathlib.Path объект или объект файла.

  • format- Дополнительное переопределение формата. Если не указан, используемый формат определяется расширением имени файла. Если вместо имени файла использовался файловый объект, этот параметр следует использовать всегда.

  • options - Дополнительные параметры для автора изображения.

  • Return value - нет

  • KeyError - Если выходной формат не может быть определен по имени файла, используйте параметр формата для решения этой проблемы.

  • IOError - Если файл не может быть записан, возможно, файл был создан и может содержать частичные данные.

Короче говоря, приведенный выше синтаксис сохранит изображение под заданным именем файла. Если формат не указан, то он основан на текущем расширении имени файла. Чтобы предоставить автору дополнительные инструкции, мы используем параметры ключевых слов.

image.save('beach1.bmp')

В приведенном выше примере он сохраняет файл на основе расширения файла, чтобы определить, например, тип изображения - в приведенном выше примере создается файл BMP в нашем текущем рабочем каталоге.

Вы также можете явно указать тип файла в качестве второго параметра -

image.save('beach1.gif', 'GIF')