2011-04-19 4 views
7

안녕하세요. 이것은 아마 백만 번 질문을 받았지만, 여기서 약간의 문제가 있습니다. PIL을 사용하여 이미지에서 사각형을 복사하여 다른 이미지에 붙여 넣으려고합니다. 이것은 내 코드입니다.한 이미지에서 잘라내어 PIL로 다른 이미지에 붙여 넣는 방법

ValueError: images do not match

당신의 모든이에 대한 수정 프로그램을 알고 있습니까 :

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") 

그리고 난이 오류를 받고 있어요?

답변

11

PIL 자르기 상자는 픽셀 좌표의 4- 튜플로 정의됩니다. (left, upper, right, lower).

box = (70, 70, 100, 100) 

구성 요소로 분해 :

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

그건 속임수 였어! 감사. – Nick

2

미래 방문자 :

는 30x30 작물을 얻을 수 있도록 코드를 해결하려면 pastebox 인수가 포함 된 경우이 오류가 올 수있다 int s 대신 float s입니다.

+0

고마워요, 이것은 최악의 종류의 실패입니다 - 간헐적 인 잘못! 대부분의 경우'붙여 넣기 '는 수레로 잘 작동하지만 때로는 그렇지 않습니다. – fraxel

관련 문제