Roger wrote: > I need to calculate the thumbnail sizes PILL will produce from an image. > In most cases I can divide and round by adding .5, but PIL seems to > round differently on odd sized images. > > For example, I want to reduce an 800x816 image to have a maximum size of > 697. (697/816) * 800 = 683.33, so my rounding results in 683. But PIL > produces an image of 684x697.
the algorithm is: x, y = im.size if x > size[0]: y = max(y * size[0] / x, 1); x = size[0] if y > size[1]: x = max(x * size[1] / y, 1); y = size[1] size = x, y that is, it shrinks the image horizontally first, and it then shrinks the resulting image vertically: >>> 816 * 697 / 800 710 >>> 697 * 697 / 710 684 </F> -- http://mail.python.org/mailman/listinfo/python-list