2010-01-08 3 views
4

J'utilise la bibliothèque d'images Python (PIL) pour redimensionner une image et créer une miniature. Pourquoi est-ce que mon code produit une image si moche et de mauvaise qualité? Quelqu'un peut-il me dire comment modifier le code afin qu'il soit le plus haut niveau de qualité JPEG?Python Image Library produit un jpeg de qualité minable lorsque je redimensionne une image

def create_thumbnail(buffer, width=100, height=100): 
    im = Image.open(StringIO(buffer)) 
    if im.mode not in ('L', 'RGB', 'RGBA'): 
     im = im.convert('RGB') 
    im.thumbnail((width, height), Image.ANTIALIAS) 
    thumbnail_file = StringIO() 
    im.save(thumbnail_file, 'JPEG') 
    thumbnail_file.seek(0) 
    return thumbnail_file 

Répondre

13

Documentation sayyyyys:

im.save(thumbnail_file, 'JPEG', quality=90) 
+0

Aussi, voir http://stackoverflow.com/questions/1441967/python-imaging-alternatives –

1

espoir que cela pourrait aider quelqu'un:

from PIL import Image 
image = Image.open("2.jpg") 
image.thumbnail((256, 256), Image.ANTIALIAS) 
image.save("11.jpg", quality=100) 
+0

En général En parlant, sauver un jpg avec "100% de qualité" n'augmente pas sensiblement la qualité par rapport à, disons, 90%, mais augmente simplement la taille du fichier. –

Questions connexes