Рассмотрим различные аспекты работы с кругами в 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, вы можете легко манипулировать геометрией и стилем кругов, открывая широкие возможности для создания уникальных и креативных изображений.
Содержание: