If I need to do something thousands of times, I'd write a tiny little script to do it.
Anything related to images, I'd use ImageMagick suite of tools. 'convert' can convert pretty much any popular image format into any other popular image format and it is easily script-able.

For example, when I need to take any image and compress it from the original to be used on a website, I use a script like this:
Code:
$ more ~/bin/img-opt.sh 
#!/bin/bash
QUAL=40

for img in "$@"; do
  NEW=${img/%.???/-opt.jpg}
  echo " Working on $img ..."
   convert -quality $QUAL  "$img"  "$NEW"

done
To run it over all png files in a directory, I'd use:
Code:
~/bin/img-opt.sh  *png
For 20 images, it would probably complete before I could stand up. For 500 images, it would probably finish before I could brew a pot of coffee. That script uses "convert". If you remove the -quality $QUAL part of the line and fed in *BMP (Unix is case sensitive), then you'd end up with jpg files. For web publishing, jpg with loss allowed can usually get much smaller than others file types.

Want some other type? Just change the NEW= line where it swaps the '.???' into whatever you prefer. Convert will make assumptions based on the file extension you there are options to force a specific type regardless of the filename. Unix doesn't care at all about extensions, but some programs do. Humans seem to find comfort in file extensions, but really we trust those too much. We can easily put a GIF into a .jpg file and most Unix image viewers will handle it fine because the first few lines of most file formats actually says what type of file it is, so the extension isn't trusted.