Just read a great howto on Perishable Press demonstrating a few ways to optimize PNG without losing image quality. I noticed that OptiPNG hadn’t been updated so I decided to compile it myself. I just got my build environment set up to compile x64 as well, so I decided to give that a shot while I was at it. I noticed a fairly significant decrease in optimization time with the x64 version on my hardware so I figured I’d share the binary. You mileage may vary, depending on your hardware, but here are my unscientific benchmarks based on a small 3DS rendering I did not long ago:

Source: 640×480 pixels, 4×16 bits/pixel, RGB+alpha

OptiPNG 0.6.2.1 x32:
Output IDAT size = 384602 bytes (10771 bytes decrease)
Output file size = 384659 bytes (11347 bytes = 2.87% decrease)

46.9 seconds

OptiPNG 0.6.2.1 x64:
Output IDAT size = 384602 bytes (10771 bytes decrease)
Output file size = 384659 bytes (11347 bytes = 2.87% decrease)

41.6 seconds

For very large and complex files, the time/size savings are marginal, but could be useful when processing a large batch of files. Another intersting feature of OptiPNG is it’s ability to work with 48bit PNG’s… a feature that many commercial tools seem to lack.

Source: 1920×1080 pixels, 4×16 bits/pixel, RGB+alpha

OptiPNG 0.6.2.1 x32:
Output IDAT size = 9816277 bytes (108632 bytes decrease)
Output file size = 9816334 bytes (123164 bytes = 1.24% decrease)

16 minutes, 46 seconds

OptiPNG 0.6.2.1 x64:
Output IDAT size = 9816277 bytes (108632 bytes decrease)
Output file size = 9816334 bytes (123164 bytes = 1.24% decrease)

16 minutes, 20 seconds

Here are the same files optimized by pngcrush for comparison *official win32 binary only as I was unable to get it compiled for either arch.

Small file (29.000 seconds):
Best pngcrush method = 124 (fm 5 zl 9 zs 1) for small.png
(2.65% IDAT reduction)
(2.80% filesize reduction)

CPU time used = 29.000 seconds (decoding 2.962,
encoding 25.868, other 0.170 seconds)

Large file (9.99835 minutes):
Best pngcrush method = 12 (fm 1 zl 2 zs 2) for large.png
(1.09% IDAT reduction)
(1.24% filesize reduction)

CPU time used = 599.901 seconds (decoding 25.295,
encoding 571.670, other 2.936 seconds)

Download OptiPNG 0.6.2.1 x64 Windows Binary

MD5: a7bb617dce7991b0814ed5c1534a0845
SHA1: 3d206584075b2ce555d2d7b3379e480101bccffd

This x64 package is not built or maintained by Cosmin TruĊ£a, the creator of OptiPNG. Please don’t bother him with bug reports or help requests unless you’ve confirmed the problem exists in his official packages as well.

This tutorial will show you how to set up GPG for use with Firefox and Gmail on Win32 and Linux systems.

What you need:
Firefox
GPG

GPG allows to encrypt and sign your data and communication, features a versatile key management system as well as access modules for all kind of public key directories.

Win32: gnupg-w32cli-1.4.9.exe is the latest at this time.
Linux: gpg should be installed by default on most distros, if not, you’ll need to get the tar.gz and do the compile dance:
tar xvzf gnupg-?.?.?.tar.gz
./configure
make
(sudo) make install

FireGPG

FireGPG is able to detect PGP blocks in any page (for example a public key), and lets you easily manage these different blocks.

A movie or some other large file. It seemed to speed up generating my 4096-bit keys considerably.

Once you’ve installed the binary and Firefox plugin, you need to generate a new key.
Win32:
Start > Run > cmd
cd \
cd "Program Files\GNU\GnuPG"
gpg --gen-key

Linux:
Open a terminal and type:
gpg --gen-key

Tips:
Use a random password generator to generate a strong password.
Answer the questions, defaults are ok. When it starts to generate a key, start watching your movie.

Now, open up Firefox and verify that FireGPG has automatically found your new key:
Tools > FireGPG > Key Manager
You should see your new key in the list.

Now you can test it in Gmail by sending yourself a message with “Clear sign and send” option:

FireGPG has a bunch of other features that you’ll become familiar with as you browse the web from day to day. Gmail is really popular, so I figured this would be the best example of its usage. Leave a comment if you have found other unique tips that you want to share.

© 2010 nukeitdotorg Suffusion WordPress theme by Sayontan Sinha