PIL - 在图像上绘制多行文本

作者:编程家 分类: python 时间:2025-07-11

使用Python的PIL库,我们可以在图像上绘制多行文本。这个功能在许多应用中都非常有用,比如制作海报、生成带有文字的图片等等。下面我们将介绍如何使用PIL库在图像上绘制多行文本,并提供一个案例代码来演示这个功能。

首先,我们需要安装PIL库。可以使用以下命令来安装:

pip install Pillow

安装完成后,我们可以开始编写代码。首先,导入所需的库:

python

from PIL import Image, ImageDraw, ImageFont

接下来,我们需要加载要绘制文本的图像。可以使用以下代码来加载图像:

python

image = Image.open("image.jpg")

在加载图像之后,我们需要创建一个可以绘制文本的对象。可以使用以下代码创建一个`ImageDraw`对象:

python

draw = ImageDraw.Draw(image)

接下来,我们需要选择一个合适的字体和字号。可以使用以下代码来选择字体和字号:

python

font = ImageFont.truetype("arial.ttf", size=12)

在选择了字体和字号之后,我们可以开始绘制文本了。可以使用以下代码来绘制多行文本:

python

text = "这是一段示例文本,用于演示在图像上绘制多行文本的功能。\n这是第二行文本。"

text_color = (255, 255, 255) # 文本颜色为白色

text_position = (10, 10) # 文本位置为图像的左上角

draw.multiline_text(text_position, text, font=font, fill=text_color)

在上述代码中,`text`变量存储了要绘制的文本内容。使用`\n`来表示换行。`text_color`变量存储了文本的颜色,这里我们选择了白色。`text_position`变量存储了文本的位置,这里我们将文本放在图像的左上角。

最后,我们需要保存绘制好的图像。可以使用以下代码来保存图像:

python

image.save("output.jpg")

以上就是使用PIL库在图像上绘制多行文本的方法。下面我们来看一个完整的案例代码。

案例代码:

python

from PIL import Image, ImageDraw, ImageFont

# 加载图像

image = Image.open("image.jpg")

# 创建绘制文本的对象

draw = ImageDraw.Draw(image)

# 选择字体和字号

font = ImageFont.truetype("arial.ttf", size=12)

# 绘制多行文本

text = "这是一段示例文本,用于演示在图像上绘制多行文本的功能。\n这是第二行文本。"

text_color = (255, 255, 255) # 文本颜色为白色

text_position = (10, 10) # 文本位置为图像的左上角

draw.multiline_text(text_position, text, font=font, fill=text_color)

# 保存图像

image.save("output.jpg")

在本文中,我们介绍了如何使用PIL库在图像上绘制多行文本。通过加载图像、创建绘制文本的对象、选择字体和字号以及绘制文本,我们可以在图像上添加任意多行的文本内容。这个功能在许多应用中都非常有用,帮助我们制作出更加丰富多样的图片。