Hi, I'd like to resize an image by scaling each of its pixels by the same factor.
I've tried using Image.resize() with the filter set to NEAREST, but I find that the pixels in the original image do not all end up the same size in the new image. Do I have the wrong idea about what NEAREST does? Here is an example to demonstrate my problem (using numpy to avoid needing an image file, and to make it easier to show the results in text; you could instead use a 4x4 image and the .show() method of Image to see what I'm talking about): python> import Image,numpy python> a = numpy.array([[255,0,255,0],[0,255,0,255], ... [255,0,255,0],[0,255,0,255]],dtype=numpy.uint8) python> a array([[255, 0, 255, 0], [ 0, 255, 0, 255], [255, 0, 255, 0], [ 0, 255, 0, 255]], dtype=uint8) python> i=Image.fromarray(a) python> i2=i.resize((6*4,6*4),Image.NEAREST) I expected each pixel in i to have been enlarged to be 6x6 in i2, but that doesn't seem to have happened. Here is the first column of the image: python> numpy.array(i2)[:,0] array([255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0], dtype=uint8) Why hasn't each pixel been enlarged to have a side of length 6? The first pixel has been enlarged to have side of length 7, the next length 5, then 7, then 5. Thanks, Chris P.S. I'm using PIL 1.1.6. _______________________________________________ Image-SIG maillist - Image-SIG@python.org http://mail.python.org/mailman/listinfo/image-sig