使用Python在图像上添加文本 – PIL
在Python中打开图像、编辑图像、将该图像保存为不同格式的一个附加库,称为Python Imaging Library (PIL) 。使用这个 PIL,我们可以对图像进行很多操作,例如创建新图像、编辑现有图像、旋转图像等。对于添加文本,我们必须遵循给定的方法。
方法
- 导入模块
- 打开目标图像
- 使用图像对象添加文本属性
- 显示编辑过的图像
- 保存那张图片
Syntax: obj.text( (x,y), Text, font, fill)
Parameters:
- (x, y): This X and Y denotes the starting position(in pixels)/coordinate of adding the text on an image.
- Text: A Text or message that we want to add to the Image.
- Font: specific font type and font size that you want to give to the text.
- Fill: Fill is for to give the Font color to your text.
除此之外,我们还需要 PIL 的一些模块来执行此任务。我们需要 ImageDraw,它可以将 2D 图形(形状、文本)添加到图像中。此外,我们要求 ImageFont 模块添加自定义字体样式和字体大小。下面给出了向图像添加文本的实现。
使用的图像:
示例 1:向图像添加简单文本。 (没有自定义字体样式)
Python3
# 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")
Python3
# 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")
输出:
在这里您可以看到我们成功地将文本添加到图像但它不正确可见,因此我们可以添加 Font 参数以提供自定义样式。
示例 2:向图像添加简单文本。 (带有自定义字体样式)
蟒蛇3
# 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")
输出: