📜  Python PIL | ImageDraw.Draw.text()(1)

📅  最后修改于: 2023-12-03 15:04:07.439000             🧑  作者: Mango

Python PIL | ImageDraw.Draw.text()

简介

ImageDraw模块可以用来在图像上绘制各种形状和文本。其中ImageDraw.Draw.text()函数用于在图像上绘制文本。

语法
ImageDraw.Draw.text(xy, text, **options)

参数说明:

  • xy:一个二元组,表示文本的左上角的坐标。
  • text:要绘制的文本。
  • options:可选参数,包含以下选项:
    • font:要使用的字体。可以是一个文件名(即字体的路径)或一个PIL字体对象。默认为None,表示使用默认字体。
    • fill:文本的颜色。可以是一个颜色字符串(如"red")或一个RGB元组(如(255,0,0))。默认为None,表示使用黑色。
示例
from PIL import Image, ImageDraw, ImageFont

# 创建一张纯色背景图
image = Image.new(mode="RGB", size=(400, 200), color=(255, 255, 255))

# 在图像上绘制一个文本
draw = ImageDraw.Draw(image)
text = "Hello, PIL"
xy = (100, 80)
font = ImageFont.truetype("arial.ttf", 36)
fill = "black"
draw.text(xy, text, font=font, fill=fill)

# 展示图像
image.show()

此示例创建了一张400x200的白色背景图,并在其中绘制了一个黑色的"Hello, PIL"文本。具体步骤为:

  • 创建一张纯色背景图。
  • 使用ImageDraw.Draw()函数创建一个可绘制对象。
  • 定义文本的内容、位置、字体和颜色等参数。
  • 在图像上绘制文本。
  • 显示图像。

运行以上代码,您将看到以下图像:

示例图像

注意事项
  • 使用font参数指定字体时,如果该字体不在系统路径下,则需要指定字体文件的路径。
  • fill参数可使用颜色字符串或RGB元组表示,具体可参考PIL官方文档。
  • 在绘制文本时,如果文本内容过长,可能会超出图像的边界,导致部分文本被截断。建议通过调整文本的位置和大小等参数来解决该问题。
参考链接