python TypeError:color必须为int或单元素元组

bvk5enib  于 2023-06-28  发布在  Python
关注(0)|答案(2)|浏览(781)

以下是遇到的错误:
TypeError:color必须为int或单元素元组
下面是我正在运行的代码:

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont, ImageOps

label1 = "VIKRAM"
font = ImageFont.truetype('D:/vikram/pythonProject/fonts/BalloonCraft-9YBK7.ttf', 800)
line_height = sum(font.getmetrics())
fontimage1 = Image.new('L', (font.getsize(label1)[0], line_height))
ImageDraw.Draw(fontimage1).text((0,0),str(label1),stroke_width=10, stroke_fill=(0, 0, 0), fill=255, font=font)
fontimage1 = fontimage1.rotate(90, resample=Image.NEAREST, expand=True)
orig = Image.open('F:/desktop/Kitty/PSI Hello Kitty Theme Personalized Door Poster-1.png')
orig.paste((135, 255, 135), box=(2200, 1500), mask=fontimage1)
orig.show()

ImageDraw.Draw中的stroke_fill参数出现错误。
我该怎么解决这个问题?

blmhpbnm

blmhpbnm1#

我相信当你把'L'放在Image.new中时,你的图像将是灰度的,因此你不能为stroke_fill指定RGB元组,因为你只有黑色阴影。如错误消息中所指定的,您必须使用int或单个元组。

yzuktlbb

yzuktlbb2#

我有一个更好的方法来处理这个错误
任何时候,当你有colorstroke_fill参数,总是使用字符串,如'红','绿','黑'
对于上面的代码,可以这样做

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

相关问题