ValueError: not enough image data avec PIL

ValueError: not enough image data avec PIL - Python - Programmation

Marsh Posté le 31-03-2019 à 19:22:02    

Bonjour, je viens vers vous parce que j'ai un léger soucis avec mon programme python.
En effet, j'utilise PIL pour convertir des matrices en images, et il s'avère que je reçoit l'erreur "ValueError: not enough image data"
Pourtant elle n'arrive pas dans les autres programmes où j'utilise PIL, j'ai beau chercher, je ne trouve pas grand chose: A L'AIDE
 

Code :
  1. def hauteurTerrain(T,n,h):
  2.     """crée une image pour représenter le terrain"""
  3.     T=terrain_coline(n,h)
  4.     couleurs=[(0,120,0)]
  5.     for i in range (h+1):
  6.         a=120-i
  7.         couleurs.append((0,a,0))
  8.     couleurs=[''.join([chr(j) for j in couleur]) for couleur in couleurs]
  9.     img_str=''
  10.     for ligne in range (2*n-1):
  11.         for colonne in range(n-1):
  12.             img_str +=couleurs[T[ligne,colonne]]
  13.     img=Image.frombytes("RGB",(n,2*n),bytes(img_str, 'ASCII'))
  14.     #Sauvegarde en PNG
  15.     img.save("C:\\Users\\François 2\\Desktop\\TIPE\\propagation python\\terrain.png", "PNG" )
  16.     print(T)
  17.     return img


 
Celui-ci fonctionne par contre:

Code :
  1. def image(M,n,destination):
  2.     """crée une image pour représenter l'état du feu"""
  3.     #couleurs
  4.     couleurs=[(0,127,0),(127,0,0),(48,48,48)]
  5.     #convertion en code ASCII
  6.     couleurs=[''.join([chr(x) for x in couleur]) for couleur in couleurs]
  7.     #Construction chaine avec les valeurs de M
  8.     img_str=''
  9.     for ligne in range (2*n-1):
  10.         for colonne in range(n-1):
  11.             img_str +=couleurs[M[ligne,colonne]]
  12.     #création de l'image
  13.     img=Image.frombytes("RGB",(n,2*n),bytes(img_str, 'ASCII'))
  14.     #Sauvegarde en PNG
  15.     img.save(destination, "PNG" )
  16.     return img

 
 
Merci d'avance pour votre aide qui sera précieuse!!

Reply

Marsh Posté le 31-03-2019 à 19:22:02   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed