ImageDraw 和 ImageFont 功能及代码使用详解
在Python的图像处理库Pillow中,ImageDraw
和 ImageFont
是两个非常强大的模块,它们可以用来在图像上进行绘制操作和文本渲染。
ImageDraw 模块
ImageDraw
模块提供了简单的二维图形绘制功能,包括绘制线条、矩形、椭圆、多边形、圆形等基本图形,以及在图像上添加文本。
功能:
- 绘制线条:使用
line()
方法。 - 绘制矩形:使用
rectangle()
方法。 - 绘制椭圆和圆形:使用
ellipse()
方法。 - 绘制多边形:使用
polygon()
方法。 - 绘制文本:使用
text()
方法,需要配合ImageFont
使用。
代码示例:
from PIL import Image, ImageDraw, ImageFont
# 创建图像对象
image = Image.new('RGB', (200, 100), color=(255, 255, 255))
draw = ImageDraw.Draw(image)
# 绘制文本
font = ImageFont.truetype("arial.ttf", 15)
draw.text((10, 10), "Hello, PIL", fill=(0, 0, 0), font=font)
# 显示图像
image.show()
ImageFont 模块
ImageFont
模块用于定义字体对象,这些对象可以被 ImageDraw
模块中的 text()
方法使用来在图像上绘制文本。
功能:
- 加载TrueType或OpenType字体:使用
truetype()
方法。 - 获取文本的尺寸:使用
getsize()
方法。
代码示例:
from PIL import Image, ImageDraw, ImageFont
# 创建图像对象
image = Image.new('RGB', (300, 150), color=(255, 255, 255))
draw = ImageDraw.Draw(image)
# 加载字体
font = ImageFont.truetype('arial.ttf', size=36)
# 绘制文本
draw.text((50, 50), 'Hello, PIL', fill=(0, 0, 0), font=font)
# 显示图像
image.show()