Page 3 sur 6
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")