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

  • Post category:Python

当然可以,在Python中使用Pillow库可轻松实现在图片上添加文字。

下面是在Python中使用Pillow库在图片上添加文字的攻略:

确认安装Pillow库

在使用Pillow之前,首先需要确认是否安装了该库。可使用以下命令确认是否已经安装:

pip list | grep Pillow

如果输出了Pillow的版本信息,表示已安装,否则需要使用以下命令安装:

pip install Pillow

开始添加文字

创建图像和图像字体

要添加文字,需要先创建一张图像。我们可以使用一些Pillow库中的模块来创建图像,比如:

from PIL import Image, ImageDraw, ImageFont

image = Image.new(mode='RGBA', size=(500, 500), color=(255, 255, 255, 0))

代码中,用Image.new()函数创建了一个RGBA颜色模式的图像,大小为(500, 500)像素,背景色为白色,透明度为0。

接下来,我们需要创建字体,也就是将同意的字体渲染到图像上。可以使用以下代码创建字体:

font = ImageFont.truetype("arial.ttf", 24)

其中“arial.ttf”是字体文件的路径,24是字体大小。

创建绘图对象

接下来,我们需要将图像放到绘图对象上,这样在绘图对象上进行的操作都将体现在图像上,可使用以下代码创建绘图对象:

draw = ImageDraw.Draw(image)  

添加文本

现在,我们准备在新创建的图像上添加一些文本。在Pillow库中,ImageDraw类有一个text()方法可用来在图像上添加文本,代码如下:

text = "Hello, World!"
color = (0, 0, 0, 255)
draw.text((100, 100), text, font=font, fill=color)

代码中,我们定义了一个字符串变量text,设置了文本的颜色color,然后将文本添加到图像中心点(100, 100)。

保存图像

完成了文本的添加,最后一步是将图像保存到文件中。这可通过以下代码来实现:

image.save("text_image.png")

代码中,我们使用save()方法将编辑后的图像保存到文件中,文件名为“text_image.png”。

示例代码

下面是一个完整的示例代码,可根据自己的需求进行修改和调整:

from PIL import Image, ImageDraw, ImageFont

# Create new image
image = Image.new(mode='RGBA', size=(500, 500), color=(255, 255, 255, 0))

# Create font
font = ImageFont.truetype("arial.ttf", 24)

# Create draw object
draw = ImageDraw.Draw(image)  

# Define text and color
text = "Hello, World!"
color = (0, 0, 0, 255)

# Draw text on image
draw.text((100, 100), text, font=font, fill=color)

# Save image
image.save("text_image.png")

另一个示例代码,在图片的右下角添加一行文本水印,代码如下:

from PIL import Image, ImageDraw, ImageFont

# Open the image
img = Image.open("image.jpg")

# Create draw object
draw = ImageDraw.Draw(img)

# Create font
font = ImageFont.truetype("arial.ttf", 50)

# Define text and color
text = "Text Watermark"
color = (255, 255, 255, 80)

# Get the size of the image and the size of the text
width, height = img.size
text_width, text_height = draw.textsize(text, font=font)

# Calculate the position of the text
x = width - text_width - 10
y = height - text_height - 10

# Draw text on image
draw.text((x, y), text, font=font, fill=color)

# Save image
img.save("watermarked_image.png")

这段示例代码是在打开名为“image.jpg”的图片后,在图片的右下角添加一行文本水印并保存新的图片。这段代码中涉及到Pillow库的许多功能,例如打开图片、获得图像大小、绘制文本等。