2011-04-19 77 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

相關問題