下面是使用Python在图片上添加文本的完整攻略:
准备工作
首先,需要安装Python以及PIL(Pillow)库,可以使用以下命令安装:
pip install pillow
加载图片
在添加文本之前,需要先加载图片。使用PIL库的Image模块即可实现。以下是加载图片的示例代码:
from PIL import Image
img = Image.open('test.jpg')
添加文本
在图片上添加文本需要用到PIL库的ImageDraw模块。以下是在图片上添加文本的示例代码:
from PIL import Image, ImageDraw, ImageFont
# 加载图片
img = Image.open('test.jpg')
# 创建绘制对象
draw = ImageDraw.Draw(img)
# 设置文本内容、字体和颜色
text = "Hello World"
font = ImageFont.truetype("arial.ttf", 36)
color = (255, 0, 0)
# 获取文本尺寸
text_width, text_height = draw.textsize(text, font=font)
# 计算文本位置
x = (img.width - text_width) / 2
y = (img.height - text_height) / 2
# 绘制文本
draw.text((x, y), text, fill=color, font=font)
# 保存图片
img.save("result.jpg")
在上述示例代码中,首先加载了名为"test.jpg"的图片;然后创建了一个绘制对象,并设置文本内容为"Hello World"、字体为Arial、字号为36、颜色为红色;接着计算文本位置并在相应位置绘制文本;最后保存绘制后的图片为"result.jpg"。
示例
以下是如何在图片中添加多行文本的示例代码:
from PIL import Image, ImageDraw, ImageFont
# 加载图片
img = Image.open('test.jpg')
# 创建绘制对象
draw = ImageDraw.Draw(img)
# 设置文本内容、字体和颜色
text = "Hello World\nThis is a test"
font = ImageFont.truetype("arial.ttf", 36)
color = (255, 0, 0)
# 分割文本行
lines = text.split('\n')
# 计算文本位置
x = 50
y = 50
# 绘制文本
for line in lines:
text_width, text_height = draw.textsize(line, font=font)
draw.text((x, y), line, fill=color, font=font)
y += text_height + 10
# 保存图片
img.save("result.jpg")
在上述示例代码中,设置了文本内容为"Hello World\nThis is a test",其中使用换行符分割成多行文本;计算文本位置时,设置x和y坐标的初始值分别为50;在绘制每行文本时,逐行计算文本位置,并将y坐标按上一行文本高度和10递增;保存绘制后的图片为"result.jpg"。
希望以上内容对你有所帮助,如果还有疑问,请告诉我。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解使用Python在图片上添加文本 - Python技术站