OUTILS POUR PROGRAMMER
Exemple de boucle en Python
For x in range (n) signifie Pour la valeur de x variant de 0 à n-1
(la boucle est effectuée n fois)
Attention pour savoir sur quelles instructions porte la boucle, il faut décaler les
instructions par rapport à la ligne for …
FICHE RESSOURCE : UTILISATION DE PYTHON POUR FABRIQUER OU
MODIFIER DES IMAGES
Python est un langage collaboratif ou l’ensemble des utilisateurs développent
des fonctions (sous-programmes) afin de simplifier la programmation.
L’ensemble de ses sous-programmes sont rassemblés dans des librairies.
éventuellement
FONCTION Action sur l’image
Variables
d’entrées
Sous-programme qui
réalise une action sur
l’image
Exemples de fonctions
Nom de la Nom de la variable où est
variable
contenant le
.
Img1 width stockée la valeur
Largeur=img1.width
fichier image
ex :img1
Stocke dans
une variable la
largeur en
pixels de
l’image
Nomfichier.jpg Image.open(« nomfichier.jpg »)
Ouvre l’image
enregistrée dans le
fichier jpeg appelé
nomfichier
Nom de la
variable où .
Img1 show()
est stockée
l’image.
Ex img1 Affiche l’image
Ex : img1
Nom de la
variable utilisée
pour img.save(« nom.jpg »)
sauvegarder
l’image
Sauvegarde l’image
dans un fichier jpeg
Nom de la
Nom de la variable où
.
variable
stocker la valeur
contenant le Img1 height
fichier image hauteur=img1.height
ex :img1
Détermine la hauteur de l’image en
pixels
Coordonnées du
pixel x et y Img.putpixel((x,y),(valeur
pour le rouge, pour le vert,
Code RVB de la
couleur que vous pour le bleu))
voulez appliquer
au pixel
Colorie un pixel en fonction du
code RVB
Valeur stockée Print(« valeur : »,variable,)
dans variable
Si variable = 10, Affiche
valeur : 10
Nom de la variable
.
qui contient le
Img1 getpixel((x,y)) r,v,b=img1.getpixel((15,56))
fichier image par
exemple img1
Coordonnée du
pixel x et y
Récupère les valeur du
code RVB d’un pixel et
enregistre les valeur
dans trois variables ici
appelée r,v,b
Exemple de programme utilisant ces instructions
from PIL import Image # Importe la bibliothèque PIL qui gère le traitement
# des images.
img = Image.open("pomme.jpg") # ouvre l'image enregistrée dans le fichier jpeg
# pomme et le stocke dans la variable img
largeur_image=img.width # Détermine la largeur en pixels de l'image
hauteur_image=img.height # Détermine la hauteur de l'image en pixels
print("définition de l'image :",largeur_image," x ",hauteur_image) # imprime la
#définition de l'image
img.show() # Affichage de l'image en question
Exécuter ce code dans EduPython
•Observer ce code.
•Que fait ce code?
• De la couleur aux pixels
•
•
Formation d’une image en couleur sur un écran numérique
➢ Couleur d’un pixel
from PIL import Image # importe la bibliothèque gérant les images
img = Image.new("RGB",(8,8)) #stocke dans la variable img une image de définition
8 x 8 pixels codée en rvb
for x in range (8): # boucles for imbriquées : pour chaque Valeur de x (de 0 à 7)
on fait :
for y in range (8): #pour chaque Valeur de y (les huits valeurs)
img.putpixel((x,y),(0,0,0)) #on colorie le pixel de coordonnée (x,y) en
noir
img.save("carrenoir.jpg") # on sauvegarde l’image crée au même endroit que le
fichier python
Dessinez un motif dans le quadrillage ci-dessous, en coloriant (en noir ou en couleur) quelques-unes des 64
cases.
créez un motif en modifiant le code Python précédent.
from PIL import Image
img = Image.new("RGB",(8,8))
for x in range (8):
for y in range (8):
img.putpixel((x,y),(255,255,255))
img.putpixel((6,1),(0,255,0)) #colore un pixel en une couleur verte
img.save("exemplequadrillage.jpg")
le pixel de coordonnées (6,1) se colorie en vert avec l’ajout de la ligne 8.
Sciences Numériques et Technologie – Page : 1
• De la couleur aux pixels
•
•
Notre méthode de création d’image possède pour l’instant deux inconvénients majeurs : l’image est bien
trop petite, et placer des pixels un par un est très fastidieux. Nous allons y remédier.
from PIL import Image
img = Image.new("RGB",(300,200))# On crée une image de taille 300 x 200.
for x in range (300):# double boucle for imbriquées pour colorier l’image en noir
for y in range (200):
img.putpixel((x,y),(0,0,0))
for x in range(50,150) : # entre x = 50 et 150 pour
img.putpixel((x,20),(156,61,207))#y = 20 on colorie les pixels ce qui donne
un trait
X= 50
X=150
Y=20
1. Copiez maintenant le code suivant :
from PIL import Image
img = Image.new("RGB",(300,300))# on crée une image de definition 300 x 300 pixels
en code rvb
for x in range (300): #on colorie tous les pixels du carré
for y in range (300):# avec la couleur
img.putpixel((x,y),(129,167,211))# correspondant au triplet (129,167,211)
for x in range (100,200):# pour tous les pixels comprise entre x=100 et x=200
for y in range (100,200): de coordonnées y compris entre y = 100 et y = 200
img.putpixel((x,y),(255,255,255))#on colorie en blanc
img.save("exempleCarre.jpg")
Sciences Numériques et Technologie – Page : 2
• De la couleur aux pixels
•
•
1. Exercice
Activité : A l’aide du code vu dans la partie précédente, concevez le drapeaux ci-dessous :
from PIL import Image
img = Image.new("RGB",(300,200))
for x in range (100):
for y in range (200):
img.putpixel((x,y),(0,0,255))
for x in range (100,200):
for y in range (200):
img.putpixel((x,y),(255,255,255))
for x in range (200,300):
for y in range (200):
img.putpixel((x,y),(255,0,0))
img.save("DrapeauFrancais.jpg")
Sciences Numériques et Technologie – Page : 3
• De la couleur aux pixels
•
•
Sciences Numériques et Technologie – Page : 4