Pingo is a portable command-line tool which can reduce the size of JPEG and PNG files by 50% or more.
You're able to choose between lossless techniques to preserve quality, or lossy compression for the maximum possible size reductions.
Entering pingo at the command line displays the various switches on offer. There are 5 lossless modes, ranging from -s0 (fast but not-so-good compression) to s4 (slow but best compression), and 3 lossy modes, each with a different effect on the image.
Before you do anything, keep in mind that PINGO WILL OVERWRITE YOUR SOURCE IMAGES. Yes, that's stupid, but it's the way it works. Only use the program with backed-up files.
Once you're at the command line, pingo is surprisingly easy to use. At a minimum you can point it at the files you need and it'll process them automatically.
You can have the program process everything in a folder and all subfolders, though keep in mind that it will OVERWRITE THE ORIGINAL FILES.
To take manual control, specify the relevant switch before the file or folder. This is how you apply the best possible lossless compression, for instance.
pingo -s4 photo.png
But remember, the source photos are replaced by pingo's compressed files.
Pingo is an effective image optimiser, but can also be dangerous. The program overwrites its source images without warning, and can also spider through an entire folder tree, so passing it the wrong parameter could be disastrous. Use it, but carefully, and on backed-up systems only.