Aller au contenu

Chargement et passage en nuances de gris avec Pillow

Installation de Pillow

Il nous faut vérifier que Pillow est installé sur votre ordinateur, et que Thonny y a accès.

Ouvrez Thonny, et exécutez le code suivant :

from PIL import Image

Si le code ne produit aucune erreur, Pillow (ou PIL) est déjà installé, et donc vous n'avez rien besoin de faire, vous pouvez passer à la section suivante : mise en place du projet. Sinon, suivez les intructions ci-dessous.

Dans Thonny, utilisez le menu en haut à droite pour accéder à Outils > Gérer les paquets.

Recherchez Pillow.

recherche pillow

Repérez Pillow dans la liste des résultats, et cliquez dessus.

select pillow

Dans la fenêtre suivante, cliquez sur Installer.

Une fois l'étape terminée, exécutez le code suivant dans Thonny :

from PIL import Image

Il devrait terminer sans erreur. Sinon, demandez de l'aide au professeur.

Mise en place du projet

Créez un fichier python asciimage.py.

Enregistrez la photo de chien ci-dessous1 à côté du fichier.

chien

Vous pouvez aussi la télécharger en cliquant sur ce lien

Chargement et affichage

Charger et afficher une image avec Pillow/PIL est très simple.

On importe le module Image depuis PIL :

from PIL import Image

Ensuite, on appelle la fonction open du module Image, qui prends en paramètre le nom du fichier et retourne une valeur de type Image.

img = Image.open("chien.jpg")

Pour afficher une image, on appelle la méthode show du type Image, qui ne prends aucun paramètre, et qui affiche une image dans un outils de visualisation externe. Celà peut prendre quelques secondes.

img.show()

Mis ensemble, ça donne :

from PIL import Image

img = Image.open("chien.jpg")
img.show()

Pour tester

Pour vérifier que ce code marche, on l'exécute, et on vérifie que l'image de chien apparaît bien dans un logiciel externe.

Conversion en nuances de gris

Pillow/PIL permet de convertir les images dans différents formats de couleur, avec la méthode convert. Elle prends en paramètre une chaîne de caractères représentant un format (dans notre cas, un L pour les nuances de gris), et retourne une copie de l'image dans le nouveau format de couleurs:

On appelle la conversion en nuances de gris une désaturation.

nuances_gris = img.convert("L") ## L permet de convertir en nuances de gris

Activité

Modifiez le code du chapitre précédent de manière à ce qu'il affiche l'image de chien en nuances de gris.

On ajoute la ligne nuances_gris = img.convert("L"), et on change l'image qu'on affiche :

from PIL import Image

img = Image.open("chien.jpg")
nuances_gris = img.convert("L")
nuances_gris.show()

Comme on n'a pas besoin de l'image originale, on aurait pu écraser sa valeur avec la nouvelle image :

from PIL import Image

img = Image.open("chien.jpg")
img = img.convert("L")
img.show()