Python PIL | ImageDraw.Draw.polygon() 方法
PIL 是Python Imaging Library,它为Python解释器提供了图像编辑功能。 ImageDraw
模块为 Image 对象提供简单的 2D 图形。您可以使用此模块创建新图像、注释或修饰现有图像,以及动态生成图形以供 Web 使用。
ImageDraw.Draw.polygon()
绘制一个多边形。
多边形轮廓由给定坐标之间的直线以及最后一个坐标和第一个坐标之间的直线组成。
Syntax: PIL.ImageDraw.Draw.polygon(xy, fill=None, outline=None)
Parameters:
Parameters:
xy – Sequence of either 2-tuples like [(x, y), (x, y), …] or numeric values like [x, y, x, y, …].
outline – Color to use for the outline.
fill – Color to use for the fill.
Returns: An Image object.
import math
from PIL import Image, ImageDraw
from PIL import ImagePath
side = 8
xy = [
((math.cos(th) + 1) * 90,
(math.sin(th) + 1) * 60)
for th in [i * (2 * math.pi) / side for i in range(side)]
]
image = ImagePath.Path(xy).getbbox()
size = list(map(int, map(math.ceil, image[2:])))
img = Image.new("RGB", size, "# f9f9f9")
img1 = ImageDraw.Draw(img)
img1.polygon(xy, fill ="# eeeeff", outline ="blue")
img.show()
输出:
另一个例子:采用不同的参数。
import math
from PIL import Image, ImageDraw
from PIL import ImagePath
side = 6
xy = [
((math.cos(th) + 1) * 90,
(math.sin(th) + 1) * 60)
for th in [i * (2 * math.pi) / side for i in range(side)]
]
image = ImagePath.Path(xy).getbbox()
size = list(map(int, map(math.ceil, image[2:])))
img = Image.new("RGB", size, "# f9f9f9")
img1 = ImageDraw.Draw(img)
img1.polygon(xy, fill ="# eeeeff", outline ="blue")
img.show()
输出: