python - 使用 ImageDraw 不会在图像上绘制线条
问题描述
我正在尝试使用 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
,什么都没有。没有线什么的。
解决方案
当您使用包含透明度的图像(PIL 中的“RGBA”模式)时,您必须明确传递不透明度作为颜色的第四个分量。只需在调用行中添加“255”,即填充颜色为 100% 不透明度,它应该可以工作:
draw.line((pos1, pos2), fill=(255, 102, 168, 255), width=20)
推荐阅读
- matlab - Matlab中PCA分数的计算
- r - 如何根据数据撰写网络分析论文
- android - 如何在 Android 11 中管理文件和文件夹以保持向后兼容性
- gis - 确定地理多边形经度方向
- javascript - chrome.tabs.onUpdated changeInfo.status === 'complete' 触发太快
- javascript - 如何找到特定 Web 应用程序使用的工具包/框架?
- ios - 获取当前的颜色信息。我在 xcode 中的自定义视图
- virtual-machine - Veeam 备份到磁带方案
- r - 循环中的单向方差分析
- r - 在R中切出部分列