要在Python中使用pillow在图片上添加文字,可以按照以下步骤进行:
第一步:导入PIL库
在Python中使用pillow需要先导入相应的库,可以使用以下代码:
from PIL import Image, ImageDraw, ImageFont
第二步:打开图片并创建图片对象
使用Pillow中的Image类可以打开图片,例如:
img = Image.open('example.jpg')
第三步:创建字体对象
使用Pillow中的ImageFont类创建字体对象。通常情况下,我们需要设置字体的样式、大小等参数。例如:
font = ImageFont.truetype('arial.ttf', size=36)
这里使用的是arial字体,大小为36。
第四步:创建画笔对象
使用Pillow中的ImageDraw类创建画笔对象,在画笔对象中可以设置文本的颜色、填充色等。例如:
draw = ImageDraw.Draw(img)
第五步:使用画笔对象添加文本
使用刚刚创建的画笔对象,在图片上添加文本。一般情况下,需要设置文本的位置、文本内容、字体等参数。例如:
text = "Hello, World!"
position = (100, 100)
color = (255, 0, 0) # 文本颜色为红色
draw.text(position, text, font=font, fill=color)
第六步:保存修改后的图片
在添加文本之后,需要使用Image类中的save方法来保存修改后的图片。例如:
img.save('example_with_text.jpg')
示例一
接下来,我们来看一个完整的示例。假设我们有一张图片example.jpg,我们需要在该图片的右上角添加一段文本。代码如下:
from PIL import Image, ImageDraw, ImageFont
# 打开图片并创建图片对象
img = Image.open('example.jpg')
# 创建字体对象
font = ImageFont.truetype('arial.ttf', size=36)
# 创建画笔对象
draw = ImageDraw.Draw(img)
# 添加文本
text = "Hello, World!"
position = (img.width - font.getsize(text)[0], 0)
color = (255, 0, 0) # 文本颜色为红色
draw.text(position, text, font=font, fill=color)
# 保存修改后的图片
img.save('example_with_text.jpg')
示例二
下面再来一个示例。假设我们需要在图片中央添加一段文本,并设置文本的颜色、字体、背景色等。代码如下:
from PIL import Image, ImageDraw, ImageFont
# 打开图片并创建图片对象
img = Image.open('example.jpg')
# 创建字体对象
font = ImageFont.truetype('arial.ttf', size=72)
# 创建画笔对象
draw = ImageDraw.Draw(img)
# 添加文本
text = "Pillow"
position = (img.width // 2, img.height // 2)
color = (255, 0, 0) # 文本颜色为红色
bg_color = (255, 255, 255) # 背景色为白色
text_size = draw.textsize(text, font=font)
text_pos = (position[0] - text_size[0] // 2, position[1] - text_size[1] // 2)
draw.rectangle([text_pos, (text_pos[0] + text_size[0], text_pos[1] + text_size[1])], fill=bg_color)
draw.text(text_pos, text, font=font, fill=color, align='center')
# 保存修改后的图片
img.save('example_with_text.jpg')
这个示例中,我们选择了白色作为文本背景色,并使用了align参数来设置文本对齐方式。