Python et la bibliothèque de traitement d'images Pillow

Python Imaging Library (abrégé en PIL) (dans les nouvelles versions dénommées Pillow) est une bibliothèque gratuite pour le langage de programmation Python, qui prend en charge l’ouverture, la manipulation et l’enregistrement de nombreux formats de fichier image. Il est disponible pour Windows, Mac OS X et Linux. La dernière version de PIL, la 1.1.7, a été publiée en septembre 2009 et prend en charge Python 1.5.2–2.7, la prise en charge de Python 3 devant être publiée "plus tard". Le développement semble avoir été interrompu avec le dernier commit dans le référentiel PIL à venir en 2011. Par conséquent, un projet successeur appelé Pillow a créé le référentiel PIL et ajouté le support Python 3.x.Ce fork a été adopté en remplacement de PIL Distributions Linux, y compris Debian et Ubuntu



1 - Pillow et manipulation d'images sur une fenêtre Tkinter

1.1-  La bibliothèque Pillow

Pour traiter les images, Python dispose d'une librairie nommée Pillow. Pillow constitue actuellement un fork successeur du projet PIL (Python Imaging Library). Elle est conçue de manière à offrir un accès rapide aux données contenues dans une image, elle est doté d'un pouvoir magique et puissant pour le traitement et la manipulation des différents formats de fichiers images tels que PNG, JPEG, GIF, TIFF et BMP...

1.2- Installation de la bibliothèque Pillow

La bibliothèque Pillow s'installe d'une façon très simple à l'aide de l'utilitaire pip:

pip install pillow

2- Insertion d'image à l'aide de la bibliothèque Pillow

Maintenant que la bibliothèque Pillow est installé, elle peut être utilisée pour insérer et manipuler des images au sein d'une fenêtre Tkinter. Pour ce faire, il suffit de l'importer et de créer un objet image à partir d'un fichier :

# -*- coding: utf-8 -*-
from PIL import Image, ImageTk

# Création de l'objet image
load = Image.open("chemin_vers_le_fichier_images")

# Création de la photo à partir de l'objet image
photo = ImageTk.PhotoImage(load)

Pour bien comprendre, nous allons traiter cela sur un exemple simple :

  • Considérons une image nommée voiture.png
  • Mettons l'image dans un dossier nommé images
  • Créons un fichier python dans le même répertoire que le dossier images et mettons le code suivant:

Exemple. d'insertion d'image

# -*- coding: utf-8 -*-
from tkinter import *
from PIL import Image, ImageTk

root = Tk() 
root.title("Tkinter window") 
root.geometry("300x200")

# Création de l'objet image
load = Image.open("images/voiture.png")

# Création de la photo à partir de l'objet image
photo = ImageTk.PhotoImage(load)

# Placer l'image dans un label
label_image = Label(root,image=photo)
label_image.place(x=0, y=0)
root.mainloop()

Ce qui affiche après exécution :

Redimensionnement de l'image

La bibliothèque Pillow, permet aussi le redimensionner limage à l'aide la méthode thumbnail() en précisant entre les parenthèses la dimension en pixels:

# -*- coding: utf-8 -*-
# Création de l'objet image
load = Image.open("images/voiture.png")

# Redimensionner l'image 
load.thumbnail((50,50))






 

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply