Maîtriser la manipulation d’images avec Python et Pillow
Manipuler des images en Python peut être réalisé efficacement grâce à diverses bibliothèques, mais l’une des plus populaires et des plus puissantes est certainement Pillow, qui fournit un large éventail de fonctionnalités pour ouvrir, modifier et sauvegarder des images. Dans ce guide, je vais vous montrer comment manipuler des images en utilisant Pillow, ainsi que quelques opérations courantes telles que le redimensionnement, la conversion de formats et l’application de filtres.
Prérequis
- Python installé sur votre système. Vous pouvez le télécharger depuis python.org.
- Installation de la bibliothèque Pillow. Vous pouvez l’installer via pip en exécutant
pip install pillow
.
1. Ouvrir une image
from PIL import Image
# Ouvrir une image
image = Image.open("chemin_vers_votre_image.jpg")
2. Afficher une image
image.show()
3. Obtenir les dimensions d’une image
largeur, hauteur = image.size
print("Largeur:", largeur)
print("Hauteur:", hauteur)
4. Redimensionner une image
# Redimensionner en conservant le rapport hauteur/largeur
nouvelle_image = image.resize((nouvelle_largeur, nouvelle_hauteur))
# Redimensionner en forçant une taille spécifique
nouvelle_image = image.resize((nouvelle_largeur, nouvelle_hauteur), Image.ANTIALIAS)
5. Enregistrer une image dans un nouveau format
nouveau_nom = "nouvelle_image.png"
nouvelle_image.save(nouveau_nom)
6. Convertir le format d’une image
image.convert("L") # Convertir en niveaux de gris
7. Appliquer un filtre
from PIL import ImageFilter
image_filtree = image.filter(ImageFilter.BLUR)
8. Appliquer des transformations
from PIL import ImageEnhance
# Augmenter la netteté de l'image
enhancer = ImageEnhance.Sharpness(image)
image_net = enhancer.enhance(2.0)
9. Ajouter du texte à une image
from PIL import ImageDraw, ImageFont
draw = ImageDraw.Draw(image)
font = ImageFont.truetype("arial.ttf", 36)
draw.text((x, y), "Votre texte", fill=(255, 255, 255), font=font)
10. Superposer des images
image_fond.paste(image_superposee, (x, y), image_superposee)
Guide complet de manipulation d’images en Python avec Pillow
Bien sûr ! Voici comment les cas pratiques pourraient être réécrits avec des exemples de code :
1. Créer des miniatures
from PIL import Image
# Ouvrir une image
image = Image.open("image.jpg")
# Redimensionner pour créer une miniature
thumbnail_size = (100, 100)
thumbnail_image = image.copy()
thumbnail_image.thumbnail(thumbnail_size)
# Enregistrer la miniature
thumbnail_image.save("miniature.jpg")
2. Appliquer des filtres pour l’édition d’images
from PIL import ImageFilter
# Appliquer un filtre de flou
blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.save("image_floue.jpg")
3. Créer un programme de traitement par lot
import os
input_folder = "input_images"
output_folder = "output_images"
# Parcourir les fichiers d'entrée
for filename in os.listdir(input_folder):
# Ouvrir chaque image
image = Image.open(os.path.join(input_folder, filename))
# Appliquer des transformations
# ...
# Enregistrer les images transformées dans un dossier de sortie
output_filename = os.path.join(output_folder, filename)
image.save(output_filename)
4. Reconnaissance et modification de contenu
# Utiliser d'autres bibliothèques comme OpenCV ou TensorFlow pour la reconnaissance d'objets, la segmentation, etc.
# Ensuite, utiliser Pillow pour modifier les images en fonction des résultats de l'analyse.
5. Créer des mèmes automatiquement
from PIL import ImageDraw, ImageFont
# Ouvrir une image de base
base_image = Image.open("base_image.jpg")
# Ajouter du texte
draw = ImageDraw.Draw(base_image)
font = ImageFont.truetype("arial.ttf", 20)
draw.text((10, 10), "Texte du mème", fill=(255, 255, 255), font=font)
# Enregistrer l'image avec le texte ajouté
base_image.save("meme.jpg")
6. Analyse de données visuelles
# Utiliser Pillow pour extraire des données visuelles comme la palette de couleurs, les histogrammes, etc.
# par exemple :
colors = image.getcolors(maxcolors=256)
print(colors)
7. Création de diaporamas
# Utiliser d'autres bibliothèques pour créer les transitions et assembler les images en un diaporama.
# Ensuite, utiliser Pillow pour enregistrer le diaporama final.
8. Correction automatique de photos
# Utiliser Pillow pour corriger automatiquement des problèmes courants dans les photos.
# Par exemple, pour corriger les yeux rouges :
from PIL import ImageEnhance
enhancer = ImageEnhance.Color(image)
corrected_image = enhancer.enhance(1.5)
corrected_image.save("image_corrigee.jpg")
Ces exemples illustrent comment chaque cas pratique peut être réalisé en utilisant la bibliothèque Pillow en combinaison avec d’autres bibliothèques ou techniques de traitement d’images en Python.
Conclusion
Ce guide couvre les bases de la manipulation d’images en Python en utilisant la bibliothèque Pillow. Avec ces connaissances, vous pouvez créer des scripts pour effectuer une grande variété de tâches liées aux images, telles que le traitement d’images, la création de miniatures, l’édition d’images, etc. Explorez davantage la documentation de Pillow pour découvrir d’autres fonctionnalités avancées et approfondies.