Portable Network Graphics |
The PNG graphics format was defined during 1995-96 to overcome the problems
with the copyright issues of GIF. The compression of PNG (where all the
copyright issues started with) is based on the zlib algorithms from Mark
Adler e.o., which is free software donated to the public domain.
PNG is a loss-less format and doesn't compete with JPEG. The latter is perfect to store scanned or photographic images. PNG on the other hand is superior for computer generated images, be it from CAD packages or from rendering software. Besides the goal to create a public domain format, at the same time the oportunity was taken to make it into a better standard then GIF. This has resulted into a number of important features:
black & white, paletted and full color formats
The full list of goodies in PNG is much longer, but this gives a taste. For further info on PNG, including the formal specification, the libraries available for reading or writing PNG images and an overview of the applications available, the PNG Home Page is the place to visit. |
PNG is using a two-dimensional interlacing algorithm that is superior
to the interlacing used in GIF89a images. This algorithm, named Adam7 after it's
inventor, uses seven passes to send the complete picture. In the first pass
only 1 out of 64 pixels is transmitted, which results in a very quick impression
what the image will look like. For a demonstration of Adam7 interlacing and a comparison with the algorithm in use by GIF, click here or on the button on the left. |
A quick and dirty implementation of a converter for NetPBM images that contain an alpha channel. This was developed as an ad interim solution until the upgrade of pnmtopng to pamtopng. This program isn't removed because pam2png doesn't require the netpbm libraries. On my blog more info on this tool. |
Each chunk in a PNG image is verified for corrupted data using a CRC32 checksum. When you modify a PNG image by hand, the data changes and the checksum isn't valid anymore. For that purpose I created this little tool, called pngcsum, that takes such a modified PNG, recalculates the checksums and writes it out to an again valid PNG file. |
One of the big features in which PNG out-performs GIF, is it's capability of storing images that include an alpha-channel. This finally enables proper anti-aliasing and eliminates the (on the web so common) badly colored outlines around images and fonts. Unfortunately the big browsers, allthough supporting PNG, don't handle these images with alpha-channels well. AlphaMix is a Windows-95/NT program that demonstrates how semi-transparent PNG images should be displayed against background images or plain background colors. |
While doing all this software development for PNG, I got a big need for images to test the proper functioning of my programs. After many intermediate steps this has finally resulted into PngSuite, the official set of test images for PNG. |