首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用ImageDraw无法在图像上绘制线条

使用ImageDraw无法在图像上绘制线条
EN

Stack Overflow用户
提问于 2019-07-11 01:14:25
回答 1查看 587关注 0票数 0

我正在尝试使用PIL打开一个图像,然后在上面画一条线,但它不起作用。我正在试着做一个水平显示,线是用户水平提升的程度。

我已经尝试使用Image.new创建一个新图像,并且已经有了一个可用的库,并使用Image.open打开它,我还尝试将坐标直接放入函数中,然后将两个元组作为变量放入函数中,并将这些变量调用到函数中(如下所示)。基础图像是透明图像。

代码语言:javascript
运行
复制
    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,什么也没有。没有线或任何东西。

EN

回答 1

Stack Overflow用户

发布于 2019-07-11 01:32:17

当您处理包含透明度的图像时(PIL中的模式为"RGBA“),您必须显式地传递一个不透明度作为颜色的第四个分量。只需添加"255",意思是100%不透明的填充颜色,在你的行调用中,它应该可以工作:

代码语言:javascript
运行
复制
draw.line((pos1, pos2), fill=(255, 102, 168, 255), width=20)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56975623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档