imagemagick convert tool. It's a command line tool that works well both in Linux and Windows.
for converting a single image:
convert dragon.gif -resize 50% half_dragon.gif
Or, if you prefer thumbnails with a fixed size (here, 4096 pixels):
convert dragon.gif -resize 4096@ pixel_dragon.gif
Or the most common use - resize into a given size:
convert dragon.gif -resize 64x64 resize_dragon.gif
And for a large amount of image, quick-resize is available:
The resize operator can also be
applied to images immediately after
being read, before it is added to the
current image sequence and the next
image is read.
So,
convert dragon.gif'[64x64]' read_dragon.gif
Is probably the correct answer to your question.
These examples are taken from the resize section of the imagemagick.org site; you can find numerous other examples there.
for converting a while library of images, you can write a small shell script, like:
for file in `ls`;
do
convert $file -resize 4096@ thumb_$file
done
For a very large amount of files, you might want to use Linux's find -exec
to overcome the very long argument list which ls
would yield.