Поворот и отображение изображения на 45, 90, 180, 270 градусов в Python

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

Синтаксис

Синтаксис метода rotate() показан в следующем блоке кода.

Image.rotate(angle, resample=0, expand=0, center=None, translate=None, fillcolor=None)

Где:

  • angle – в градусах против часовой стрелки;
  • resample – необязательный фильтр передискретизации. Это может быть один из PIL.Image.NEAREST (использовать ближайшего соседа), PIL.Image.BILINEAR (линейная интерполяция в среде 2 × -2) или PIL.Image.BICUBIC (интерполяция кубическим сплайном в среде 4 × 4). Если опущено или если изображение имеет режим «1» или «P», устанавливается значение PIL.Image.NEAREST;
  • expand – необязательное расширение. Если задано значение true, выходное изображение расширяется до размера, достаточного для размещения всего повернутого изображения. Если false или опущено, сделайте выходное изображение того же размера, что и входное изображение. Обратите внимание, что flag расширения предполагает вращение вокруг центра и отсутствие смещения;
  • center – необязательный центр вращения (кортеж из двух элементов). Начало координат – левый верхний угол. По умолчанию это центр изображения;
  • translate – необязательный перевод после поворота (двухкортежный);
  • fillcolor – необязательный цвет для области за пределами повернутого изображения.

Пример 1: повернуть изображение на 45 градусов

В следующем примере мы повернем изображение на 45 градусов против часовой стрелки.

from PIL import Image

#read the image
im = Image.open("sample-image.png")

#rotate image
angle = 45
out = im.rotate(angle)
out.save('rotate-output.png')

Входное изображение:

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

Выходное изображение:

Поворот изображения на 45 градусов

Размер исходного изображения сохраняется. Вы можете настроить размер выходного изображения в соответствии с поворотом.

Пример 2

В следующем примере мы настроим размер выходного изображения в соответствии с поворотом, используя параметр expand = True.

from PIL import Image

#read the image
im = Image.open("sample-image.png")

#rotate image
angle = 45
out = im.rotate(angle, expand=True)
out.save('rotate-output.png')

Выходное изображение

Настройка размера выходного изображения

Пример 3: поворот на 90 градусов

Вы можете повернуть изображение на 90 градусов против часовой стрелки, задав угол = 90. Мы также указываем expand = True, чтобы повернутое изображение подстраивалось под размер вывода.

from PIL import Image

#read the image
im = Image.open("sample-image.png")

#rotate image by 90 degrees
angle = 90
out = im.rotate(angle, expand=True)
out.save('rotate-output.png')

Поворот изображени на 90 градусов

Пример 4: поворот на 180 градусов

В этом примере Python Pillow мы повернем изображение на 180 градусов.

from PIL import Image

#read the image
im = Image.open("sample-image.png")

#rotate image by 180 degrees
angle = 180
out = im.rotate(angle, expand=True)
out.save('rotate-output.png')

Выходное изображение:

Поворот на 180 градусов

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

Чтобы показать или отобразить изображение в Pillow, вы можете использовать метод show() для объекта изображения.

Метод show() записывает изображение во временный файл, а затем запускает программу по умолчанию для отображения этого изображения. По завершении выполнения программы временный файл будет удален.

Пример 1

В следующем примере мы прочитаем изображение и покажем его пользователю в графическом интерфейсе с помощью метода show().

from PIL import Image

#read the image
im = Image.open("sample-image.png")

#show image
im.show()

Вывод:

Отображение изображения с помощью графической программы по умолчанию

В этом скрипте мы используем ПК с Windows, а программа «Фото» по умолчанию используется для открытия изображений BMP. Следовательно, метод show() отображал изображение с помощью программы Photos.

Пример 2

Вы можете отображать несколько изображений. Все изображения будут сложены, поскольку метод show() запускает отдельные экземпляры программы по умолчанию, которая отображает изображение на вашем компьютере.

В следующем примере мы прочитаем несколько изображений и покажем их пользователю в графическом интерфейсе с помощью метода show().

from PIL import Image

#read the image
im1 = Image.open("sample-image.png")
im2 = Image.open("test-image.png")

#show images
im1.show()
im2.show()

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *