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

Python PIL的ImageDraw.text报'str无getmask2属性'错误如何解决?

错误原因
  • 你代码中传给ImageDraw.text()的font参数是字符串类型的字体文件路径,而该参数要求接收ImageFont实例对象,字符串本身没有getmask2方法,因此触发属性错误。
  • 额外疏漏:你定义的字体大小变量size=100、用户输入的RGB颜色变量colour都没有实际生效,属于逻辑冗余。
修复方案

你需要先调用ImageFont.truetype()方法,把字体路径和字号传入,生成符合要求的ImageFont实例后再使用,修复后的完整代码如下:

from PIL import Image, ImageDraw, ImageFont

image = Image.open('C:\\Users\\User\\Downloads\\marple.jpg') 

input_text = 'Hey gys'
font_path = 'C:\\Windows\\Fonts\\Fira Code\\FiraCode-Regular.ttf' 
size = 100
# 生成ImageFont实例
font = ImageFont.truetype(font_path, size)

colour = [1,2,3]
for i in range(0,3):
    colour[i] = int(input(f'Colour (RGB value {i + 1}) : '))
colour = tuple(colour)
type_text = ImageDraw.Draw(image)
# 传入font实例,使用用户输入的颜色值
type_text.text((0,0), input_text, font=font, fill=colour)
image.show()

如果运行时提示找不到字体文件,你可以检查字体路径拼写是否正确,或者直接把字体文件复制到代码同级目录,直接传字体文件名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:48:03