📜  Python PIL | ImageDraw.Draw.line()(1)

📅  最后修改于: 2023-12-03 15:34:03.394000             🧑  作者: Mango

Python PIL | ImageDraw.Draw.line()

简介

Python PIL(Python Imaging Library)是 Python 语言中用于图像处理的库,支持多种图片格式,包括PNG、JPEG、GIF等常见格式,提供了基本图形操作以及高级处理功能。ImageDraw 模块是 PIL 中的一个子模块,用于在图片上进行绘图。其中,line() 函数可以在图片上绘制直线。

使用方法

line() 函数的语法如下:

ImageDraw.Draw.line(xy, fill=None, width=0, joint=None)

其中,参数解释如下:

  • xy: 二元组列表,表示要绘制的直线的每一个端点的坐标。
  • fill: 直线的颜色。可以是表示颜色的字符串('red'、'green'等),也可以是一个RGB元组((R, G, B))等。
  • width: 直线的宽度。如果设置为0,表示直接绘制连接两个端点的线段。
  • joint: 直线连接部分的形状。可以是None'curve''round''bevel'等。如果为None,则仅绘制两端的线段,不做任何调整。

绘制简单的直线示例:

from PIL import Image, ImageDraw

image = Image.new(mode='RGB', size=(300, 200), color='#fff')
draw = ImageDraw.Draw(image)

draw.line((0, 0, 300, 200), fill='red', width=1)

image.show()

上述代码创建了一个300x200的白色图片,然后在该图片上用红色线条绘制了一条斜线。

示例

以下代码示例将会创建一张500x500的图片,然后用线条绘制出各种简单的几何图形:

from PIL import Image, ImageDraw

image = Image.new(mode='RGB', size=(500, 500), color='#fff')
draw = ImageDraw.Draw(image)

draw.line([(50, 50), (200, 50), (125, 175), (50, 50)], fill='red', width=1)
draw.line([(300, 50), (450, 50), (375, 175), (300, 50)], fill='orange', width=3, joint='curve')
draw.line([(50, 300), (125, 300), (125, 375), (50, 375), (50, 300)], fill='blue', width=5, joint='round')
draw.line([(300, 300), (450, 300), (450, 375), (375, 450), (300, 375)], fill='green', width=10, joint='bevel')

image.show()

代码中,我们绘制了4个不同颜色和形状的图形(分别是红色四边形、橙色凸出的菱形、蓝色带圆角的矩形和绿色带角度的矩形)。

结论

ImageDraw.Draw.line() 函数是 PIL 中用于在图片上绘制直线的函数,可用于绘制简单的几何图形等等。要使用该函数,需要了解它的语法和常用参数。本文给出了绘制简单直线和多种几何图形的示例,希望对读者有所帮助。