欢迎访问宙启技术站
智能推送

在图片上描绘文本的Python代码示例及使用方法

发布时间:2023-12-26 13:31:58

要在图片上描绘文本,可以使用Python的Pillow库。Pillow是一个强大的图像处理库,它可以用来加载、处理和保存不同格式的图像文件。

以下是一个使用Pillow库在图片上描绘文本的Python代码示例:

from PIL import Image, ImageDraw, ImageFont

# 打开图片文件
image = Image.open('example.jpg')

# 创建可绘图对象
draw = ImageDraw.Draw(image)

# 定义文本和字体
text = "Hello World"
font = ImageFont.truetype('arial.ttf', size=40)

# 确定文本位置
text_width, text_height = draw.textsize(text, font)
x = (image.width - text_width) // 2
y = (image.height - text_height) // 2

# 在图片上描绘文本
draw.text((x, y), text, fill=(255, 255, 255), font=font)

# 保存修改后的图片
image.save('output.jpg')

上述代码中,首先导入了需要的模块:Image用于打开、保存和操作图像文件,ImageDraw用于在图像上进行绘图,ImageFont用于加载字体文件。

接下来,使用Image.open()函数打开要处理的图片文件,创建一个可绘图对象draw,并指定要描绘的文本和字体。在这个例子中,我们指定了文本为"Hello World",字体为Arial,大小为40。

然后,通过调用draw.textsize()函数,计算出文本的宽度和高度。接下来,我们通过计算确定文本的位置,使其位于图片中心。最后,通过调用draw.text()函数,在图片上描绘文本。

最后,通过调用image.save()函数,保存修改后的图片文件。

下面是一个完整的使用例子:

from PIL import Image, ImageDraw, ImageFont

# 打开图片文件
image = Image.open('example.jpg')

# 创建可绘图对象
draw = ImageDraw.Draw(image)

# 定义文本和字体
text = "Hello World"
font = ImageFont.truetype('arial.ttf', size=40)

# 确定文本位置
text_width, text_height = draw.textsize(text, font)
x = (image.width - text_width) // 2
y = (image.height - text_height) // 2

# 在图片上描绘文本
draw.text((x, y), text, fill=(255, 255, 255), font=font)

# 保存修改后的图片
image.save('output.jpg')

在这个例子中,假设有一张名为example.jpg的图片文件,我们想在图片上描绘文本"Hello World"。运行上述代码后,会在同一目录下生成名为output.jpg的新图片文件,该图片文件在原有图片基础上绘制了文本。

注意,代码中的arial.ttf是字体文件的路径,需要根据实际情况进行修改。另外,fill=(255, 255, 255)表示文本的颜色为白色,可以根据需要进行修改。最后,可以根据实际需求调整文本的位置和大小。