You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python PIL库为图片添加文字以实现表情包生成功能?

表情包添加自定义文字实现方案

实现思路

  • 依赖PIL库的ImageDraw、ImageFont两个扩展模块完成文字绘制,已经安装PIL的话不需要额外安装依赖
  • 用内置input()函数获取用户输入的自定义文字,如果你做GUI工具可以替换为对应框架的输入框组件取值逻辑
  • 提前确定文字的绘制坐标(图片左上角为坐标原点,x轴向右为正,y轴向下为正)、字体、字号、颜色参数
  • 绘制完成后可直接预览或保存到本地

完整代码示例

from PIL import Image, ImageDraw, ImageFont

# 1. 打开表情包模板
im = Image.open("Two-Buttons.jpg")
# 获取图片宽高,方便后续计算文字位置
width, height = im.size

# 2. 获取用户输入的文字
top_text = input("请输入顶部文字:")
bottom_text = input("请输入底部文字:")

# 3. 配置字体参数,注意替换为你系统对应字体路径,避免中文乱码
# Windows系统字体路径示例:C:/Windows/Fonts/msyh.ttc(微软雅黑)
# Mac系统字体路径示例:"/Library/Fonts/SimHei.ttf"(黑体)
# Linux系统字体路径示例:"/usr/share/fonts/truetype/SimHei.ttf"
font = ImageFont.truetype("C:/Windows/Fonts/msyh.ttc", size=40)

# 4. 创建绘制对象
draw = ImageDraw.Draw(im)

# 5. 绘制文字,可自行调整坐标、颜色
# 绘制顶部居中文字
top_text_bbox = draw.textbbox((0, 0), top_text, font=font)
top_text_width = top_text_bbox[2] - top_text_bbox[0]
top_x = (width - top_text_width) / 2
top_y = 20 # 距离顶部20像素
draw.text((top_x, top_y), top_text, font=font, fill="white", stroke_width=2, stroke_fill="black")

# 绘制底部居中文字
bottom_text_bbox = draw.textbbox((0, 0), bottom_text, font=font)
bottom_text_width = bottom_text_bbox[2] - bottom_text_bbox[0]
bottom_x = (width - bottom_text_width) / 2
bottom_y = height - 60 # 距离底部60像素
draw.text((bottom_x, bottom_y), bottom_text, font=font, fill="white", stroke_width=2, stroke_fill="black")

# 6. 预览并保存
im.show()
im.save("生成的表情包.jpg")

可选调整说明

  • 要修改文字位置直接调整对应坐标参数即可,不需要居中的话可以直接写死x、y的固定数值
  • fill参数对应文字颜色,可传入RGB元组比如(255,0,0)代表红色
  • stroke_width和stroke_fill是文字描边参数,用来避免文字和背景色融在一起,不需要可以删掉这两个参数

内容的提问来源于stack exchange,提问作者Minnie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 23:36:06