[Image-SIG] Problem when resizing large JPEG to thumbnail
tiit at sympatico.ca
Tue Sep 1 04:44:01 CEST 2009
I'm using sorl-thumbnail in Django to automatically resize my images.
sorl-thumbnail use PIL to do is image manipulations.
Unfortunately the result thumbnails are far from pretty. You can see
some tests here:
Here's the code I (and sorl) use to create the thumbnails:
im = Image.open('source.jpg')
if im.mode not in ("L", "RGB", "RGBA"):
__im = im.convert("RGB")
im = im.crop((568, 783, 3164, 3379))
im = im.resize((70, 70), resample=Image.ANTIALIAS)
im.save('pil.jpg', "JPEG", quality=95)
Pretty straightforward. I did some tests with ImageMagick to compare
the result. The difference is huge. The ImageMagick thumbnail looks
great. In contrast he PIL thumbnail look blocky and blurry at the same
time and the colors are all fade out. I don't think the jpeg
compression is the problem, I set it to 95.
I did a test with resample=Image.BICUBIC and the result is really bad.
But I don't think that BICUBIC was really applied because I got the
exactly same result when I use resample=Image.NEAREST.
Also, at the beginning, my source file was a TIFF in CMYK. The color
of the generated thumbnail was completely off. That's why I convert it
to RGB JPEG in Photoshop.
So after experimenting, I see 3 problems:
1. Resize with ANTIALIAS from a large JPEG to a small thumbnail give
poor image quality.
2. BICUBIC, when set, is not applied. Instead NEAREST is use.
3. Converting from TIFF CMYK to RGB shift the colors dramatically.
Is all theses points are normal behavior ?
More information about the Image-SIG