我正在尝试使用PIL打开一个图像,然后在上面画一条线,但它不起作用。我正在试着做一个水平显示,线是用户水平提升的程度。
我已经尝试使用Image.new
创建一个新图像,并且已经有了一个可用的库,并使用Image.open
打开它,我还尝试将坐标直接放入函数中,然后将两个元组作为变量放入函数中,并将这些变量调用到函数中(如下所示)。基础图像是透明图像。
length = 300 # Used as a placeholder integer, as this would change depending on user's level
base = Image.open('./level_up/base.png')
draw = ImageDraw.Draw(base)
pos1 = (280, 324)
pos2 = (280, length + 324)
draw.line((pos1, pos2), fill=(255, 102, 168), width=20)
base.save('./level_up/base2.png')
我打开图像,这是一个空白的,透明的图像,是1500 x 296
,什么也没有。没有线或任何东西。
发布于 2019-07-11 01:32:17
当您处理包含透明度的图像时(PIL中的模式为"RGBA“),您必须显式地传递一个不透明度作为颜色的第四个分量。只需添加"255",意思是100%不透明的填充颜色,在你的行调用中,它应该可以工作:
draw.line((pos1, pos2), fill=(255, 102, 168, 255), width=20)
https://stackoverflow.com/questions/56975623
复制相似问题