Re: image resize question
Matimus [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] On Oct 18, 11:56 am, Tim Arnold [EMAIL PROTECTED] wrote: Hi, I'm using the Image module to resize PNG images from 300 to 100dpi for use in HTML pages, but I'm losing some vertical and horizontal lines in the images (usually images of x-y plots). Here's what I do: import Image def imgResize(self,filename): img = Image.open(filename) dpi = img.info.get('dpi') if dpi and 295 int(dpi[0]) 305: wd = img.size[0]/3.0 #convert from 300dpi to 100dpi ht = img.size[1]/3.0 newimg= img.resize((int(wd),int(ht))) newimg.save(filename) imgResize('myimage.png') Can someone point me to a better way so I don't lose the reference lines in the images? thanks, --Tim Arnold Resize accepts a second parameter that is used to determine what kind of downsampling filter to use (http://www.pythonware.com/library/pil/ handbook/image.htm). The default is Image.NEAREST, which just samples the nearest pixel and results in the type of data loss you are seeing. If you want something better try one of the following and see which works best for you: Image.BILINEAR, Image.BICUBIC or Image.ANTIALIAS. example: ... newimg = img.resize((int(wd),int(ht)),Image.ANTIALIAS) ... Matt Thank you! The ANTIALIAS filter works great. With any of the others, I still lost my reference lines. --Tim -- http://mail.python.org/mailman/listinfo/python-list
image resize question
Hi, I'm using the Image module to resize PNG images from 300 to 100dpi for use in HTML pages, but I'm losing some vertical and horizontal lines in the images (usually images of x-y plots). Here's what I do: import Image def imgResize(self,filename): img = Image.open(filename) dpi = img.info.get('dpi') if dpi and 295 int(dpi[0]) 305: wd = img.size[0]/3.0 #convert from 300dpi to 100dpi ht = img.size[1]/3.0 newimg= img.resize((int(wd),int(ht))) newimg.save(filename) imgResize('myimage.png') Can someone point me to a better way so I don't lose the reference lines in the images? thanks, --Tim Arnold -- http://mail.python.org/mailman/listinfo/python-list
Re: image resize question
On Oct 18, 11:56 am, Tim Arnold [EMAIL PROTECTED] wrote: Hi, I'm using the Image module to resize PNG images from 300 to 100dpi for use in HTML pages, but I'm losing some vertical and horizontal lines in the images (usually images of x-y plots). Here's what I do: import Image def imgResize(self,filename): img = Image.open(filename) dpi = img.info.get('dpi') if dpi and 295 int(dpi[0]) 305: wd = img.size[0]/3.0 #convert from 300dpi to 100dpi ht = img.size[1]/3.0 newimg= img.resize((int(wd),int(ht))) newimg.save(filename) imgResize('myimage.png') Can someone point me to a better way so I don't lose the reference lines in the images? thanks, --Tim Arnold Resize accepts a second parameter that is used to determine what kind of downsampling filter to use (http://www.pythonware.com/library/pil/ handbook/image.htm). The default is Image.NEAREST, which just samples the nearest pixel and results in the type of data loss you are seeing. If you want something better try one of the following and see which works best for you: Image.BILINEAR, Image.BICUBIC or Image.ANTIALIAS. example: ... newimg = img.resize((int(wd),int(ht)),Image.ANTIALIAS) ... Matt -- http://mail.python.org/mailman/listinfo/python-list