[PNG:TDG cover; animal = kangaroo rat]

[PNG icon] PNG: The Definitive Guide

ISBN 1-56592-542-4
344 pages
June 1999

(Out of print as of October 2001, alas.)
(Released online as of July 2003!)   [download zipfile of complete text in HTML format]

By golly, a whole book devoted to PNG!

Indeed, PNG: The Definitive Guide is for real; Greg received his first copy on 24 June 1999. The book is 344 pages (352 if you count the catalog info in the back), plus four pages of really cool color plates, and the publisher is O'Reilly and Associates. (The cover animal originally was to be a "pnguin," but Tim O'Reilly declared that they're reserved for Linux books. Argh, so close...)

The book is divided into three main parts and is targetted at both designers and programmers. Part I, Using PNG, consists of six chapters and covers the main categories of PNG-supporting applications: image editors, viewers, converters, web browsers and servers, and 3D apps. Chapter 1 also provides a basic overview of image types and properties.

Part II, The Design of PNG, also consists of six chapters and looks in more detail at PNG as a file format. It covers not only PNG's fundamental chunk structure and compression technology but also its history, its animated cousin MNG, and some of the intricacies of cross-platform gamma and color correction.

Part III, Programming with PNG (four chapters), steps the reader through the design of three functional demo programs based on the free libpng C library: rpng, a very simple PNG viewer; rpng2, a progressive PNG viewer such as might be found in a web browser; and wpng, a basic program to convert RGB image data from binary PBMPLUS / NetPBM format into PNG format. The final chapter in this section lists a number of other PNG-supporting programming toolkits for various languages, including C, C++, Java, Perl, Python, tcl/tk, and Visual Basic.

Here's a quick directory to more detailed information on PNG: The Definitive Guide:

Publisher and bookstore pages:


Related Books

Though PNG: The Definitive Guide is the only book devoted solely to PNG (to Greg's knowledge, anyway), a number of other books cover it in one or more chapters. Here are some of them.

Data Compression: The Complete Reference, 3rd Edition - David Salomon (March 2004)
Salomon added a four-page section on PNG in the third edition of his 900-page overview of compression techniques. The author's web site includes an additional 200 pages of freely downloadable auxiliary material (appendices) that were removed from this edition, as well as some other add-ons.

Lossless Compression Handbook - Khalid Sayood, ed. (December 2002)
This is a more academically oriented collection that covers lossless compression techniques from "generic data" to images to audio. Greg wrote the chapter on PNG image compression; it goes into considerably more technical detail than does the corresponding chapter in PNG: TDG.

Designing CSS Web Pages - Christopher Schmitt (September 2002)
As the title suggests, the focus of Schmitt's book is on Cascading Style Sheets. However, the author also covers a number of image formats, including PNG and SVG in one chapter.

Compressed Image File Formats: JPEG, PNG, GIF, XBM, BMP - John Miano (July 1999)
Miano's book is oriented toward programmers who want to write not only programs that support various image formats but also the underlying image decoders. His PNG codec is one of the few independent implementations outside of libpng; C++ source code is available from the book's web page.

Java 2D Graphics - Jonathan Knudsen (May 1999)
Knudsen's book is a higher-level programming text that covers numerous image-related concepts supported by the Java 2D API. Chapter 11 includes a section on how to write a PNG decoder.

Perl Graphics Programming - Shawn P. Wallace (December 2002)
Wallace's book is also a higher-level programming guide; while it does include a simple Perl module that can parse and check the CRCs of PNG chunks, it is primarily geared toward the use of existing libraries (such as libpng, zlib and ImageMagick) from various scripting languages, especially in the context of CGI (server-based) programming. This is basically the second edition of Programming Web Graphics with Perl and GNU Software (February 1999).

Web Design in a Nutshell - Jennifer Niederst (November 1998, September 2001)
Niederst's book lies on the other end of the spectrum; her PNG chapter is oriented toward web designers who want to know the basic features of PNG and a few of the browsers and applications that support it. The second edition, published in 2001, contains updated PNG information. (Jennifer is also the person who put Greg up to writing PNG: TDG.)

Encyclopedia of Graphics File Formats, 2nd Edition - James D. Murray, William vanRyper (May 1996)
This 1100-page tome is a classic. Its PNG section is a good, readable summary of the main points of version 1.0 of the PNG specification, including one or two paragraphs on each of the PNG chunks that were defined at the time. In addition, both the spec and a (very old) version of libpng are included on the accompanying CD-ROM.

Windows and OS/2 Bitmapped Graphics - Steve Rimmer (July 1996)
Rimmer's book includes a CD-ROM with 16-bit and 32-bit Windows DLLs (and presumably OS/2 DLLs as well) for a number of image formats, including PNG. It is reported to work fine with Delphi, at least as of mid-1998. (This is the second edition; the first appears to have been published in January 1993--two years before PNG existed--with the title, Windows Bitmapped Graphics.)

Here are some related PNG pages at this site:

[Valid HTML 4.01] [primary site hosted by SourceForge] Last modified 14 March 2009.

Copyright © 1999-2009 Greg Roelofs.