Pillow : modules et méthodes courants
Pillow offre de riches fonctionnalités, notamment l'ouverture, l'édition, l'enregistrement, la conversion de format d'images, etc.
Cet article présentera les modules et méthodes courants de Pillow et fournira des exemples de code simples.
Modules courants
| Nom du module | Catégorie de fonctions | Fonctionnalités principales | Méthodes/attributs courants | Scénarios d'application typiques |
|---|---|---|---|---|
| Image | Module principal | Opérations de base sur les images | open(), save(), resize(), crop(), rotate(), convert() | Chargement/enregistrement/redimensionnement/conversion de format d'image |
| ImageDraw | Module de dessin | Dessin de graphiques vectoriels | Draw(), line(), rectangle(), text(), ellipse() | Ajouter des filigranes/dessiner des formes/annoter des images |
| ImageFont | Prise en charge des polices | Rendu de texte | truetype(), load_default(), getsize() | Styles de texte personnalisés/calculer la zone de texte |
| ImageFilter | Effets d'image | Traitement des filtres | BLUR, SHARPEN, EMBOSS, GaussianBlur() | Flou/netteté/effets artistiques de l'image |
| ImageEnhance | Optimisation des images | Amélioration de la qualité | Brightness(), Contrast(), Color(), Sharpness() | Ajustement de la luminosité/du contraste/de la saturation |
| ImageOps | Opérations avancées | Traitement automatisé | grayscale(), flip(), mirror(), invert() | Inversion d'image/miroir/niveaux de gris forcés |
| ImageChops | Opérations sur les canaux | Opérations mathématiques | add(), subtract(), multiply(), difference() | Composition d'images/détection des différences/traitement des masques |
| ImageColor | Système de couleurs | Conversion de couleurs | getrgb(), getcolor(), colormap | Conversion de couleurs HEX/RGB/HSL |
| ImageGrab | Capture d'écran | Fonctionnalité de capture d'écran | grab(), grabclipboard() | Acquisition d'images par capture d'écran/presse-papiers |
| ImageStat | Analyse de données | Statistiques de pixels | Stat(), extrema(), mean(), rms() | Analyse des couleurs d'image/détection de luminosité |
| ImagePalette | Palette | Gestion des couleurs indexées | new(), getcolor(), tobytes() | Traitement d'images couleur 8-bit/optimisation GIF |
| ImagePath | Traitement des chemins | Chemins vectoriels | Path(), getbbox(), compact() | Dessin de formes complexes (nécessite ImageDraw) |
| ImageSequence | Images animées | Traitement des images | Iterator(), all_frames() | Décomposition d'animations GIF/traitement TIFF multi-images |
| ImageMorph | Morphologie | Morphing d'images | MorphOp(), apply(), get_on_pixels() | Dilatation/érosion de motifs/analyse structurelle |
| ImageShow | Aperçu d'image | Affichage rapide | show(), register_viewer() | Visualiser rapidement des images pendant le débogage |
| ImageTk | Intégration GUI | Prise en charge de Tkinter | PhotoImage(), BitmapImage() | Afficher des images dans l'interface Tkinter |
| ImageQt | Intégration GUI | Prise en charge de Qt | ImageQt(), toqimage() | Affichage d'images PyQt/PySide |
| ExifTags | Métadonnées | Lecture EXIF | TAGS, GPSTAGS | Lire les paramètres de l'appareil photo/informations GPS |
| PSDraw | Sortie d'impression | PostScript | PSDraw(), begin_document() | Générer des fichiers vectoriels pour l'impression |
| TiffTags | Métadonnées | Balises TIFF | TIFFTAGS | Traiter les métadonnées du format TIFF |
Flux de travail des modules

Combinaisons avancées de traitement :
- Création d'effets : ImageFilter + ImageEnhance
- Analyse d'images : ImageStat + ImageChops
- Développement d'interface graphique : ImageTk/ImageQt + ImageDraw
Prise en charge des domaines professionnels :
- Images scientifiques : TIFFTags + ImageSequence
- Édition pour l'impression : PSDraw + ImageColor
- Vision par ordinateur : ImageMorph + ImageOps
Méthodes courantes
PIL.ImageMéthodes courantes du module
| Méthode | Description | Exemple |
|---|---|---|
Image.open() |
Ouvrir un fichier image | img = Image.open("example.jpg") |
Image.save() |
Enregistrer un fichier image | img.save("output.png") |
Image.show() |
Afficher l'image | img.show() |
Image.resize() |
Redimensionner l'image | new_img = img.resize((200, 200)) |
Image.rotate() |
Faire pivoter l'image | rotated_img = img.rotate(45) |
Image.crop() |
Recadrer l'image | cropped_img = img.crop((50, 50, 200, 200)) |
Exemple de code :
Exemple
from PIL import Image
# Ouvrir l'image
img = Image.open("example.jpg")
# Redimensionner et enregistrer
resized_img = img.resize((300, 300))
resized_img.save("resized_example.jpg")
# Pivoter de 90 degrés et afficher
rotated_img = img.rotate(90)
rotated_img.show()
# Ouvrir l'image
img = Image.open("example.jpg")
# Redimensionner et enregistrer
resized_img = img.resize((300, 300))
resized_img.save("resized_example.jpg")
# Pivoter de 90 degrés et afficher
rotated_img = img.rotate(90)
rotated_img.show()
PIL.ImageDrawMéthodes courantes du module
| Méthode | Description | Exemple |
|---|---|---|
ImageDraw.Draw() |
Créer un objet de dessin | draw = ImageDraw.Draw(img) |
draw.line() |
Tracer une ligne | draw.line([(0, 0), (100, 100)], fill="red", width=2) |
draw.rectangle() |
Dessiner un rectangle | draw.rectangle([(50, 50), (150, 150)], outline="blue", width=3) |
draw.text() |
Dessiner du texte | draw.text((10, 10), "Hello", fill="black") |
Exemple de code :
Exemple
from PIL import Image, ImageDraw
# Créer une image vide
img = Image.new("RGB", (300, 300), "white")
draw = ImageDraw.Draw(img)
# Tracer une ligne rouge
draw.line([(0, 0), (300, 300)], fill="red", width=2)
# Dessiner un rectangle bleu
draw.rectangle([(50, 50), (250, 250)], outline="blue", width=3)
# Ajouter du texte
draw.text((100, 100), "Hello Pillow!", fill="black")
# Enregistrer l'image
img.save("draw_example.png")
img.show()
# Créer une image vide
img = Image.new("RGB", (300, 300), "white")
draw = ImageDraw.Draw(img)
# Tracer une ligne rouge
draw.line([(0, 0), (300, 300)], fill="red", width=2)
# Dessiner un rectangle bleu
draw.rectangle([(50, 50), (250, 250)], outline="blue", width=3)
# Ajouter du texte
draw.text((100, 100), "Hello Pillow!", fill="black")
# Enregistrer l'image
img.save("draw_example.png")
img.show()
PIL.ImageFilterMéthodes courantes du module
| Méthode | Description | Exemple |
|---|---|---|
ImageFilter.BLUR |
Filtre de flou | img.filter(ImageFilter.BLUR) |
ImageFilter.CONTOUR |
Filtre de contour | img.filter(ImageFilter.CONTOUR) |
ImageFilter.SHARPEN |
Filtre d'accentuation | img.filter(ImageFilter.SHARPEN) |
Exemple de code :
Exemple
from PIL import Image, ImageFilter
# Ouvrir l'image
img = Image.open("example.jpg")
# Appliquer le filtre de flou
blurred_img = img.filter(ImageFilter.BLUR)
blurred_img.save("blurred_example.jpg")
# Appliquer un filtre d'accentuation
sharpened_img = img.filter(ImageFilter.SHARPEN)
sharpened_img.show()
# Ouvrir l'image
img = Image.open("example.jpg")
# Appliquer le filtre de flou
blurred_img = img.filter(ImageFilter.BLUR)
blurred_img.save("blurred_example.jpg")
# Appliquer un filtre d'accentuation
sharpened_img = img.filter(ImageFilter.SHARPEN)
sharpened_img.show()