[Image-SIG] Poor Image Quality When Resizing
Andy McCurdy
sedrik at gmail.com
Tue Jan 8 10:55:20 CET 2008
Hi all,
Just started using PIL. I'm attempting to resize a .gif image to a smaller
size, keeping the height/width proportional. The resize works, but the
resulting image is very grainy. Resizing the same image with ImageMagick's
convert utility produced a far better quality image. I'd rather use PIL if
possible since it has a much better API. Am I missing something?
from PIL import Image
# original_content is a string of bytes representing the image.
# the image is not stored locally on disk, so it's fetched from the
storage service as a string
# and loaded up using a StringIO buffer
# Have also tried loading the same .gif from a local disk directly with
Image.open('filename.gif'), but image after resize looked grainy as well
io = StringIO(original_content)
pil_image = Image.open(io)
# docs suggest that the default mode, 'P', won't use the ANTIALIAS
filter, so switch to RGB
pil_image = pil_image.convert('RGB')
# ... stuff happens here to figure out what the new width and height
should be
# tuple representing the new size
new_size = (new_width, new_height)
# the actual resize...
pil_image = pil_image.resize(new_size, Image.ANTIALIAS)
# save the new image back out to a StringIO buffer -- has to be sent
back to the storage service
io = StringIO()
format = 'GIF' # hardcoded in this example
pil_image.save(io, format)
Thanks for any help possible.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/image-sig/attachments/20080108/05ebd312/attachment.htm
More information about the Image-SIG
mailing list