Predicting Thumbnail Sizes from PIL

R

Roger

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.

Is there an easy rule that will always work -- like adding .67 instead
of .5?

Roger
 
F

Fredrik Lundh

Roger said:
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:
684

</F>
 
F

Fuzzyman

Fredrik Lundh wrote:
[snip..]
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:
684

Thanks ! This was also helpful to me.

Fuzzyman
http://www.voidspace.org.uk/python
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,768
Messages
2,569,575
Members
45,053
Latest member
billing-software

Latest Threads

Top