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

Python PIL库ImageDraw.text设置stroke_fill报类型错误如何解决

PIL绘制文字stroke_fill参数报错修复方案

报错原因

TypeError: color must be int or single-element tuple

你创建的fontimage1为L模式(8位单通道灰度图像),该模式下绘制操作的所有颜色参数仅支持0~255区间的整数,或单元素数值元组。你为stroke_fill传入了三元素RGB元组(0, 0, 0),不符合单通道图像的参数规范,因此触发类型错误。

修复方法

直接修改text方法的stroke_fill参数取值,将三元素RGB值替换为对应灰度的整数值即可。
修改前的代码行:

ImageDraw.Draw(fontimage1).text((0,0),str(label1),stroke_width=10, stroke_fill=(0, 0, 0), fill=255, font=font)

修改后的代码行:

ImageDraw.Draw(fontimage1).text((0,0),str(label1),stroke_width=10, stroke_fill=0, fill=255, font=font)

取值0对应L模式下的纯黑色,和你原本想要设置的(0, 0, 0)RGB黑色显示效果完全一致,同时符合单通道图像的参数要求。
如果后续需要使用彩色描边,可以将fontimage1的创建模式改为RGB,但修改后的彩色图像无法直接作为paste方法的mask参数使用,需要单独提取灰度层作为掩码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:54:07