'PNGGauntlet' Articles

PNGGauntlet 3.1.2 - Bugfixes and forced PNG conversion

PNGGauntlet 3.1.2 is a minor update that resolves some bugs, and adds a much-requested option. First, the bugfixes - PNGGauntlet will now correctly add directories that have a ’.’ in their name. Previously, it’d reject the whole directory, saying it was an unrecognized image extension. Now it works as expected. I’ve also tweaked the way PNGGauntlet handles temp files, so if you’ve been getting errors about not being able to write or delete temp files, this should address that.

The only new feature is an option labeled “Always convert files to PNG even if it would make them larger” in the Options dialog. PNGGauntlet has always single-mindedly gone for the smallest files it could, and this meant that when it converted from something like JPEG to PNG and the resulting file was larger, it’d just leave the JPEG and not write the PNG. After all, if a graphic was already smallest as a JPEG, then it should stay that way. However, I’ve had many people asking for PNGGauntlet to convert those files to PNG anyway. So the option is now there if you want it.

PNGGauntlet 3.1.1 fixes bugs and improves canceling

I was hoping PNGGauntlet 3.1.0 would be the last release I’d need to do for a while, but it looks like there were still a few bugs that needed to be fixed. 3.1.1 is out and fixes all the bugs that were reported to me. The most important was a bug where you could add a non-PNG image to PNGGauntlet, and after compressing the image would convert to PNG, but still have its old file extension. Now, the file extension will be changed to .png as you’d expect. Besides that, I’ve made it so that PNGGauntlet will run on the smaller .NET 4.0 Client profile, and I’ve fixed the “Cancel Optimize” button so it’ll cancel immediately, killing any in-progress compressors, rather than waiting for the current compressor to finish. That’s particularly helpful since some images can take minutes to compress. Please grab 3.1.1 if you haven’t already, and feel free to email me if you notice anything still broken.

PNGGauntlet 3.1: Bugfixes and parallel file compression

It’s been less than a week since PNGGauntlet 3 was released, and now PNGGauntlet 3.1 is out! It turns out that when I found PNGGauntlet 3, forgotten and incomplete, I hadn’t realized exactly how incomplete it was. Most everything worked, but the options dialog was only half-implemented, not allowing you to change OptiPNG and DeflOpt options. Worse, I’d broken the ability to launch PNGGauntlet with command-line options, which also broke the “Open With…” feature introduced in 2.0.1. I wanted to fix those bugs, but I know that I personally hate it when I update a program only to have another update right away. I knew I needed some neat feature to add to make it more palatable to update, and the only thing I could think of was the feature that everybody asks me for every time I release PNGGauntlet. So I did it – PNGGauntlet will now use all of your processor cores to compress files in parallel. You can turn it off if you don’t want it, but in my tests on an older dual-core machine, it halved the time to compress a batch of images. Hopefully that will make this update go down a bit smoother.

Update: OK, so it looks like there are still a few bugs, introduced by adding the parallel compression and the new compressors. Non-PNG files are being converted to PNG but keeping their original file names, and errors are popping up while parallel-compressing files. Sorry, I’ll have a 3.1.1 version out soon that addresses these. No, I didn’t “remove features” in favor of nonsensical behavior, these are all just bugs.

PNGGauntlet 3: Three compressors make the smallest PNGs

This weekend I released a major update to PNGGauntlet, my PNG compression utility for Windows. A lot has changed, including a lot of bug fixes, but the biggest news is that PNGGauntlet now produces even smaller PNGs! I did a bunch of research, and I found that combining the powerful PNGOUT utility that PNGGauntlet has always used with OptiPNG and DeflOpt, even more bytes could be shaved off of your PNG images. The contributions from OptiPNG and DeflOpt are often small compared to what PNGOUT does, but if every byte counts, you’ll be happy with the new arrangement. The new compressors do slow down the process a bit, though, so you can turn them off if you don’t want them.

That’s not all that’s changed, however. The UI has been streamlined, leaving only the most essential options. Drop files on the app, hit Optimize, and don’t worry about the rest. However, if you want to tweak the compressors, there’s an all-new options panel that exposes every possible setting for each compressor. The PNGGauntlet website has also been overhauled with a much more modern look.

Before you ask, no, the new PNGGauntlet will not compress multiple images at once to make use of multicore processors. I cover this in the FAQ, but since Ken Silverman, PNGOUT’s author, provides a professional PNGOUT for Windows that’s multicore-optimized for only $15, I don’t want to compete by matching PNGOUTWin’s feature set. It’s absolutely not a matter of not knowing how to do it. And anyway, the individual compressors do a good job of using multiple cores on their own.

One question that deserves an answer is why there was no PNGGauntlet release in the last year and a half. The answer is essentially that I forgot about PNGGauntlet. The last release, 2.1.3, was in May of 2010. That December, I did some work on a new version of PNGGauntlet, incorporating the new compressors and slimming down the UI. After I’d done that, I decided that I wanted to overhaul the UI completely - it’s built with the old Windows Forms technology and a pretty rickety open source data table library, and I’ve always been embarrassed by how crude it looks. My plan was to use Windows Presentation Foundation (WPF), which was supposed to be the new way of developing UIs for .NET apps. However, I soon discovered that Microsoft’s WPF libraries don’t really give you a native-looking UI. Applications developed with WPF look kinda like Windows apps, but they’re off in a bunch of subtle ways that really bothered me. So I ended up starting to draw my own controls to match Windows 7 more closely. And after a while down that rathole, I sorta gave up and shelved the whole project in disgust.

Since then, I’ve actually switched to using my Macbook Air, in OS X, almost exclusively, and I almost never use my Windows machines. The prospect of developing Windows apps no longer interests me much, and I don’t really use PNGGauntlet anymore myself (I use the very nice Mac analogue ImageOptim). PNGGauntlet still worked, so it stayed out of my mind until @drewfreyling messaged me on Twitter asking about incorporating the latest version of PNGOUT into PNGGauntlet. I figured it would be pretty simple to do a minor update, but when I booted up my old desktop and took a look at the code, I found my mostly-completed update just waiting to be released. So, no new slick modern UI, but I was able to spend an hour finishing up what I had and release it as PNGGauntlet 3. Hopefully it’ll be a useful and welcome upgrade to both new and existing PNGGauntlet users.

PNGGauntlet 2.1 with Windows 7 integration

Last week I pushed a new update to PNGGauntlet, version 2.1. It’s been almost two years since the last PNGGauntlet update, and 2.1 doesn’t bring a lot of new stuff - it’s mainly bug fixes and optimizations. But there are some cool new bits. My favorite is that PNGGauntlet now integrates with the Windows 7 taskbar to show compression progress on its taskbar icon.

It isn’t a huge feature, but it lets you keep an eye on a big compression job while you’re doing other things. PNGGauntlet is slightly prettier in other areas, too, especially the list of files, which is also now sortable.

The other neat thing is that PNGGauntlet now registers itself as a handler for compatible image files on install now. This means that you can right-click an image, go to “Open With…” and select PNGGauntlet, and it’ll open right up with your file ready to go.

Beyond that, a couple bugs have been fixed where you could get PNGGauntlet into a weird state or hang. Check out the full changelog for all the features and fixes.

PNGGauntlet 2.0.2

I thought everything was going well with PNGGauntlet 2 until I got a comment reporting some problems with it at the beginning of the month. It’s taken me almost a month to get a chance to sit down and check out the problem (August is always really busy since people are usually visiting). When I started digging into the code, I realized that I hadn’t actually made some key changes to the code that I thought I had made, and as a consequence, a lot of PNGGauntlet didn’t actually work. For example, the whole PNGOUT Options panel wasn’t actually wired up to anything, and the “Open With” functionality I added in 2.0.1 didn’t actually call the right functions, and didn’t work either. Wow. This is what I get for not having tests set up for this code (it was written before I understood how to write tests). So it is with great humility that I submit to you PNGGauntlet 2.0.2, which I have quite a bit more confidence in. Hopefully most people were using just default settings (like I usually do) and weren’t bitten too bad by the problems in the earlier versions. As usual, you can check out the full list of fixes.

Interestingly, one of the two problems in the original comment that got me working on PNGGauntlet again wasn’t actually a PNGGauntlet or PNGOUT bug. It turns out that Photoshop, Gimp, and Paint Shop Pro all don’t support 8-bit PNGs that have an alpha channel. Who knew? I tend to use either Fireworks or Paint.NET, which both support 8-bit PNGs completely, so I never knew.

PNGGauntlet 2.0.1

Just a quick update, I just uploaded a new version of PNGGauntlet that fixes a couple of annoying bugs, as well as making it so you can use the “Open With” menu to open files in PNGGauntlet. Just right click, select “Open With”, select “Choose Default Program”, and browse for PNGGauntlet.exe in its install folder. Be sure to uncheck “Always use the selected program to open this kind of file” if you want PNGGauntlet to just show up in the menu instead of always opening for that type of file.

Grab the updated file from the PNGGauntlet homepage and enjoy your smaller PNGs.

Announcing PNGGauntlet 2.0

It’s been about three years since I last released an update to PNGGauntlet. This PNG image optimizing tool has been very popular, but has been sorely in need of a refresh. Today I’m excited to announce a major update, PNGGauntlet 2.0.

The most important new feature of PNGGauntlet 2.0 is that it runs on .NET 2.0 (and 3.0, and 3.5). This means that Windows Vista users can just install it without having to download anything else. This has also allowed me to use some more modern .NET features in order to smooth out the program’s internals. I’ve also done a few more things to make PNGGauntlet explicitly compatible with Vista, including the new, high resolution gauntlet icon.

PNGGauntlet Screenshot

The UI is pretty different, making better use of space and finally making every single PNGOUT option accessible. Check out the old 1.1 interface to compare. You’ll see that most of the controls have been moved over to an “Advanced Options” window where you can tweak PNGOUT to your heart’s content. The main window has been greatly simplified and gives much better feedback on the compression job, with individual progress bars for each file, highlighting of the currently compressing file, and a status bar that keeps track of the total kilobytes you’ve saved.

The program itself has had a lot of bugs fixes and inefficiencies stomped out, and some less obvious features have been added. One of those is that dropping a directory onto PNGGauntlet will recursively add all the files in the directory (and its subdirectories) to the current optimization job. Also, you can copy (Ctrl-C) files in Windows Explorer and paste (Ctrl-V) them into PNGGauntlet. This should make it much easier to get the files you want into the app. If you want to see everything that’s changed, take a look at the full changelog.

I wrote PNGGauntlet nearly 5 years ago as my very first C# program (and my first Windows app!). At the time, I wanted to be able to run PNGOUT (a commandline tool for optimizing PNGs) and pngrewrite (another commandline tool that could mess with PNG palettes to make PNGOUT more effective) together on large sets of PNG images easily. Then PNGOUT added the features of pngrewrite and I no longer needed that, so I modified PNGGauntlet to run PNGOUT multiple times in order to search for the smallest file size. Since then, PNGOUT has added that feature too. So now PNGGauntlet is really just a fancy GUI for running PNGOUT.

I never really intended for PNGGauntlet to be anything more than a learning exercise for me, but it’s become moderately popular, so I felt obliged to update it (and make it easy for me to install on my own Vista systems). However, in the intervening time Ken Silverman (creator of PNGOUT) has released his own commercial PNGOUT GUI, called PNGOUTWin. I haven’t looked at it too closely, but the program runs PNGOUT in a much more elegant way, and can even compress multiple files at once to take advantage of modern multicore processors. It’s only $15, so I suggest you pick it up if you use PNGOUT or PNGGauntlet a lot. It’s also nice to see that Ken has released Linux and Mac OS X versions of PNGOUT, so I can use it at work too!

Thanks to everyone who’s been emailing me asking about PNGGauntlet and giving me suggestions. I hope this is what you were wanting.