9
votes

Python Pil Coller

Je veux coller un tas d'images avec PIL. Pour une raison quelconque, quand j'exécute la ligne Blank.Paste (IMG, (I * 128, J * 128)) Code> I Obtenir l'erreur suivante: ValueError: impossible de déterminer la taille de la région; Utilisez 4-item Box Code>

J'ai essayé de jouer avec elle et d'utiliser un tuple avec 4 éléments comme celui-ci tel que celui-ci (ex. (128 128 128,128)), il me donne cette erreur: SystemError: nouveau style getargs Format Mais l'argument n'est pas un tuple code> p>

Chaque image est 128x et a un style de nommage de "x_y.png" où x et y sont de 0 à 39. Mon code est ci-dessous. P >

from PIL import Image

loc = 'top right/'
blank = Image.new("RGB", (6000,6000), "white")

for x in range(40):
    for y in reversed(range(40)):
        file = str(x)+'_'+str(y)+'.png'
        img = open(loc+file)
        blank.paste(img,(x*128,y*128))

blank.save('top right.png')


0 commentaires

3 Réponses :


5
votes

Vous ne chargez pas correctement l'image. La fonction intégrée Ouvrir ouvre simplement un nouveau descripteur de fichier. Pour charger une image avec PIL, utilisez image.open code> à la place: xxx pré>

Si vous avez une raison d'utiliser l'ouverture intégrée, alors faites quelque chose comme ceci: P>

fin = open("bride.jpg") # open the file
img = Image.open(fin) # "load" the image from the opened file


1 commentaires

Cela a fonctionné, merci. Je savais que ça allait être quelque chose de stupide comme ça.



6
votes

Cela a fonctionné pour moi, j'utilise Odoo V9 et j'ai oreiller 4.0.

Je l'ai fait sur mon serveur avec Ubuntu: P>

# pip uninstall pillow
# pip install Pillow==3.4.2
# /etc/init.d/odoo restart


0 commentaires

1
votes

Pour moi, les méthodes ci-dessus n'ont pas fonctionné.

Après avoir vérifié image.py j'ai trouvé que image.paste (couleur) a besoin d'un argument de plus comme < code> image.paste (couleur, masque = original) . Cela a bien fonctionné pour moi en le changeant à ceci: xxx


0 commentaires