ImageDraw.Draw绘制polygon
时间: 2023-10-04 13:08:30 浏览: 150
在Python中,我们也可以使用PIL库(Python Imaging Library)的ImageDraw模块来绘制多边形。下面是一个简单的例子:
```python
from PIL import Image, ImageDraw
# 创建一个大小为640x480的空白图像
image = Image.new('RGB', (640, 480), (255, 255, 255))
# 创建一个ImageDraw对象
draw = ImageDraw.Draw(image)
# 定义三角形的顶点
vertices = [(320, 50), (100, 400), (540, 380)]
# 绘制三角形
draw.polygon(vertices, fill=(255, 0, 0))
# 显示图像
image.show()
```
在这个例子中,我们首先创建了一个大小为640x480的空白图像,并创建了一个ImageDraw对象 `draw`。然后,我们定义了一个由三个顶点组成的列表 `vertices`,并使用 `draw.polygon()` 方法来绘制三角形。最后,我们使用 `image.show()` 方法来显示绘制的图像。
需要注意的是,PIL库中的ImageDraw模块使用的是RGB颜色模式,因此需要使用 `(255, 0, 0)` 这样的元组来表示红色。如果要绘制透明的多边形,可以将 `fill` 参数设置为一个带有四个值的元组,例如 `(255, 0, 0, 128)` 表示半透明的红色。
相关问题
ImageDraw.Draw 三角形
使用Python中的Pillow库可以绘制三角形。以下是使用ImageDraw.Draw绘制三角形的示例代码:
```python
from PIL import Image, ImageDraw
# 创建一个空白的图像
img = Image.new('RGB', (200, 200), color='white')
# 创建一个绘图对象
draw = ImageDraw.Draw(img)
# 绘制三角形
draw.polygon([(100, 20), (20, 180), (180, 180)], fill='red', outline='black')
# 显示图像
img.show()
```
在上述代码中,我们首先创建了一个200x200的空白图像,然后创建了一个绘图对象draw。接下来,我们使用draw.polygon()方法绘制了一个三角形,该方法接受一个点列表作为参数。最后,我们使用img.show()方法显示了绘制好的图像。
ImageDraw.Draw( )划线
ImageDraw.Draw()方法用于在图像上划线。其语法如下:
```python
ImageDraw.Draw(image, mode=None)
```
参数说明:
- image:要绘制的图像。
- mode:可选参数,指定绘制模式,如“RGB”、“RGBA”等。
方法:
- line(xy, fill=None, width=0, joint=None):绘制一条直线。
- polygon(xy, fill=None, outline=None):绘制一个多边形。
- rectangle(xy, fill=None, outline=None):绘制一个矩形。
- ellipse(xy, fill=None, outline=None):绘制一个椭圆。
示例:
```python
from PIL import Image, ImageDraw
# 创建一张红色背景的图像
image = Image.new("RGB", (200, 200), "red")
# 在图像上绘制一条蓝色直线
draw = ImageDraw.Draw(image)
draw.line((0, 0, 200, 200), fill="blue")
# 在图像上绘制一个黄色多边形
points = [(50, 50), (150, 50), (150, 150), (50, 150)]
draw.polygon(points, fill="yellow")
# 在图像上绘制一个绿色矩形
draw.rectangle((75, 75, 125, 125), fill="green")
# 在图像上绘制一个紫色椭圆
draw.ellipse((25, 25, 175, 175), fill="purple")
# 保存图像
image.save("draw.jpg")
```
运行以上代码,会在当前目录下生成一张名为“draw.jpg”的图像,内容如下:
![draw.jpg](https://cdn.jsdelivr.net/gh/YanhuiJessica/CDN/images/20211028113322.jpg)
阅读全文