Dessiner des boucles

Travail dirigé
| Dimanche 01 Décembre 2024

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

Figure n°1
Figure n°2

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