Re: image resize question

2007-10-19 Thread Tim Arnold
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

2007-10-18 Thread Tim Arnold
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

2007-10-18 Thread Matimus
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