PureJPEG, the Return of 40kB Vengeance

2016 NOTE: This old image processing utility is still entirely useful, and still is one of the best of class options. For users who might have moved on to video as well, and who are using Android devices, check out my other project – Gallus: Insanely awesome video stabilizing / hyperlapse / instrumentation. Tell a friend! Thanks!

Just under a decade ago I happened to be working on some JPEG image processing code (exploring color theory, which is a recurring theme here) when Joel Spolsky mentioned on his blog that he’d undertaken some efforts to optimize his site, cleaning up and compressing the HTML, and so on. Being a fan and reader of Joel’s missives, and a blatant opportunist, I wrapped up a subset of the code to filter out JPEG application blocks and sent it to Joel as a utility.

He very kindly gave a shout out to it.

Over the years I’ve moved and rearranged websites a number of times, that link going cold and derelict. Yet remarkably I still get upwards of 30 people a day looking for it, presumably owing to the enormous net influence of Joel. I’m going to put an nginx redirect from that old URL to this blog entry.

So here it is for those still searching for it. It’s a Win32 binary with essentially no dependencies, so it should still work on pretty much any Windows x86 variant. That executable is as compiled in 2004. Obviously it’s a binary file (all 40,960 bytes of it), so whether you trust it or not is up to you.

Of course there are many other tools that do something similar, though note that those that have you loading and resaving the file will recompress the image, with some loss of fidelity. PureJPEG, in contrast, simply removes usually ancillary application blocks from the JPEG file as it stands, though note that this can also remove custom color profiles, so verify the outputs relative to the inputs.