我正在使用 Pillow 库为我的 friend 创建《权力的游戏》角色的随机宾果表,并创建一个 PNG 背景表来粘贴我找到的图像的缩略图。但是,当我将《权力的游戏》角色(比如说艾莉亚)的随机图片粘贴到背景图像上并定义用于粘贴的区域时,我收到错误“新样式 getargs 格式,但参数不是元组”,并且代码失败。
我使用的是Python 3.6.6,也尝试了3.6.5,使用Pip和Conda在每个版本上重新安装Pillow(现在有Pillow 5.1.0和Pillow 6.0.0)我尝试编写粘贴直接坐标而不是使用变量,并更改我粘贴到的图像类型并直接从 PNG 粘贴到 JPEG,看看这是否会改变它定义坐标的方式,但没有运气。
我还尝试将变量重新转换为元组,尽管它已经是,但仍然不起作用。在文档中,它说如果您将该区域留空,它应该自动经过左上角到 (0,0),但是当我这样做时,我收到一条错误消息,告诉我输入框坐标。它还说如果你使用 2 元组而不是 4 坐标它应该可以工作,但是返回一个错误告诉我使用 4 元组。
bingo = Image.new("RGB",(740,740), color=(10,10,10))
size = 128,128
arya = Image.open("arya_edit.jpg") #arya 1
arya = arya.thumbnail(size)
box = (10,10,138,138)
#tried box = tuple(box)
bingo.paste(arya, box)
Arya 的照片应该占据背景图像的左上角,但每次都返回错误。我不明白这个错误是从哪里来的。
最佳答案
您的代码问题不在于 paste
行,而在于您制作缩略图的方式。 Image.thumbnail
method就地修改 Image
并返回 None
,因此当您运行 arya = arya.thumbnail(size)
时,您将覆盖您的引用使用 None
到新调整大小的图像,这当然不是您想要的。
该 None
值会按照您所描述的方式破坏您以后的代码。您可以通过仅调用 thumbnail
而不将其返回值分配给任何内容来避免这种情况:
arya = Image.open("arya_edit.jpg")
arya.thumbnail(size) # don't assign here, it modifies the image in place
关于python - "New style getargs format but argument is not a tuple"枕头图片粘贴错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55820610/