Module ImageOps de Pillow

ImageOps est un module utilitaire de la bibliothèque de traitement d'images Python Pillow qui fournit une série d'opérations de traitement d'images prédéfinies. Ces opérations sont souvent des wrappers et des simplifications des fonctionnalités du module PIL.Image, permettant aux développeurs de mettre en œuvre des exigences courantes de traitement d'images avec un code plus concis.


Principales caractéristiques du module ImageOps

  1. Opérations simplifiées: Encapsule des flux de traitement d'image complexes en un seul appel de fonction
  2. Traitement standardisé: Fournit des méthodes standardisées de traitement d'image
  3. Fonctions pratiques: Inclut une variété de fonctions pratiques de traitement d'image
  4. Complémentaire de PIL.Image: Complète les fonctionnalités du module PIL.Image

Méthodes courantes du module ImageOps

Voici les méthodes les plus couramment utilisées dans le module ImageOps et leurs descriptions fonctionnelles :

Méthodes d'ajustement d'image

Nom de la méthode Parameters Valeur de retour Description
autocontrast(image, cutoff=0, ignore=None) image : image d'entrée
cutoff : pourcentage de recadrage (0-100)
ignore : couleur d'arrière-plan à ignorer
Nouvel objet image Ajuster automatiquement le contraste de l'image afin que les pixels les plus sombres de l'image deviennent noirs et que les pixels les plus clairs deviennent blancs.
colorize(image, black, white) image : image en niveaux de gris
black : couleur de remplacement pour le noir
white : couleur de remplacement pour le blanc
Nouvel objet image Coloriser une image en niveaux de gris en spécifiant les couleurs auxquelles le noir et le blanc doivent être associés, respectivement.
equalize(image, mask=None) image : image d'entrée
mask : masque facultatif
Nouvel objet image Effectuer une égalisation d'histogramme sur l'image pour améliorer le contraste.
mirror(image) image : image d'entrée Nouvel objet image Retourner horizontalement l'image (effet miroir)

Méthodes de transformation d'image

Nom de la méthode Parameters Valeur de retour Description
expand(image, border, fill=0) image : image d'entrée
border : largeur de bordure
fill : couleur de remplissage
Nouvel objet image Ajouter une bordure à l'image
fit(image, size, method=0, bleed=0.0, centering=(0.5, 0.5)) image : image d'entrée
size: taille cible
method: méthode de redimensionnement
bleed: proportion de rognage
centering: point central
Nouvel objet image Redimensionner l'image à une taille spécifiée tout en conservant le rapport d'aspect.
flip(image) image : image d'entrée Nouvel objet image Retourner verticalement l'image
scale(image, factor, resample=3) image : image d'entrée
factor: facteur d'échelle
resample: méthode de rééchantillonnage
Nouvel objet image Mettre l'image à l'échelle proportionnellement

Méthodes d'effets d'image

Nom de la méthode Parameters Valeur de retour Description
posterize(image, bits) image : image d'entrée
bits: nombre de bits à conserver (1-8)
Nouvel objet image Réduire le nombre de bits par canal de couleur dans l'image pour produire un effet de postérisation.
solarize(image, threshold=128) image : image d'entrée
threshold: seuil (0-255)
Nouvel objet image Inverser toutes les valeurs de pixel supérieures au seuil pour produire un effet de solarisation.
invert(image) image : image d'entrée Nouvel objet image Inverser les couleurs de l'image (effet négatif)

Exemples d'utilisation

Exemple d'utilisation de base

Exemple

from PIL import Image, ImageOps

# Ouvrir le fichier image
image = Image.open("example.jpg")

# Ajuster automatiquement le contraste
adjusted_image = ImageOps.autocontrast(image)

# Enregistrer l'image traitée
adjusted_image.save("adjusted_example.jpg")

Exemples plus pratiques

Exemple

from PIL import Image, ImageOps

# Créer un négatif de l'image
image = Image.open("photo.jpg")
inverted_image = ImageOps.invert(image)
inverted_image.save("inverted_photo.jpg")

# Ajouter une bordure à l'image
bordered_image = ImageOps.expand(image, border=50, fill="white")
bordered_image.save("bordered_photo.jpg")

# Colorisation d'image (convertir d'abord l'image en niveaux de gris)
gray_image = ImageOps.grayscale(image)
colored_image = ImageOps.colorize(gray_image, black="blue", white="yellow")
colored_image.save("colored_photo.jpg")

Notes

  1. Mode d'image: Certaines méthodes d'ImageOps ont des exigences spécifiques concernant le mode d'image, telles quecolorize()nécessitant une image en niveaux de gris
  2. Considérations de performance: Lors du traitement de grandes images, certaines opérations peuvent consommer beaucoup de mémoire
  3. Plages de paramètres: Faites attention aux plages valides des paramètres, par exempleposterize()le paramètre bits doit être compris entre 1 et 8
  4. Protection de l'original: les méthodes ImageOps renvoient généralement un nouvel objet image, et l'image d'origine n'est pas modifiée

Résumé

Le module ImageOps est une boîte à outils très pratique dans la bibliothèque Pillow, simplifiant de nombreuses tâches courantes de traitement d'image. En maîtrisant ces méthodes, les développeurs peuvent rapidement mettre en œuvre divers effets de traitement d'image sans écrire de code complexe. Pour les scénarios nécessitant un traitement d'image plus avancé, d'autres fonctionnalités du module PIL.Image peuvent être utilisées en combinaison.

Autres extensions