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

使用Pillow的ImageDraw2.text()方法时遭遇参数错误求助

问题解决:ImageDraw2.text() 参数错误

你遇到的问题核心是用了小众的ImageDraw2模块,而非PIL官方标准的ImageDraw,两者的API参数规则完全不同,网上的教程几乎都是针对标准ImageDraw的,所以按教程用fill参数会报错。

解决方案1:改用标准ImageDraw(推荐)

直接替换成PIL官方维护的ImageDraw模块,你的代码只需要修改两处:

  1. 替换导入语句
  2. 修正Draw对象的初始化

修改后的完整代码:

import os
from PIL import Image, ImageFont, ImageDraw  # 替换ImageDraw2为ImageDraw

def OverlayImage(path):
    img = Image.open(path)
    Im = ImageDraw.Draw(img)  # 用标准ImageDraw初始化
    fill_color = (255, 255, 0)
    dafont = ImageFont.truetype('Memesique-Regular.ttf', 25)
    print("font done")
    Im.text((13, 37), "better work", font=dafont, fill=fill_color)  # 这里fill参数正常生效
    img.show()
    img.save("meme-image.jpg")

解决方案2:如果非要用ImageDraw2

ImageDraw2的text方法不支持fill或color关键字参数,颜色需要作为位置参数传入,放在文本内容之后:

# 修改text调用这一行即可
Im.text((13, 37), "better work", fill_color, font=dafont)

不过不推荐这个方案,因为ImageDraw2属于PIL的旧分支模块,现在几乎没有维护,资料极少,后续容易遇到更多兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:43:09