7.7 : Création d'une image numérique par programmation
Présentation de l'activité
Il est possible, à l'aide d'un logiciel adapté (comme www.photopea.com que nous avons utilisé dans plusieurs des activités précédentes), de modifier une image.
Pour certaines de ces modifications, en particulier celles qui concernent les couleurs, le logiciel utilise des algorithmes adaptés.
Dans cette activité, nous n'allons pas utiliser un logiciel de dessin, mais programmer directement quelques algorithmes de modification des couleurs d'une image en utilisant le langage Python.
Le code Python de base
Présentation
Le langage de programmation Python permet de créer et modifier des images numériques.
Voici le code de base pour y parvenir.
from PIL import Image # Création des constantes qui pourront être utilisées dans tout le programme LARGEUR = 60 HAUTEUR = 40 BLANC = (255, 255, 255) NOIR = (0, 0, 0) ROUGE = (255, 0, 0) # Création d'un objet programmable de type Image appelé imagePython imagePython = Image.new('RGB', (LARGEUR, HAUTEUR), BLANC) # Modification de quelques pixels de l'objet imagePython imagePython.putpixel((0, 0), NOIR) imagePython.putpixel((1, 0), NOIR) imagePython.putpixel((2, 0), NOIR) # Ouverture de l'objet imagePython dans un logiciel pour le visualiser imagePython.show()
Le schéma ci-dessous précise la façon dont sont déterminées les coordonnées \((x, y)\) des pixels dans les objets de type Image.
Application n° 1
• Ouvrir le logiciel Thonny et copier-coller le code ci-dessus. Enregistrer le fichier avec le nom '7.7_prog1.py'.
• Lancer l'exécution du programme.
• Bien lire les commentaires du programme (lignes qui commencent par #) pour comprendre le code.
Application n° 2
• Dans le logiciel Thonny, ouvrir un nouveau fichier et y copier le code précédant. Enregistrer le fichier avec le nom '7.7_prog2.py'.
• Modifier le programme pour qu'il crée un objet de type Image :
- - de 60 pixels de large et 40 pixels de haut,
- - dont la couleur de font est le vert,
- - avec un carré noir de 2 pixels sur 2 au centre.
Application n° 3
• Dans le logiciel Thonny, ouvrir un nouveau fichier et y copier le code de base. Enregistrer le fichier avec le nom '7.7_prog3.py'.
• Modifier le code pour que le programme crée l'image ci-dessous de 12 pixels de large sur 3 pixels de haut.
Utilisation des boucles
Application n° 4
from PIL import Image # Chargement de l'image LARGEUR = 12 HAUTEUR = 3 BLANC = (255, 255, 255) NOIR = (0, 0, 0) ROUGE = (255, 0, 0) # Création d'un objet programmable de type Image appelé imagePython imagePython = Image.new('RGB', (LARGEUR, HAUTEUR), BLANC) # Modification de quelques pixels for x in range(12): # imagePython.putpixel((x,0), ROUGE) # Ouverture de l'objet de type Image dans le logiciel pour la visualiser imagePython.show()
La ligne 14 a deux effets :
- - la variable
xprend successivement les valeurs de 0 à 11 ; - - la ligne 15 est répétée pour chacune des valeurs de
x.
A faire
• Ouvrir un nouveau fichier et y copier le code ci-dessus. Enregistrer le fichier avec le nom '7.7_prog4.py'
• Lancer l'exécution du programme.
• Modifier le code pour obtenir l'image de l'application n° 3.
Application n° 5
On souhaite obtenir l'image ci-dessous de 3 pixels de large et 36 pixels de haut.
A faire
• Ouvrir un nouveau fichier et y copier le code ci-dessus. Enregistrer le fichier avec le nom '7.7_prog5.py'
• Écrire le code qui permet d'obtenir l'image souhaitée.
Application n° 6 (difficile)
On souhaite obtenir une image de taille 300 sur 200, avec un fond blanc et un contour bleu.
A faire
• Ouvrir un nouveau fichier et y copier le code ci-dessus. Enregistrer le fichier avec le nom '7.7_prog6.py'
• Écrire le code qui permet d'obtenir l'image souhaitée.
Pour aller plus loin
Application n° 7
Créer le programme '7.7_prog7.py' qui permet d'obtenir une image de 50 pixels sur 50, à fond bleu avec une diagonale magenta descendante.
Application n° 8 (difficile)
Créer le programme '7.7_prog8.py' qui permet d'obtenir une image de 50 pixels sur 50, à fond bleu avec les deux diagonales en magenta.