#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")