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 moduleCatégorie de fonctionsFonctionnalités principalesMéthodes/attributs courantsScénarios d'application typiques
ImageModule principalOpérations de base sur les imagesopen(), save(), resize(), crop(), rotate(), convert()Chargement/enregistrement/redimensionnement/conversion de format d'image
ImageDrawModule de dessinDessin de graphiques vectorielsDraw(), line(), rectangle(), text(), ellipse()Ajouter des filigranes/dessiner des formes/annoter des images
ImageFontPrise en charge des policesRendu de textetruetype(), load_default(), getsize()Styles de texte personnalisés/calculer la zone de texte
ImageFilterEffets d'imageTraitement des filtresBLUR, SHARPEN, EMBOSS, GaussianBlur()Flou/netteté/effets artistiques de l'image
ImageEnhanceOptimisation des imagesAmélioration de la qualitéBrightness(), Contrast(), Color(), Sharpness()Ajustement de la luminosité/du contraste/de la saturation
ImageOpsOpérations avancéesTraitement automatiségrayscale(), flip(), mirror(), invert()Inversion d'image/miroir/niveaux de gris forcés
ImageChopsOpérations sur les canauxOpérations mathématiquesadd(), subtract(), multiply(), difference()Composition d'images/détection des différences/traitement des masques
ImageColorSystème de couleursConversion de couleursgetrgb(), getcolor(), colormapConversion de couleurs HEX/RGB/HSL
ImageGrabCapture d'écranFonctionnalité de capture d'écrangrab(), grabclipboard()Acquisition d'images par capture d'écran/presse-papiers
ImageStatAnalyse de donnéesStatistiques de pixelsStat(), extrema(), mean(), rms()Analyse des couleurs d'image/détection de luminosité
ImagePalettePaletteGestion des couleurs indexéesnew(), getcolor(), tobytes()Traitement d'images couleur 8-bit/optimisation GIF
ImagePathTraitement des cheminsChemins vectorielsPath(), getbbox(), compact()Dessin de formes complexes (nécessite ImageDraw)
ImageSequenceImages animéesTraitement des imagesIterator(), all_frames()Décomposition d'animations GIF/traitement TIFF multi-images
ImageMorphMorphologieMorphing d'imagesMorphOp(), apply(), get_on_pixels()Dilatation/érosion de motifs/analyse structurelle
ImageShowAperçu d'imageAffichage rapideshow(), register_viewer()Visualiser rapidement des images pendant le débogage
ImageTkIntégration GUIPrise en charge de TkinterPhotoImage(), BitmapImage()Afficher des images dans l'interface Tkinter
ImageQtIntégration GUIPrise en charge de QtImageQt(), toqimage()Affichage d'images PyQt/PySide
ExifTagsMétadonnéesLecture EXIFTAGS, GPSTAGSLire les paramètres de l'appareil photo/informations GPS
PSDrawSortie d'impressionPostScriptPSDraw(), begin_document()Générer des fichiers vectoriels pour l'impression
TiffTagsMétadonnéesBalises TIFFTIFFTAGSTraiter 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()

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()

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()
Autres extensions