Метод ellipse() в Pillow

Создание и стилизация кругов — метод ellipse() в Pillow

Рассмотрим различные аспекты работы с кругами в Pillow — от создания простых форм до продвинутых методов стилизации.

Создание кругов

Метод ellipse() в библиотеке Pillow предназначен для рисования эллипсов (включая круги) на изображении. Этот метод принимает координаты ограничивающего прямоугольника, в котором будет нарисован эллипс.

Синтаксис:

draw.ellipse(xy, fill=None, outline=None, width=0)
  • xy (обязательный): Кортеж, содержащий четыре значения (x1, y1, x2, y2), где (x1, y1) - координаты верхнего левого угла ограничивающего прямоугольника, а (x2, y2) - координаты нижнего правого угла. Эти координаты задают ограничивающий прямоугольник, в котором будет нарисован эллипс.
  • fill (необязательный): Цвет заливки эллипса. Может быть строкой, представляющей цвет в формате "#RRGGBB" или кортежем трех значений (R, G, B).
  • outline (необязательный): Цвет контура эллипса. Аналогично параметру fill, может быть строкой или кортежем трех значений.
  • width (необязательный): Ширина контура эллипса. По умолчанию равно 0, что означает отсутствие контура.

Пример:

from PIL import Image, ImageDraw

# Создаем изображение размером 500x500 пикселей
width, height = 500, 500
image = Image.new("RGB", (width, height), "white")

# Инициализируем объект ImageDraw для рисования на изображении
draw = ImageDraw.Draw(image)

# Рисуем круг с центром в (250, 250) и радиусом 100
draw.ellipse((150, 150, 350, 350), outline="black", width=2)

# Сохраняем изображение
image.save("circle_example.png")

Результат:

Задание стиля кругов

Заливка цветом

Мы можем задать цвет заливки для круга, добавив параметр fill:

# Рисуем круг с заливкой цветом
draw.ellipse((150, 150, 350, 350), outline="black", fill="blue")

Результат:

Использование текстур

Мы можем добавить текстуры кругам, используя другие изображения:

from PIL import Image, ImageDraw

# Создаем изображение размером 500x500 пикселей
width, height = 500, 500
image = Image.new("RGB", (width, height), "white")

# Инициализируем объект ImageDraw для рисования на изображении
draw = ImageDraw.Draw(image)

# Создаем текстурное изображение
texture = Image.open("example.jpg")

# Проверяем, если размеры текстуры не соответствуют размерам изображения, изменяем размер текстуры
if texture.size != (width, height):
    texture = texture.resize((width, height))

# Создаем маску для круга
mask = Image.new("L", (width, height), 0)
draw_mask = ImageDraw.Draw(mask)
draw_mask.ellipse((150, 150, 350, 350), fill=255)

# Накладываем текстуру с использованием маски
image.paste(texture, (0, 0), mask=mask)

# Сохраняем изображение
image.save("textur_circle_example.png")

Результат:

Заключение

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

Содержание: