2011-04-19 37 views
7

嘿,伙计们。这可能已经被问过一百万次了,但我在这里遇到了一些麻烦。用PIL,我试图从图像中复制一个矩形,并将其粘贴到另一个。这是我的代码。如何从一个图像裁剪并粘贴到另一个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: images do not match

做任何你知道修复这个?

回答

11

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

要修复您的代码来获得一个30×30作物:

box = (70, 70, 100, 100) 

分解成组成部分:

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

这个伎俩!谢谢。 – Nick 2011-04-19 23:38:41

2

对于未来的访客:这个错误也可能出现如果box参数paste包含float s而不是int s。

+0

谢谢,这是最糟糕的一种失败 - 间歇性故障!大多数情况下'paste'都可以和浮游物一起使用,但偶尔也不会。 – fraxel 2012-11-24 22:40:03

相关问题