SNT, TP noté sur l’image

1. Mise en place ( 5 points )

  • créer un dossier « TP_note » dans votre dossier personnel SNT,
  • ouvrir Thonny et copier-coller le code ci-dessous,
  • enregistrer votre programme en le nommant « TP_Mondrian »,dans votre dossier « TP_note »,
  • exécuter votre programme.
from PIL import Image # on importe la classe Image et ses méthodes de la
# bibliothèque Pillow alias PIL
couleur=(255,255,255)
bord=3
image=Image.new('RGB',(600,400) , color=couleur)


def taille():
    return image.size

def lire_pixel(x,y):
    return image.getpixel((x,y))

def changer_pixel(x,y,r,v,b):
    image.putpixel((x,y),(r,v,b))
    return image

def afficher():
    image.show()

def rectangle(x_debut,y_debut,x_fin,y_fin):
    global image
    (l, h) = taille()
    for y in range(y_debut,y_fin):
        for x in range(x_debut,x_fin):
            image=changer_pixel(x,y,0,0,0)
    for y in range(y_debut+bord,y_fin-bord):
        for x in range(x_debut+bord,x_fin-bord):
            image=changer_pixel(x,y,couleur[0],couleur[1],couleur[2])

    afficher()

def effacer():
    (l,h)=taille()
    for y in range(0,h-1):
        for x in range(0,l-1):
            image=changer_pixel(x,y,255,255,255)

def enregistrer():
    image.save("mon_image.bmp")
    image.save("mon_image.jpg")
    image.save("mon_image.png")

2. Découverte des commandes.

Après avoir exécuter votre programme, tester les commandes suivantes.


>>> taille()
>>> afficher()
>>> couleur
>>> couleur=(100,100,100)
>>> rectangle(0,0,200,100)
>>> couleur=(150,150,150)
>>> rectangle(300,300,600,400)
>>> effacer()
>>> afficher()
>>> couleur=(100,100,100)
>>> rectangle(100,100,200,300)

3. Travaux pratiques ( 10 points ).

En utilisant les commandes précédentes et en vous inspirant de la photo de l’oeuvre de Mondrian qui illustre cet article, créer 10 rectangles.

Il devra y avoir 2 rectangles rouges, 2 rectangles blancs, 2 rectangles bleus, 2 rectangles jaunes et 2 rectangles noirs.

Vous enregistrerez votre production à l’aide de la commande :

>>> enregistrer()

4. Poids des images. ( 5 points )

En utilisant la commande :

>>> taille()

Répondre aux questions suivantes sur votre copie :
1) Quel est le poids théorique de votre image en ko.?

2) Comparez avec les 3 images qui figurent dans votre dossier.
Pourquoi n’ont-elles pas le même poids ? Quelle est l’image la plus légère ? Pourquoi ?