
Вращение изображений — позволяет изменять ориентацию и создавать динамичные эффекты. Библиотека Pillow в Python предоставляет удобные средства для вращения изображений. Рассмотрим различные техники вращения, а также приведем примеры применения.
Метод rotate() в библиотеке Pillow используется для вращения изображения на заданный угол.
Image.rotate(angle, resample=Image.BICUBIC, center=None, translate=None, fillcolor=None)Параметры:
angle: Угол вращения в градусах. Положительные значения вращают по часовой стрелке, отрицательные - против часовой стрелки.resample (необязательный): Метод интерполяции, используемый при вращении. По умолчанию используется Image.BICUBIC, что представляет собой бикубическую интерполяцию. Другие варианты включают Image.NEAREST, Image.BOX, Image.BILINEAR, Image.HAMMING, и Image.LANCZOS.center (необязательный): Кортеж с координатами центра вращения. По умолчанию центр вращения находится в центре изображения (width/2, height/2).translate (необязательный): Кортеж с значениями смещения после вращения. По умолчанию равен (0, 0).fillcolor (необязательный): Цвет фона для заполнения пустых областей после вращения. По умолчанию используется черный цвет (0, 0, 0).Возвращаемое значение:
Новый объект изображения, представляющий вращенное изображение.
from PIL import Image
# Открываем изображение
image = Image.open("example.jpg")
# Устанавливаем угол вращения в 45 градусов
angle = 45
# Вращаем изображение с использованием бикубической интерполяции
rotated_image = image.rotate(angle, resample=Image.BICUBIC)
# Сохраняем вращенное изображение
rotated_image.save("rotated_example.jpg")В этом примере angle устанавливает угол вращения в 45 градусов, а resample задает метод интерполяции для сглаживания пикселей.
Исходное изображение:

Измененное:

Давайте рассмотрим пример кода, в котором мы вращаем изображение вокруг пользовательского центра:
from PIL import Image
# Открываем изображение
image = Image.open("example.jpg")
# Устанавливаем угол вращения в 45 градусов
angle = 45
# Устанавливаем пользовательский центр вращения
center = (100, 100)
# Вращаем изображение вокруг пользовательского центра с использованием бикубической интерполяции
rotated_image = image.rotate(angle, center=center, resample=Image.BICUBIC)
# Сохраняем вращенное изображение
rotated_image.save("rotated_example_custom_center.jpg")Исходное изображение:

Измененное:

Важно отметить, что если center не указан, то центр вращения по умолчанию будет находиться в центре изображения. Если задан пользовательский центр, то изображение будет вращаться относительно этой точки.
Вращение изображений с Pillow предоставляет широкие возможности для творчества и решения различных задач. Эти простые техники могут быть использованы как для добавления динамики в проекты, так и для создания креативных эффектов в визуальной обработке. Экспериментируйте с предложенными примерами и находите свои уникальные способы использования вращения изображений в ваших проектах.
Содержание: