Index de l'article

Création d'une image de 25 pixels avec des couleurs aléatoires

Script

from PIL import Image
from random import *

#taille image
largeur =5
hauteur=5

# creation image 5 pix² couleur aleatoire
img=Image.new("RGB",(largeur,hauteur),(255,255,255))

print("test 1 creation de l'image source - enregistrement 5par5pix-1.bmp")

for x in range (largeur):
    for y in range (hauteur):
        b=randint(0,255)
        v=randint(0,255)
        r=randint(0,255)

        img.putpixel((x,y),(r,v,b))
        print(x,y,r,v,b)
img.save("5par5pix-1.bmp")

Analyse

  • Importation des bibliothèques Pillow et random 
  • Affectation de la largeur et hauteur en pixels, vous pouvez les modifier
  • Création de l'image via la méthode new
  • Dans la boucle bornée, affectation d'une valeur entre 0 et 255 pour les variables r,v,b
  • Création des pixels pixel par pixel
  • Le print(x,y,r,v,b) n'est là que pour l'explication 
  • Sauvegarde de l'image sous le nom 5par5pix-1.jpg (correction 2023 - Utilisation du format bmp pour correspondance exact des valeurs des pixels sous GIMP)
    L
    'image est sauvegardée dans le dossier dans lequel vous lancer le script 

Script enregistrant les valeurs des points dans un fichier csv

import csv

from PIL import Image
from random import *

with open('5par5pix-1.csv', 'w', newline='') as csvfile:
    data = csv.writer(csvfile, delimiter=';')
    data.writerow(["coord_x","coord_y","rouge","vert","bleu"])
    

    #taille image
    largeur =5
    hauteur=5

    # creation image 5 pix² couleur aleatoire
    img=Image.new("RGB",(largeur,hauteur),(255,255,255))

    print("test 1 creation de l'image source - enregistrement 5par5pix-1.jpg")

    for x in range (largeur):
        for y in range (hauteur):
            b=randint(0,255)
            v=randint(0,255)
            r=randint(0,255)

            img.putpixel((x,y),(r,v,b))
            
            print(x,y,r,v,b)
            data.writerow([x,y,r,v,b])
            
    img.save("5par5pix-1.jpg")