Twitter iPhone pliant OnePlus 12 PS5 Disney+ Orange Livebox Windows 11 ChatGPT

[PIL] putdata vs putpixel

1 réponse
Avatar
julien_hillairet
Bonjour à tous,


Je ne comprends pas le fonctionnement de putdata de la librairie Image
(PIL) :
Je dispose d'une matrice de la taille de mon image (N,N) : color

le code suivant, permettant d'attribuer à chaque pixel la couleur
issue de la matrice color, fonctionne bien (mais est lente):

for i in range(N):
for j in range(N):
im.putpixel((i,j), color[i][j])

Tandis que la méthode suivante, ne fonctionne pas

im.putdata(color);

Il n'y a pas de message d'erreur, mais les pixels de l'image restent
désepérement à 0 (vu par im.getdata()) !

Quelqu'un a t il une explication sur mon erreur d'utilisation de
putdata ?


Merci d'avance

Julien Hillairet

1 réponse

Avatar
Hillairet Julien
Le Fri, 27 Aug 2004 07:18:01 -0700, Julien Hillairet a écrit :

Bonjour à tous,


Je ne comprends pas le fonctionnement de putdata de la librairie Image
(PIL) :
Je dispose d'une matrice de la taille de mon image (N,N) : color

le code suivant, permettant d'attribuer à chaque pixel la couleur
issue de la matrice color, fonctionne bien (mais est lente):

for i in range(N):
for j in range(N):
im.putpixel((i,j), color[i][j])

Tandis que la méthode suivante, ne fonctionne pas

im.putdata(color);

Il n'y a pas de message d'erreur, mais les pixels de l'image restent
désepérement à 0 (vu par im.getdata()) !

Si ca interesse du monde, j'ai trouvé la solution : Image necessite un

tableau à une seule dimension.

Pour utiliser putdata, il faut auparavant utiliser un color.flat() ou
ravel(color)

Le package SciPy donne aussi des commandes permettant la conversion
Matrice<-->Images.

Voilà