ISN TP 9 : « Gérer des images en Python
Transcription
ISN TP 9 : « Gérer des images en Python
Nom : Classe : ISN TP 9 : « Gérer des images en Python … » 04/12/2015 Le module Tkinter dispose d’un widget nommé Canvas destiné à dessiner dans une fenêtre. 1) Le widget Canvas Pour créer un Canvas nommé canevas, on fait comme pour les autres widget On peut ajouter des options bg pour la couleur du fond, height et width précisant respectivement la hauteur et la largeur. 2) Dessiner sur un Canvas a) Une ligne Les deux premières coordonnées sont celles du premier point, les deux suivantes celles du deuxième. Les coordonnées sont relatives au Canvas pas à celles de l’écran. Le paramètre fill permet d’indiquer la couleur On peut aussi préciser l’épaisseur avec le paramètre width b) Un rectangle Les deux premières coordonnées sont celles du sommet en haut à gauche, les deux suivantes celles du sommet en bas à droite. Le paramètre ouline permet d’indiquer la couleur du bord et fill celle du fond. c) Une ellipse ou un cercle Permet de dessiner une ellipse (ou un cercle) dans un rectangle (ou un carré) imaginaire qui possède les mêmes options que create_rectangle. d) Afficher du texte On peut préciser : la couleur du text avec la paramètre fill la police utilisée et la taille avec font par exemple la position du texte avec anchor. Par défaut il est centré autour du point précisé. Exercice 1 : Réaliser un programme affichant simplement cet écran : 3) Placer des images sur un Canvas Il existe différents formats d’images. Le module Tkinter travaille très bien avec les images au format GIF (non animées). Ce sont des images en 256 couleurs. Pour placer une image : On charge d’abord l’image dans une variable globale (ici fichierimage) avec : Evidemment il faut avant copier sur le répertoire de travail le fichier lune.gif On place l’image au point de coordoonées x y sur le canevas Exercice 2 : Ajouter un père Noël sur l’image avec les boules de neige. Vous pouvez récupérer mon fichier « PereNoel.gif » ou en récupérer un sur internet. 4) Modifier des items en cours de programme Diverses méthodes sur le widget Canvas permettent de modifier les propriétés des items placées Canevas.delete(item) Efface l’item du canevas Canevas.delete(ALL) Efface tout ce qui se trouve sur le canavas Canevas.coords(item,x,y) ou Canevas.coords(item,x1,y1,x2,y2) Modifie les coordonnées de l’item Canevas.itemconfig(item,options) Modifie une ou plusieurs options de l’item Canevas.itemcget(item,prop) C’est une fonction qui renvoi la valeur de la propriété prop de l’item Par exemple Exercice 3 : Dans le programme bataille de boules de neige, ajoutez un bouton qui, quand on clique dessus fait glisser le père Noël de la gauche vers la droite. Exercice 4 : Créer un programme qui ouvre une fenêtre avec une coccinelle et quatre boutons qui permettent de la déplacer dans les quatre directions. Selon le déplacement de la coccinelle, l’image sera modifiée pour que la coccinelle regarde toujours devant elle. Vous pouvez récupérer coccinelleH.gif, coccinelleD.gif, coccinelleB.gif et coccinelleG.gif ou les fabriquer à votre guise à partir d’une image récupérée sur internet (format GIF et taille 100x100). 5) Profondeur des objets Comme vous avez pu le remarqué, les objets images se superposent dans l’ordre dans lequel ils ont été créés. On peut modifier cet ordre grâce à deux méthodes : Canevas.tag_raise(objet) permet de placer l’objet au premier plan. Canevas.tag_lower(objet) permet de placer l’objet en arrière plan.