2009-03-08 4 views
0

자르기가 제대로 작동하지 않는 것 같습니다. 문제는 올바른 치수의 영역을 자르지 만 항상 전달 된 좌표 대신 왼쪽 위 모서리 (0, 0)입니다. PIL, 내가 인쇄 한 _ImageCrop 방법 ..에서 image.py에서파이썬, PIL, 자르기 문제

image = Image.open(input) 
region = image.crop((1000,400,2000,600) 
region.save(output) 

는 :

print x0, y0, x1, y1 
self.__crop = x0, y0, x1, y1 

값은 올바른 것 같다.

입력 한 크기가 1600x2390 인 JPEG 이미지입니다.

파이썬 버전 : 2.5, PIL 버전 : 1.1.6

어떤 제안? 감사합니다

답변

1

저의 경우 : Python 2.6.1, PIL 1.1.6, JPEG 크기 2020x1338 픽셀.

2390x1600이 아닌 1600x2390의 JPEG를 사용 하시겠습니까? (10004002000600) 상자 크기는 1600 와이드 이미지의 크기를 벗어납니다. 이걸 시도하면 교차 영역 밖에서 쓰레기 데이터가 나옵니다.

0

난`다음을 수행하십시오

cover=Image.open(path_to_cover+"/shablon1.jpg") 

....

def generit_nomer_proekt(self,nomer): 
    size_box=(160,40) 
    font=ImageFont.truetype('/home/vintello/workspace/mpg_to_dvd/src/cover/ttf/aricyr.ttf',int(30)) 
    im = Image.new ("RGB", size_box , "white") 
    draw = ImageDraw.Draw (im) 
    draw.text ((20,0), unicode(nomer,"utf-8"), fill="#74716f", font=font) 
    return im 

.....

nazv_vert=self.generit_nomer_proekt(nomer) 
coo=nazv_vert.size 
left_x=1575 
left_y=383 
box_vert_nazv=(left_x,left_y,left_x+coo[0],left_y+coo[1]) 
cover.paste(nazv_vert,box_vert_nazv) 

또는 경우에 늘 사용 과거 PNG로 :

cover.paste(nazv_vert,box_vert_nazv,nazv_vert)