Thème : La photographie

Exercice 1 : Fabriquer une image en couleur avec Python

Question

En utilisant le début de programme donné ci-contre ainsi que les lignes de code données en indice comme base de travail, fabriquer pixel par pixel l'image proposée puis l'enregistrer sous le nom de mario au format jpeg.

Indice

Lignes de code dans le désordre à utiliser une ou plusieurs fois en modifiant les paramètres des fonctions :

  • bleu=(0,0,255)

  • rose=(255,153,204)

  • mario.putpixel((3,0),rouge)

  • mario.putpixel((4,3),noir)

  • mario.show()

  • mario.putpixel((2,2),rose)

  • mario.putpixel((3,2),bleu)

Indice
  • Déterminer les coordonnées de tous les pixels de couleur rouge, puis fabriquer tous les pixels de la couleur rouge

  • Déterminer les coordonnées de tous les pixels de couleur rose puis ...

Solution

Correction du programme Mario :

1
from PIL import Image       #Cette ligne est indispensable pour travailler les images
2
3
mario=Image.new("RGB",(8,8),"white")        #On définit une image de taille 8x8, en mode RGB de fond blanc
4
5
rouge=(255,0,0)        #On définit la couleur rouge
6
bleu=(0,0,255)       #On définit la couleur bleu
7
noir=(0,0,0)         #On définit la couleur noir
8
rose=(255,153,204)     #On définit la couleur rose
9
10
mario.putpixel((2,0),rouge)     #On met le pixel de coordonnées (2;0) à la couleur rouge
11
mario.putpixel((3,0),rouge)
12
mario.putpixel((4,0),rouge)
13
mario.putpixel((5,0),rouge)
14
mario.putpixel((2,1),rouge)
15
mario.putpixel((3,1),rouge)
16
mario.putpixel((4,1),rouge)
17
mario.putpixel((6,1),rouge)
18
mario.putpixel((1,4),rouge)
19
20
mario.putpixel((6,4),rouge)
21
22
mario.putpixel((4,3),noir)  #On met le pixel de coordonnées (4;3) à la couleur noir
23
mario.putpixel((5,3),noir)
24
mario.putpixel((2,7),noir)
25
mario.putpixel((5,7),noir)
26
27
mario.putpixel((3,2),bleu)
28
mario.putpixel((5,2),bleu)
29
mario.putpixel((2,4),bleu)
30
mario.putpixel((4,5),bleu)
31
32
for i in range(2,6):        #Pour écrire moins de ligne, on utilise une double boucle for pour mettre plusieurs pixels de l'image en bleu
33
    for j in range(4,7):
34
        mario.putpixel((i,j),bleu)
35
36
mario.putpixel((3,4),rouge)
37
mario.putpixel((4,4),rouge)
38
39
mario.putpixel((2,2),rose)
40
mario.putpixel((4,2),rose)
41
mario.putpixel((0,4),rose)
42
mario.putpixel((7,4),rose)
43
mario.putpixel((2,3),rose)
44
mario.putpixel((3,3),rose)
45
46
mario.save("mario.png","png")   #On enregistre l'image obtenue sous le nom de mario au format png
47
mario.save("mario.jpeg","jpeg") #On enregistre l'image obtenue sous le nom de mario au format jpeg
48
49
mario.show()        #On montre l'image contenue dans la variable mario

Fichier en téléchargement :

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimerRéalisé avec Scenari (nouvelle fenêtre) modèle documentaire TechnOpale