2009-03-08 12 views
0

Impossible de faire fonctionner la culture correctement, le problème est, il recadre une région de dimensions correctes, mais toujours à partir du coin supérieur gauche (0, 0), au lieu de mes coordonnées passées.Python, PIL, problème de récolte

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

Dans image.py de PIL, la méthode _ImageCrop j'ai imprimais ..:

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

Les valeurs semblent corrects.

L'entrée est une image JPEG de taille 1600x2390.

Python version: 2.5, la version PIL: 1.1.6

Toutes les suggestions? Merci

Répondre

1

Travaux pour moi: Python 2.6.1, PIL 1.1.6, JPEG de taille 2020x1338 pixels. Etes-vous sûr de vouloir dire un JPEG de 1600x2390 et non de 2390x1600? Les dimensions de la boîte (1000, 400, 000, 600) sont en dehors de la taille d'une image de 1600; Si j'essaie, j'obtiens des données sur les ordures en dehors de la zone d'intersection.

0

`m Etape suivante

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) 

ou si vous l'habitude PNG utilisation passée:

cover.paste(nazv_vert,box_vert_nazv,nazv_vert)