How to adjust the quality of a resized image in Python Imaging Library?

bigmac picture bigmac · Sep 10, 2009 · Viewed 70k times · Source

I am working on PIL and need to know if the image quality can be adjusted while resizing or thumbnailing an image. From what I have known is the default quality is set to 85. Can this parameter be tweaked during resizing?

I am currently using the following code:

image = Image.open(filename)
image.thumbnail((x, y), img.ANTIALIAS)

The ANTIALIAS parameter presumably gives the best quality. I need to know if we can get more granularity on the quality option.

Answer

Dominic Rodger picture Dominic Rodger · Sep 10, 2009

Use PIL's resize method manually:

image = image.resize((x, y), Image.ANTIALIAS)  # LANCZOS as of Pillow 2.7

Followed by the save method

quality_val = 90
image.save(filename, 'JPEG', quality=quality_val)

Take a look at the source for models.py from Photologue to see how they do it.