详解如何在Python中用pillow在图片上添加文字

  • Post category:Python

下面为你详细讲解如何在Python中使用pillow库在图片上添加文字的步骤:

1. 安装Pillow库

在使用Pillow库之前,需要先在Python环境中安装它。使用pip命令可以很方便地进行安装:

pip install pillow

当然,你也可以使用其他Python包管理器进行安装,如conda、easy_install等。

2. 创建Image对象

使用Pillow库添加文字前,需要先将图片转换为Image对象。Pillow库提供了Image模块用于处理图像数据。我们可以使用open()方法打开一张图片,然后将其转换为Image对象。

from PIL import Image

# 打开一张图片
img = Image.open('example.jpg')

# 打印图片的大小和格式
print(img.size, img.format)

3. 创建Draw对象

在Image对象上添加文字需要使用到Draw对象。我们可以使用ImageDraw模块中的Draw()方法来创建Draw对象,并且将Image对象作为参数传递给Draw()方法。

from PIL import Image, ImageDraw, ImageFont

# 打开一张图片
img = Image.open('example.jpg')

# 创建一个Draw对象
draw = ImageDraw.Draw(img)

4. 添加文字到图片中

有了Image对象和Draw对象之后,我们就可以在图片上添加文字了。ImageDraw对象提供了text()方法用于添加文字,其中包括需要添加的文字内容、文字位置、文字颜色和字体。

from PIL import Image, ImageDraw, ImageFont

# 打开一张图片
img = Image.open('example.jpg')

# 创建一个Draw对象
draw = ImageDraw.Draw(img)

# 添加文字到图片中
text = 'Hello, world!'
position = (50, 50)
color = (255, 0, 0)
font = ImageFont.truetype('arial.ttf', 36)
draw.text(position, text, color, font=font)

# 保存图片
img.save('example_with_text.jpg')

上面的代码中,我们首先定义了需要添加的文字、文字的位置、文字的颜色和字体。然后使用text()方法将文字添加到图片中,并指定了字体。最后使用save()方法保存添加了文字的图片。

5. 更多示例

下面给出另一个示例,展示如何在多个位置添加不同颜色和大小的文字。

from PIL import Image, ImageDraw, ImageFont

# 打开一张图片
img = Image.open('example.jpg')

# 创建一个Draw对象
draw = ImageDraw.Draw(img)

# 添加不同颜色和大小的文字到图片中
text_list = ['Hello', 'world!', 'Python']
position_list = [(50, 50), (50, 100), (50, 150)]
color_list = [(255, 0, 0), (0, 255, 0), (0, 0, 255)]
font_list = [ImageFont.truetype('arial.ttf', 36),
             ImageFont.truetype('arial.ttf', 48),
             ImageFont.truetype('arial.ttf', 60)]
for i, text in enumerate(text_list):
    position = position_list[i]
    color = color_list[i]
    font = font_list[i]
    draw.text(position, text, color, font=font)

# 保存图片
img.save('example_with_text_2.jpg')

上面的代码中,我们首先定义了需要添加的文字、文字的位置、文字的颜色和字体。然后使用循环遍历每一个需要添加的文字,并根据颜色和字体分别进行添加。

经过上面的步骤后,我们就可以在Python中使用Pillow库在图片上添加文字了。