Transformer une matrice en image [Résolu]

Signaler
-
Messages postés
31660
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
22 avril 2021
-
Bonjour,
J'aurais besoin de savoir comment convertir une matrice en image.
J'ai a disposition une matrice carrée de 20 par 20, et je voudrais que chaque chiffre de cette matrice soit transformé en carré (pas forcement de la taille d'un pixel) de couleur.
Par exemple, une matrice 3 par 3 telle que
[0, 0 , 0]
[0, 000090, 0]
[0, 0, 0]

formerait une image toute noire sauf au centre un carré bleu (correspond au code RGB)
Je m'excuse par avance si mes propos ne sont pas suffisamment clairs
Merci de vos réponses.

Configuration: Windows / Chrome 89.0.4389.114

1 réponse

Messages postés
31660
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
22 avril 2021
7 575
Bonjour,

Il existe peut être dans la bibliothèque des fonctions pour le faire ? mais à la main :

from PIL import Image
liste = [[0, 0, 255],[0, 90, 65535],[0, 0, 16777215]]
coef = 100
image = Image.new("RGB",(len(liste[0])*coef,len(liste)*coef))
for ligne,col in [(x,y) for x in range(len(liste)) for y in range(len(liste[0]))]:
    couleur = liste[ligne][col]
    couleurs = (couleur//(256*256),(couleur-(couleur//(256*256))*256*256)//256,couleur%256)
    for x,y in [(x,y) for x in range(coef) for y in range(coef)]:
        image.putpixel((col*coef+x, ligne*coef+y), couleurs)
image.show ()
image.save('image.png')