Les images numériques sont constituées d'un ensemble de points appelés Pixels (Picture element). Une image est donc représentée par une matrice de pixels.
La couleur de chaque pixel est défini à partir des 3 composantes de couleurs élémentaires que sont le Rouge, le Vert et le Bleu.
Chaque composante est codée sur 1 octet ce qui correspond à 256 nuances (de 0 la plus foncée à 255 la plus claire).
Ce qui permet de coder 256 x 256 x 256 = 16 777 216 (16 millions de couleurs).
Ces 3 composantes sont représentées le plus souvent par les sigles RVB (en français) et RGB (en anglais Red/Green/Bleue) et sont codées en héxadécimal.
Suivre ce lien pour mieux comprendre les composantes RGB ...Un fichier image contient la taille de l'image (largeur et hauteur) ainsi que les valeurs des composantes RGB de chaque pixels.
Lorsque l'on manipule une image avec python chaque pixel est donc représenté par les 3 composantes RGB.
Pour bien comprendre comment parcourir tous les pixels d'une image (double boucle) :forimage2 animation
from PIL import Image
# ouverture de l'image
# remarque : img1 est un nom de variable, vous pouvez mettre un autre nom à la place .
img1=Image.open("perruche.jpg")
# Récupération de la largeur et de la hauteur de l'image en pixels :
largeur,hauteur=img1.size
# ouverture d'une nouvelle image
# remarque : img2 est un nom de variable , vous pouvez mettre un autre nom à la place .
imgFinal=Image.new('RGB',(largeur,hauteur))
# pour chaque ligne :
for y in range(hauteur):
#pour chaque colonne :
for x in range(largeur):
# Récupération des composantes RGB du pixel courant (triplet r,g,b).
r,g,b = img1.getpixel((x, y))
imgFinal.putpixel((x, y), (r,g,b))
# sauvegarde de img2 :
imgFinal.save("perruche2.jpg" )
# on montre l"image :
imgFinal.show()
( Christophe Béasse - Février 2019 )