Как перейти от набора упорядоченных точек к прозрачному изображению многоугольника (Python)

#python #image #python-imaging-library

Вопрос:

У меня есть несколько упорядоченных точек, которые образуют многоугольник, и у меня есть изображение.

Теперь я хочу создать новый образ.

Каждая точка внутри многоугольника должна быть частью нового изображения.

Каждая точка за пределами полигона должна быть прозрачной.

Я использую PIL. Есть ли у кого-нибудь теоретический подход или даже пример кода, как решить эту проблему?

Ответ №1:

Демонстрационный код для создания полигонального изображения с прозрачным фоном.

 from random import randint
from PIL import Image, ImageDraw

width, height = 200, 200
line_color, line_width = 'blue', 5
polygon = [(randint(0, width-1), randint(0, height-1),) for i in range(20)]
polygon.append(polygon[0])

im = Image.new("RGBA", (width, height), (255, 255, 255, 0))
draw = ImageDraw.Draw(im)
draw.line(polygon, fill=line_color, width=line_width)       # join="curve"
# draw.polygon(polygon, fill=line_color)                    # no width option

im.show()
im.save("D:/polygon.png", format="PNG")