python - "New style getargs format but argument is not a tuple"枕头图片粘贴错误

标签 python python-3.x python-imaging-library

我正在使用 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/

相关文章:

python - 一键阻止打开多个窗口

Python 3.6 类型 : Using variable before assignment

Python:创建带有可移动图钉的 map

python - 在 pyglet 或 PIL/python 中从远程服务器加载图像

python PIL YCbCr 支持

Python - scikit_learn 中的克里金法(高斯过程)

python - 从源代码安装Python 3.1.2,如何解决sqlite3-dev依赖关系?

python - 抽象类的错误 "__init__ method from base class is not called"

python - 并行处理 - 池 - Python

返回多个返回值的函数的 Python 类型提示