Nous avons dessiner dans le TD précédent, pixel par pixel. Ce qui peut s'avèrer extrémement long pour de grandes images. Heureusement, Python est capable de répéter les mêmes instructions, de tourner en boucles.
1. Quelques codes à tester
a) Avec deux lignes de couleurs
Il est possible de répéter une ligne de code en utilisant la commande for.
On indique le nom de la variable qui augmente (on appelle cela un compteur) et l'intervalle des valeurs qui est parcouru.
Ici, range(256) signifie tous les nombres entiers entre 0 et \( 256 \).
from PIL import Image
image = Image.new("RGB", (256, 256))
for x in range(256):
image.putpixel((x, 7), (255, 0, 0))
for y in range(256):
image.putpixel((10, y), (255, 255, 0))
image.save("image.png")À vous de jouer : décrire ce que fait le programme.
b) Beaucoup de lignes de couleurs
Il est possible d'imbriquer les boucles for les unes dans les autres !
from PIL import Image
image = Image.new("RGB", (256, 256))
for x in range(128):
for y in range(256):
image.putpixel((2*x, y), (255, 0, 0)) # Nombres pairs
image.putpixel((2*x+1, y), (0, 0, 255)) # Nombres impairs
image.save("image.png")À vous de jouer !
Décrire avec précision ce que fait le programme.
Où est l'illusion ?
c) Colorier en dégradé
La couleur indiquée à chaque pixel peut dépendre de ses coordoonées : c'est ainsi que l'on construit les dégradés.
from PIL import Image
image = Image.new("RGB", (256, 256))
for x in range(256):
for y in range(256):
image.putpixel((x, y), (0+x, 0, 0))
image.save("image.png")À vous de jouer : décrire ce que fait le programme.
2. Travail à rendre


Voici deux figures réalisées à l'aide de dégradés.
Saurez-vous retrouver leurs codes sources ?
Références
[SNT Ababsurdo] https://snt.ababsurdo.fr/la-photographie-numerique/pixelart/
[Pixees] https://pixees.fr/informatiquelycee/sec/s9.html
