Pillow – traitement d'images en Python

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Les bases de la bibliothèque Pillow en Python

Le traitement d'images est un élément incontournable du développement logiciel moderne. De la création d'applications web avec génération dynamique de contenu au développement de systèmes de vision par ordinateur et de machine learning, des outils de manipulation de données graphiques sont omniprésents. La bibliothèque Pillow (Python Imaging Library) constitue une solution puissante et polyvalente pour travailler avec des images dans l'écosystème Python.

Pillow est un fork activement maintenu de la bibliothèque originale PIL, créée en 1995 par Fredrik Lundh. Après l'arrêt du développement de PIL en 2011, Alex Clark et la communauté de développeurs ont créé Pillow, assurant la compatibilité avec l'API d'origine tout en ajoutant de nombreuses nouvelles fonctionnalités et améliorations.

Les principaux atouts de Pillow incluent sa simplicité d'utilisation, un large support des formats graphiques, un ensemble riche d'outils de retouche et d'analyse d'images, ainsi qu'une communauté active. La bibliothèque est largement utilisée dans le développement web, le calcul scientifique, le machine learning et l'automatisation de processus graphiques.

À propos de la bibliothèque Pillow

Histoire et évolution

Pillow a été créée comme un fork de PIL (Python Imaging Library) pour assurer la compatibilité avec Python 3 et résoudre les problèmes d'installation de la bibliothèque originale. Le nom "Pillow" (oreiller en anglais) est un jeu de mots avec l'acronyme PIL.

La bibliothèque est activement développée depuis 2010 et soutenue par une large communauté de développeurs. Les mises à jour régulières incluent le support de nouveaux formats d'images, des améliorations de performances, des correctifs de sécurité et l'extension des fonctionnalités.

Architecture et principes de fonctionnement

Pillow est construite sur les principes de la programmation orientée objet. L'élément central est la classe Image, qui représente une image en mémoire. Toutes les opérations sur les images sont effectuées via les méthodes de cette classe ou des modules associés.

La bibliothèque prend en charge l'évaluation paresseuse (lazy evaluation), ce qui signifie que de nombreuses opérations ne sont pas exécutées immédiatement, mais reportées jusqu'au moment de la sauvegarde ou d'un appel explicite. Cela permet d'optimiser les chaînes de transformations et d'améliorer les performances.

Modules et composants principaux

Pillow se compose de plusieurs modules clés :

  • Image — le module principal pour travailler avec les images
  • ImageDraw — module pour dessiner des primitives et du texte
  • ImageFilter — ensemble de filtres prédéfinis
  • ImageEnhance — outils pour améliorer la qualité des images
  • ImageFont — gestion des polices
  • ImageColor — utilitaires pour travailler avec les couleurs
  • ImageOps — opérations supplémentaires sur les images

Installation et configuration

Installation standard

pip install pillow

Installation avec dépendances supplémentaires

Pour des fonctionnalités avancées, vous pouvez installer des bibliothèques supplémentaires :

pip install pillow[imaging]  # Codecs supplémentaires
pip install pillow[extra]    # Toutes les dépendances supplémentaires

Vérification de l'installation

from PIL import Image
import PIL
print(PIL.__version__)
print(PIL.features.check_feature('webp'))  # Vérification du support WebP

Opérations de base sur les images

Ouverture et informations de base sur les images

from PIL import Image

# Ouverture d'une image
img = Image.open("example.jpg")

# Obtention des informations de base
print(f"Format : {img.format}")
print(f"Taille : {img.size}")
print(f"Mode couleur : {i                    

Recommendations