Resizing pictures for file size

Hello,

I’m using rmagick but I’m open to other libraries if needed. I want to
resize an image, scale actually (mantaining the aspect ratio) so that
the
size of the file is lower than a certain amount of bytes. Any ideas
how to
do this?

Thanks.

J. Pablo Fernández wrote:


J. Pablo Fernández [email protected] (http://pupeno.com)

I can’t speak for other libraries, but this is not possible with
RMagick. This question comes up from time-to-time on the ImageMagick
forum but the answer is always “not possible” other than just by
trial-and-error.

On Mon, 2008-02-04 at 08:34 +0900, Tim H. wrote:

Thanks.

J. Pablo Fernández [email protected] (http://pupeno.com)

I can’t speak for other libraries, but this is not possible with
RMagick. This question comes up from time-to-time on the ImageMagick
forum but the answer is always “not possible” other than just by
trial-and-error.

What exactly is not possible? Resize according to the certain amount of
bytes after the resize?

David Moreno wrote:

bytes after the resize?

There is no method in RMagick that takes an image and a file size in
bytes and returns an image that, when saved to a file, produces a file
close to or no larger than the specified size. The file size depends on
the image format, the compression level, and the image itself.

Marcin R. wrote:

mean and min from qualities.

now you have 2 qualities - one that 50% of images should fit with size -
and second that almost all should fit.

that’s assuming that your surce images have simillar resolutions.

greets

Sounds like a plan. Maybe the OP will adopt it if he can’t find a
library that will do what he wants automatically.

There is no method in RMagick that takes an image and a file size in
bytes and returns an image that, when saved to a file, produces a file
close to or no larger than the specified size. The file size depends on
the image format, the compression level, and the image itself.

There are tools that can estaminate size of file after compresion - but
they’ll never give you exact size without actual compression.

So … you take script, 20-30 simple images, take each one, start with
some quality - and incrementally decrase untill size fits, then you take
mean and min from qualities.

now you have 2 qualities - one that 50% of images should fit with size -
and second that almost all should fit.

that’s assuming that your surce images have simillar resolutions.

greets