Do you know of any tools (preferrably command-line) to automatically and losslessly optimize JPEGs that I could integrate into our build environment? For PNGs I’m currently using PNGOUT, and it generally saves around 40% bandwidth/image size.
At the very least, I would like a tool that can strip metadata from the JPGs – I noticed a strange case where I tried to make thumbnail from a photograph, and couldn’t get it smaller than 34 kB. After investigating more, I found that the EXIF data was still part of the image, and the thumbnail was 3 kB after removing the metadata.
And beyond that – is it possible to further optimize JPGs losslessly? The PNG optimizer tries different compression strategies, random initialization of the Huffmann encoding etc.
I am aware that most savings come from the JPEG quality parameter, and that it’s a rather subjective measure. I’m only looking for a tool that can be run as a build step and that losslessly squeezes a few bytes from the images.
I use libjpeg for lossless operations. It contains a command-line tool jpegtran that can do all you want. With the commandline option
-copy noneall the metadata is stripped, and-optimizedoes a lossless optimization of the Huffmann compression. You can also convert the images to progressive mode with-progressive, but that might cause compatibility problems (does anyone know more about that?)