Python PIL Coller
Je veux coller un tas d'images avec PIL. Pour une raison quelconque, quand je lance la ligne de blank.paste(img,(i*128,j*128))
j'obtiens l'erreur suivante: ValueError: cannot determine region size; use 4-item box
J'ai essayé de jouer avec elle et à l'aide d'un tuple avec les 4 éléments, comme il est dit (ex. (128,128,128,128)) mais il me donne cette erreur: SystemError: new style getargs format but argument is not a tuple
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.
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')
Comment puis-je obtenir que cela fonctionne?
Vous devez vous connecter pour publier un commentaire.
Vous n'êtes pas le chargement de l'image correctement. La fonction intégrée ouvert ouvre simplement un nouveau descripteur de fichier. Pour charger une image avec PIL, utilisez
Image.open
à la place:Si vous avez une raison d'utiliser le haut-ouvrir, puis faire quelque chose comme ceci:
Avec PIL, le "chargement" une image, c'est la lecture de l'image d'en-tête. PIL est paresseux, il ne charge pas les données réelles de l'image jusqu'à ce qu'il doit.
Aussi, envisager l'utilisation de os.chemin d'accès.rejoindre au lieu de concaténation de chaîne.
Cela a fonctionné pour moi, je suis à l'aide d'Odoo v9 et j'ai oreiller 4.0.
Je l'ai fait les étapes dans mon serveur avec ubuntu:
Pour moi les méthodes ci-dessus ne fonctionne pas.
Après vérification image.py j'ai trouvé que
image.paste(color)
a besoin d'un argument de plus commeimage.paste(color, mask=original)
. Il a bien fonctionné pour moi, en le modifiant pour cela: