Maison > développement back-end > Tutoriel Python > Comment conserver les proportions lors du redimensionnement des images avec PIL ?

Comment conserver les proportions lors du redimensionnement des images avec PIL ?

DDD
Libérer: 2024-12-06 18:29:14
original
573 Les gens l'ont consulté

How to Maintain Aspect Ratio When Resizing Images with PIL?

Préserver les proportions lors du redimensionnement des images à l'aide de PIL

Dans Python Imaging Library (PIL), redimensionner une image tout en conservant ses proportions peut être obtenu grâce à des calculs spécifiques. Lors de la création de vignettes, il est crucial de conserver les proportions d'origine de l'image.

Solution :

  1. Définir une taille maximale : Déterminer les dimensions maximales de l'image redimensionnée.
  2. Calculer le taux de redimensionnement : Calculez un rapport en prenant le minimum de (largeur maximale/largeur originale) et (hauteur maximale/hauteur originale).
  3. Déterminez la taille appropriée : Multipliez la taille originale de l'image par la valeur calculée ratio pour obtenir les dimensions appropriées pour le redimensionnement.

Pour plus de simplicité, PIL fournit la méthode Image.thumbnail pour gérer le redimensionnement tout en préservant l'aspect ratio :

import os, sys
from PIL import Image

size = (128, 128) # Desired thumbnail size

for infile in sys.argv[1:]:
    outfile = os.path.splitext(infile)[0] + ".thumbnail"
    if infile != outfile:
        try:
            im = Image.open(infile)
            im.thumbnail(size, Image.Resampling.LANCZOS)
            im.save(outfile, "JPEG")
        except IOError:
            print(f"Cannot create thumbnail for '{infile}'")
Copier après la connexion

Dans ce script, les images sont redimensionnées à une taille de vignette de (128, 128) en utilisant le rééchantillonnage de Lanczos pour une qualité d'image améliorée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal