ensnare ensnare - 1 year ago 79
Python Question

What is the fastest way to generate image thumbnails in Python?

I'm building a photo gallery in Python and want to be able to quickly generate thumbnails for the high resolution images.

What's the fastest way to generate high quality thumbnails for a variety of image sources?

Should I be using an external library like imagemagick, or is there an efficient internal way to do this?

The dimensions of the resized images will be (max size):


Quality is an issue, as I want to preserve as many of the original colors as possible and minimize compression artifacts.


Answer Source

You want PIL it does this with ease

from PIL import Image
sizes = [(120,120), (720,720), (1600,1600)]
files = ['a.jpg','b.jpg','c.jpg']

for image in files:
    for size in sizes:
      Image.open(image).thumbnail(size).save("thumbnail_%s_%s" % (image, "_".join(size)))

If you desperately need speed. Then thread it, multiprocess it or get another language.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download