使用Python在图片上添加文本 – PIL
在Python中,要打开一个图像,进行图像编辑,以不同的格式保存该图像,需要一个额外的库,称为Python图像库(PIL)。使用这个PIL,我们可以对图像进行许多操作,如创建一个新的图像,编辑一个现有的图像,旋转一个图像,等等。对于添加文本,我们必须遵循给出的方法。
步骤
- Import module
- 打开目标图像
- 使用图像对象添加文本属性
- 显示编辑过的图像
- 保存该图像
语法: obj.text( (x,y), Text, font, fill)
参数:
- (x, y):这个X和Y表示在图像上添加文本的起始位置(像素)/坐标。
- Text: 我们想添加到图片上的文本或信息。
- font:你想赋予文本的具体字体类型和字体大小。
- fill:填充是为了给你的文本提供字体颜色。
除此以外,我们还需要PIL的一些模块来完成这一任务。我们需要ImageDraw,它可以在图像上添加2D图形(形状、文字)。此外,我们还需要ImageFont模块来添加自定义字体样式和字体大小。下面是在图片上添加文本的实现。
使用的图片:
例子1:在图片上添加一个简单的文字。(没有自定义字体样式)
# Importing the PIL library
from PIL import Image
from PIL import ImageDraw
# Open an Image
img = Image.open('car.png')
# Call draw Method to add 2D graphics in an image
I1 = ImageDraw.Draw(img)
# Add Text to an image
I1.text((28, 36), "nice Car", fill=(255, 0, 0))
# Display edited image
img.show()
# Save the edited image
img.save("car2.png")
输出:
在这里,你可以看到我们成功地将文本添加到图片上,但它没有正确的可见性,所以我们可以添加字体参数来给出一个自定义样式。
例子2:在图片上添加一个简单的文字。(使用自定义字体样式)
# Importing the PIL library
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
# Open an Image
img = Image.open('car.png')
# Call draw Method to add 2D graphics in an image
I1 = ImageDraw.Draw(img)
# Custom font style and font size
myFont = ImageFont.truetype('FreeMono.ttf', 65)
# Add Text to an image
I1.text((10, 10), "Nice Car", font=myFont, fill =(255, 0, 0))
# Display edited image
img.show()
# Save the edited image
img.save("car2.png")
输出: