当我使用PIL将农作物粘贴到另一个图像时,它会引发ValueError

时间:2019-03-09 13:36:54

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

我即将将2.jpg的一小部分粘贴到1.jpg

from PIL import Image
body = Image.open("1.jpg")
head = Image.open("2.jpg")
headbox = (0,0,30,30)

head.crop(headbox).save("head.jpg")
body.paste("head.jpg", (0,0)).save("out.jpg")

然后抛出错误

  ****************************************, line 8, in <module>
    body.paste("head.jpg", (0,0)).save("out.jpg")
  File "C:\Users\liton\Anaconda3\lib\site-packages\PIL\Image.py", line 1401, in paste
    "cannot determine region size; use 4-item box"
ValueError: cannot determine region size; use 4-item box

我使用pycharm和pthon 3.7,但没有看到任何语法错误。那么代码有什么问题

1 个答案:

答案 0 :(得分:0)

您应该将图像对象传递给'body.paste',但是,您只是传递一个字符串(图像名称)。因此,首先需要使用“ Image.open”打开图像,然后将其传递给“ body.paste”。同样,“ body.paste”不返回任何值,因此您不能直接使用“ save”方法。以下代码将解决您的问题:

from PIL import Image
body = Image.open("1.jpg")
head = Image.open("2.jpg")
headbox = (0,0,30,30)

head.crop(headbox).save("head.jpg")
head_crop = Image.open("./head.jpg")
body.paste(head_crop, (0,0))
body.save("out.jpg")