I recently tried Crunch, an open-source tool for PNG image file optimization, currently on version 2.0.2 at the time of writing.
According to the Crunch page, is slightly lossy. This is fine for my purposes (i.e. the PNGs on this web site) as long as the PNGs are as optimized (smallest file size) as can be:
It combines selective bit depth, color type, and color palette reduction with zopfli DEFLATE compression algorithm encoding using the pngquant and zopflipng PNG optimization tools. This approach leads to a significant file size gain relative to lossless approaches at the expense of a relatively modest decrease in image quality.
I did a quick comparison with ImageOptim, currently at version 1.8.0.
In the first two cases I could run Crunch + ImageOptim to get the file slightly smaller, in my case by another 1% and 3.5% respectively. In the third case, the file size after Crunch + ImageOptim was smaller, but still was larger than if I just used ImageOptim!
Crunch does very well and is very fast. ImageOptim is often better, but it takes more processing power and time as it tries multiple algorithms.