Redimensionner une image en gardant son ratio

Publié par ark le jeu 17 Fév 2011 à 19:37

Petit script qui peut servir, et merci biensûr à PIL qui rend les choses si simples :)
Le seul souci sont les exemples que l'on trouve habituellement où il faut spécifier une largeur et une hauteur, ce qui est pratique pour créer des thumbs, mais qui va nous déformer les images si on garde une plus grande taille.
Voici donc un petit script qui calcule la hauteur en fonction de la largeur spécifiée.

 

import os, sys
import Image

basewidth = 500
 
for infile in sys.argv[1:]:
    outfile = os.path.splitext(infile)[0] + ".resized.jpg"
    if infile != outfile:
        try:
            img = Image.open(infile)
            wpercent = (basewidth/float(img.size[0]))
            hsize = int((float(img.size[1])*float(wpercent)))
            img = img.resize((basewidth,hsize), Image.ANTIALIAS)
            img.save(outfile)
        except IOError:
            print "cannot resize image for ", infile

Il ne vous reste plus qu'a définir la largeur souhaitée dans basewidth, ou meme mettre cette info en entrée du script.

blog comments powered by Disqus