用PIL在图片上叠加文本

5 投票
1 回答
9567 浏览
提问于 2025-04-17 06:12

我想在图片上写一些文字(可能还想加点简单的效果,比如阴影)。我该怎么用PIL来实现这个呢?

1 个回答

5

首先安装 Python 图像库(可以用命令 pip install Pillow 来安装)。

注意:你可能需要修改字体文件的路径 font_fname

import numpy as np
import PIL
import PIL.Image as Image
import PIL.ImageDraw as ImageDraw
import PIL.ImageFont as ImageFont

font_fname = '/usr/share/fonts/truetype/freefont/FreeSansBold.ttf'
font_size = 200
font = ImageFont.truetype(font_fname, font_size)

h, w = 1080, 1920
bg_colour = (255, 255, 255)
bg_image = np.dot(np.ones((h,w,3), dtype='uint8'), np.diag(np.asarray((bg_colour), dtype='uint8')))
image0 = Image.fromarray(bg_image)
draw = ImageDraw.Draw(image0)
draw.text((530, 160), "hello world", font=font, fill='rgb(0, 0, 0)')
image0.save('hello_world.jpg')

撰写回答