如何从一个图像裁剪并使用PIL粘贴到另一个图像

时间:2011-04-19 22:17:16

标签: python python-imaging-library paste crop

嘿,伙计们。这可能已被问过一百万次了,但我在这里遇到了一些麻烦。使用PIL,我试图从图像中复制一个矩形,然后将其粘贴到另一个图像中。这是我的代码。

import Image
ii = Image.open("ramza.png")
box = (70, 70, 30, 30)
region = ii.crop(box)
io = Image.open("template.png")
io.paste(region, box)
io.save("output.png")

我收到了这个错误:

  

ValueError:图片不匹配

你们中的任何一个人都知道解决这个问题吗?

2 个答案:

答案 0 :(得分:14)

PIL裁剪框定义为4元组像素坐标: (left, upper, right, lower)

修复代码以获得30x30作物:

box = (70, 70, 100, 100)

细分为组件:

x, y, w, h = (70, 70, 30, 30)
box = (x, y, x + w, y + h)

答案 1 :(得分:2)

对于将来的访问者:如果box的{​​{1}}参数包含paste而不是float,则可能会出现此错误。