Maison > développement back-end > Tutoriel Python > Comment PIL peut-il être utilisé pour redimensionner des images tout en préservant les proportions ?

Comment PIL peut-il être utilisé pour redimensionner des images tout en préservant les proportions ?

Linda Hamilton
Libérer: 2024-12-08 03:51:12
original
259 Les gens l'ont consulté

How Can PIL Be Used to Resize Images While Preserving Aspect Ratio?

Redimensionnement des images avec préservation du rapport hauteur/largeur à l'aide de PIL

Lors de la génération de vignettes ou du redimensionnement d'images, le maintien du rapport hauteur/largeur est crucial pour préserver la fidélité de l'image. PIL fournit une méthode simple pour y parvenir tout en ajustant dynamiquement les dimensions de largeur et de hauteur.

Pour redimensionner une image avec PIL tout en préservant ses proportions, suivez ces étapes :

  1. Définir une taille maximale : Déterminer la taille maximale souhaitée pour l'image redimensionnée en termes de largeur et hauteur.
  2. Calculer le rapport de redimensionnement : Calculez le rapport de redimensionnement en prenant la valeur minimale entre la largeur maximale divisée par la largeur de l'image d'origine et la hauteur maximale divisée par la hauteur de l'image d'origine. Ce rapport garantit que l'image est redimensionnée proportionnellement.
  3. Calculer la nouvelle taille : Calculez la nouvelle taille de l'image en multipliant la taille de l'image d'origine par le rapport de redimensionnement.

Pour plus de commodité, PIL propose une méthode spécialement conçue pour redimensionner les images tout en conservant leur rapport hauteur/largeur : Image.thumbnail. Voici un exemple tiré de la documentation PIL, illustrant l'utilisation de Image.thumbnail pour créer des vignettes :

import os, sys
import Image

size = 128, 128

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 "cannot create thumbnail for '%s'" % infile
Copier après la connexion

Cet exemple montre comment utiliser Image.thumbnail pour créer des vignettes à partir d'une liste d'images d'entrée, en conservant leur aspect. rapport tout en garantissant que la taille finale est dans les dimensions spécifiées.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal