Метод expand() в Pillow

Добавляем рамку к изображению в Pillow

Добавление рамок — это простой, но эффективный способ усилить визуальное воздействие изображения. В библиотеке Pillow существует несколько методов, которые позволяют легко реализовывать разнообразные стили рамок.

Добавление рамки методом expand()

Метод ImageOps.expand() предоставляет возможность расширения размеров изображения, добавляя пустое пространство или цветовой фон вокруг него. Этот метод полезен, например, при добавлении рамки к изображению.

Синтаксис:

ImageOps.expand(image, border, fill=None)

Параметры:

  • image: Объект изображения, к которому применяется операция расширения.
  • border: Толщина рамки, которую вы хотите добавить к изображению. Это целое число, представляющее количество пикселей.
  • fill (опционально): Цвет заполнения для нового пространства. Это может быть цвет в формате строки (например, 'black'), кортеж RGB (например, (0, 0, 0)), или None для пустого пространства.

Возвращаемое значение:
Новый объект изображения, созданный после расширения.

from PIL import Image, ImageOps

# Открываем изображение
image_path = "example.jpg"
original_image = Image.open(image_path)

# Задаем толщину рамки
border_thickness = 20

# Добавляем рамку
image_with_border = ImageOps.expand(original_image, border_thickness, fill='black')
image_with_border.show()

Результат:

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

Примечания:

  • Если fill установлен в None, новое пространство будет пустым (прозрачным, если изображение содержит альфа-канал).
  • Если fill установлен в цвет, это будет цвет фона для нового пространства.

Добавление рамки методом paste()

Это уже знакомый нам метод, работает следующим образом:

from PIL import Image, ImageOps

# Открываем изображение
image_path = "example.jpg"
original_image = Image.open(image_path)

# Задаем толщину и цвет рамки
border_thickness = 20
border_color = 'black'

# Создаем новое изображение с рамкой
image_with_border = Image.new('RGB', (original_image.width + 2 * border_thickness, original_image.height + 2 * border_thickness), border_color)
image_with_border.paste(original_image, (border_thickness, border_thickness))

image_with_border.show()

Результат:

Заметьте, что в этом случае изображение увеличилось на размер рамки.

Заключение

Эти примеры демонстрируют основные методы добавления рамок к изображениям с использованием библиотеки Pillow. Комбинируйте и адаптируйте код в соответствии с вашими творческими потребностями для создания уникальных и стильных эффектов.

Содержание: