Чтобы повернуть изображение на угол с помощью 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')
Входное изображение:

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

Размер исходного изображения сохраняется. Вы можете настроить размер выходного изображения в соответствии с поворотом.
Пример 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')

Пример 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')
Выходное изображение:

Отображение изображения
Чтобы показать или отобразить изображение в 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()