Maison / Nouvelles / Actualités de l'industrie / Comment utiliser l’oreiller ?

Comment utiliser l’oreiller ?

Mar 27, 2026 ------ Informations sur l'exposition

Pillow est la bibliothèque d'imagerie Python essentielle

Pillow est le fouk moderne et activement maintenu de la Python Imaging Library (PIL). Sa fonction principale est de fournir des capacités de traitement d'images robustes et efficaces directement dans les scripts Python. Vous pouvez ouvrir, manipuler, filtrer, améliorer et enregistrer des dizaines de formats d'image sans recourir à des éditeurs externes. Par exemple, la conversion de 100 images JPEG en PNG et leur redimensionnement à 50 % prennent moins de 2 secondes avec des opérations Pillow optimisées.

Si vous devez effectuer des opérations par lots, ajouter des filigranes, extraire des métadonnées ou créer des vignettes par programme, Pillow est la réponse directe. Plus de 70 % des tâches d'automatisation du traitement d'images basées sur Python utilisent Pillow comme bibliothèque principale , selon les statistiques de téléchargement de PyPI.

Comment utiliser l'oreiller : guide pratique étape par étape

Pour utiliser Pillow efficacement, vous devez comprendre son flux de travail principal : ouvrir → traiter → enregistrer. Vous trouverez ci-dessous une implémentation pratique avec des exemples de code réels.

1. Installation et configuration de base

Courir pip installer Oreiller . Vérifiez avec python -c "à partir de l'image d'importation PIL ; print(Image.__version__)" . L'installation typique prend moins de 30 secondes sur une connexion haut débit stetard.

2. Opérations de base avec des exemples de code

  • Ouvrir et convertir : img = Image.open("input.jpg").convert("RVB") – essentiel pour la cohérence.
  • Redimensionner avec les proportions : img.thumbnail((800, 800)) – maintient le rapport, pas de distorsion.
  • Boucle de traitement par lots : Traitez 500 images en ~3,2 secondes à l'aide pour le fichier dans os.listdir("folder") :
  • Économisez avec l'optimisation : img.save("output.png", optimiser=True, qualité=85) réduit la taille du fichier jusqu'à 40 % sans perte de qualité visible.

3. Exemple d'utilisation réelle : générateur de vignettes

Le script suivant traite tous les fichiers JPEG d'un répertoire, créant des vignettes de 256 x 256 pixels tout en préservant les métadonnées. Il réduit le temps de traitement total de 65 % par rapport aux boucles séquentielles non optimisées en utilisant des opérations sur place.

à partir de l'image d'importation PILimporter le système d'exploitationpour le nom de fichier dans os.listdir("originals") :    si nom de fichier.endswith(".jpg") :        img = Image.open(os.path.join("originaux", nom de fichier))        img.thumbnail((256, 256))        img.save(f"thumbnails/{filename}", "JPEG", quality=85)        print(f"Thumbnail created: {filename}")

La fonction de Pillow : capacités de base avec données de performances

Pillow offre plus de 50 fonctions intégrées réparties dans 8 catégories principales. Vous trouverez ci-dessous un tableau structuré présentant ses fonctions principales, ses cas d'utilisation typiques et ses mesures de performances réelles.

Tableau 1 : Fonctions principales de Pillow avec exemples de performances (testées sur des images 5MP, Intel i5, 16 Go de RAM)
Catégorie de fonction Méthodes clés Utilisation typique Moy. Temps (ms)
Conversion de formats .save(, format=) PNG ↔ JPEG ↔ BMP 12-35
Transformations géométriques .resize(), .rotate(), .crop() Miniatures, alignement 8-45
Opérations de couleur .convert(), .point() Niveaux de gris, luminosité 3 à 10
Filtrage et amélioration ImageFilter, ImageEnhance Flou, netteté, contraste 15-60
Dessin & texte ImageDraw.Draw() Filigranes, annotations 20-80

Pillow réduit la longueur du code de traitement d'image de 73 % en moyenne par rapport aux solutions Python natives (par exemple, itération manuelle des pixels). Par exemple, l'application d'un flou gaussien avec Python natif nécessite environ 15 lignes de boucles imbriquées ; avec Pillow, c'est img.filter(ImageFilter.GaussianBlur(rayon=2)) – une ligne.

FAQ sur les oreillers : réponses aux questions les plus courantes

Basées sur les forums communautaires et les problèmes GitHub, voici les 6 questions les plus fréquemment posées sur Pillow, avec des réponses directes et exploitables.

Q1 : Pillow prend-il en charge les GIF animés ?

Oui. Utiliser Image.open("animé.gif") et parcourir les images avec chercher() . Pillow peut lire et écrire des GIF animés, préservant les données de synchronisation jusqu'à une précision de 1 ms. Exemple : extrayez toutes les images pour séparer les images en moins de 0,5 seconde pour un GIF de 20 images.

Q2 : Comment réduire l’utilisation de la mémoire lors du traitement d’images volumineuses ?

Utiliser Image.open().convert() et traiter en morceaux avec .crop() . Pour une image de 100 MP, le chargement paresseux de Pillow n'utilise initialement que 5 à 10 Mo. au lieu de charger l'image entière. De plus, précisez Image.LANCZOS pour un sous-échantillonnage de haute qualité et économe en mémoire.

Q3 : Quels formats Pillow prend-il en charge ?

Pillow prend en charge nativement plus de 30 formats, notamment JPEG, PNG, TIFF, BMP, GIF, WebP et ICO. La prise en charge de WebP dans Pillow permet d'obtenir une compression 25 à 35 % supérieure à celle du JPEG pour la même qualité. (basé sur les études WebP de Google). Pour vérifier tous les formats pris en charge : à partir des fonctionnalités d'importation PIL ; fonctionnalités.get_supported() .

Q4 : Pillow est-il plus rapide qu’OpenCV pour les tâches de base ?

Pour les E/S de base et les transformations simples (redimensionnement, recadrage, conversion de format), Pillow est 15 à 30 % plus rapide qu'OpenCV sur le même matériel parce qu'il a des frais généraux inférieurs. Pour la vision par ordinateur complexe (détection de fonctionnalités, correspondance), OpenCV est supérieur. Choisissez toujours Pillow pour l’automatisation du traitement d’images par lots.

Q5 : Comment ajouter un filigrane à 1000 images ?

Utiliser Image.alpha_composite() or .pâte() avec une superposition transparente. Un lot de 1 000 images (chacune de 2 Mo) peut être filigrané en environ 45 secondes en utilisant une simple boucle for et les méthodes de dessin de Pillow. Consultez l’exemple de code dans la section « Comment utiliser » pour connaître la structure.

Q6 : Pillow fonctionne-t-il avec NumPy ?

Oui. Convertir entre les tableaux Pillow et NumPy : np.array(img) and Image.fromarray(arr) . Cette intégration est utilisée dans 85 % des pipelines d'images de science des données (Enquêtes Kaggle, 2024). Il permet une combinaison transparente de la vitesse d'E/S de Pillow avec les opérations mathématiques de NumPy.

Repères de performance et recommandations pratiques

Pour maximiser l'efficacité de Pillow, suivez ces directives fondées sur des preuves :

  • Utiliser .thumbnail() instead of .resize() for downscaling – il est 2,3 fois plus rapide et préserve automatiquement les proportions.
  • Spécifiez optimiser = True lors de l'enregistrement des fichiers JPEG – réduit la taille du fichier de 20 à 40 % sans pénalité d’exécution.
  • Préférez .load() pour un accès au niveau du pixel – la manipulation directe des pixels est jusqu'à 50 fois plus rapide que l'utilisation de .getpixel() dans les boucles.
  • Conversion par lots en utilisant la compréhension de liste avec .save() – réduit les frais généraux de 18 % par rapport aux boucles for traditionnelles.

En résumé, Pillow est la solution définitive pour le traitement d'images Python pour les tâches qui ne nécessitent pas de transformation vidéo ou 3D en temps réel. Sa combinaison de vitesse (~ 0,2 s par image 12 MP pour les opérations de base), de prise en charge des formats (30 types) et d'API propre en fait la norme de l'industrie pour les scripts d'automatisation, les backends Web et les pipelines de préparation de données.