[PNG:TDG cover, PNG or GIF version]

[PNG icon] PNG: The Definitive Guide

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

By golly, a whole book devoted to PNG!

Indeed, PNG: The Definitive Guide is for real; it went into production on 22 February 1999, Greg finished responding to copyedits on 2 April, and after a couple of rounds of ``quality checking,'' it will head to the printer in late May or early June. The book will be 344 pages (including 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...)

Those who have checked this page previously may have noticed some oddities with the page count. The original plan was to include all five PNG-related specs (PNG, PNG extensions, MNG, zlib, deflate) as appendices, as well as full (printed) source code to the demo programs. That rang in at somewhere between 710 and 740 pages, which was judged impractical due to cost. The next plan was to print only the PNG and PNG extensions documents as appendices (about 475 pages) and include a CD-ROM. But despite Greg's best efforts (and despite the word ``Definitive'' in the title), inclusion of any specifications was vetoed. (For what it's worth, HTML: The Definitive Guide doesn't include the HTML 4.0 spec, either.)

The CD-ROM would still have been possible, but based on a mini-survey conducted within the PNG Group, most people would just as soon download specs, source code, software and images from the Internet; CD-ROMs are generally not used very much and add an annoying stiffness to the back cover of books. Also, Greg would have liked to have made it a truly useful and complete CD-ROM; among other things, it would have been nice to include a multi-platform web browser with really good PNG support. Since such browsers don't exist yet, Greg decided to hold off with any CD-ROM until a (possible) later edition, and then only if there seems to be demand for it.

For now this page includes only the book's outline and a link to the O'Reilly page. The complete source code to the three demo programs (all of which work under both Unix and 32-bit Windows and may be modified and reused freely under a BSD-like license) will show up here soon, too.

(The following outline will be converted to a bulleted list shortly.)

Preface
   - About This Book
     - Part I, Using PNG
     - Part II, Design of PNG
     - Part III, Programming with PNG


   - Conventions Used in This Book
   - How to Contact Us
   - Acknowledgments

Part I:  Using PNG

   Chapter 1:  An Introduction to PNG
      - Overview of Image Properties
      - What is PNG Good For?
        - Alpha Channels
        - Gamma and Color Correction
        - Interlacing and Progressive Display
        - Compression
        - Compression Filters
        - Compression Oopers
        - Summary of Usage
      - Case Study of a PNG-Supporting Image Editor
        - PNG Feature Support in Fireworks
        - Invoking PNG Features in Fireworks
        - Analysis of Fireworks PNG Support
        - Concluding Thoughts on Fireworks

   Chapter 2:  Applications: WWW Browsers and Servers
      - WWW Browsers
        - Netscape Navigator
        - Microsoft Internet Explorer
        - Opera
        - Acorn Browse
        - Arena
        - Amaya
        - Other Browsers
          - Amiga
          - Acorn
          - BeOS
          - Macintosh
          - NeXTStep / OpenStep
          - OS/2
        - Client-side Work-Arounds:  the OBJECT Tag
      - WWW Servers
        - ``Standard'' Servers
        - Internet Information Server
        - Server-side Work-Arounds:  Content Negotiation
          - Apache variants files
          - Apache MultiViews

   Chapter 3:  Applications: Image Viewers
      - Windows 95/98/NT
      - Windows 3.x
      - VMS
      - Unix
      - OS/2
      - Macintosh
      - Java
      - DOS
      - BeOS
      - Atari
      - Amiga
      - Acorn RISC OS

   Chapter 4:  Applications: Image Editors
      - Photoshop 5
      - Photoshop 4
      - ImageReady
      - Paint Shop Pro
      - The Gimp
      - Other Image Editors

   Chapter 5:  Applications: Image Converters
      - pngcrush
      - pnmtopng
      - gif2png
      - Tiff2png
      - pngcheck
      - Other Conversion Programs

   Chapter 6:  Applications: VRML Browsers and Other 3D Apps
      - Cosmo Player
      - WorldView / MSVRML
      - blaxxun Contact
      - Viscape Universal
      - LibVRML97 / Lookat
      - FreeWRL
      - VRMLView
      - Other VRML Browsers
      - Other 3D Applications

Part II:  The Design of PNG

   Chapter 7:  History of the Portable Network Graphics Format

      - Anatomy of an Internet Working Group
      - Implementation
      - MNG
      - Mainstream Support and Present Status

   Chapter 8:  PNG Basics
      - Chunks
      - PNG Signature
      - A Word on Color Representation
      - The Simplest PNG
      - PNG Image Types
        - Palette-based
        - Palette-based with Transparency
        - Grayscale
        - Grayscale with Transparency
        - Grayscale with Alpha Channel
        - RGB
        - RGB with Transparency
        - RGB with Alpha Channel
      - Interlacing and Progressive Display

   Chapter 9:  Compression and Filtering
      - Filtering
      - The Deflate Compression Algorithm
        - A Final Word on Patents
      - Real-World Comparisons
      - Practical Compression Tips
        - Tips for Users
        - Tips for Programmers

   Chapter 10:  Gamma Correction and Precision Color
      - Transfer Functions and Gamma
      - The gAMA Chunk
      - Encoding Gamma
      - Gamma Gotchas
      - Chromaticity
      - Color Management Systems and sRGB
      - ICC Profiles

   Chapter 11:  PNG Options and Extensions
      - Background Color (bKGD)
      - Timestamp (tIME)
      - Latin-1 Text Annotations (tEXt, zTXt)
      - International Text Annotations (iTXt)
      - Histogram (hIST)
      - Suggested Palette (sPLT)
      - Significant Bits (sBIT)
      - Physical Pixel Dimensions (pHYs)
      - Physical Scale (sCAL)
      - Image Offset (oFFs)
      - Pixel Calibration (pCAL)
      - Fractal Parameters (fRAc)
      - GIF Conversion Info (gIFg, gIFx)
      - GIF Plain Text (gIFt)
      - Other Chunks

   Chapter 12:  Multiple-Image Network Graphics
      - Common Applications of MNG
      - MNG Structure
        - Image-Defining Chunks
        - Chunks for Image Display, Manipulation, and Control
      - The Simplest MNG
      - An Animated MNG
      - An Algorithmic MNG
      - A JPEG Image with Transparency
      - MNG Applications
      - The Future?

Part III:  Programming with PNG

   Chapter 13:  Reading PNG Images
      - A libpng-based, PNG-Reading Demo Program
      - Preliminaries
      - readpng_init()
        - sidebar:  The Dark Side
      - readpng_get_bgcolor()
      - Design Decisions
      - Gamma and Color Correction
      - readpng_get_image()
      - readpng_cleanup()
      - Compositing and Displaying the Image
      - Getting the Source Code
      - Alternative Approaches

   Chapter 14:  Reading PNG Images Progressively
      - Preliminaries
      - readpng2_init()
        - sidebar:  readpng2_error_handler()
      - readpng2_decode_data()
      - readpng2_info_callback()
      - readpng2_row_callback()
      - Compositing and Displaying the Image
      - readpng2_end_callback()
      - readpng2_cleanup()
      - Getting the Source Code

   Chapter 15:  Writing PNG Images
      - A libpng-based, PNG-Writing Demo Program
      - Gamma Correction
      - Text Chunks
      - writepng_version_info()
      - writepng_init()
        - sidebar:  writepng_error_handler()
        - sidebar:  Tweaking Compression
        - sidebar:  Text Buffers, PNG Structs and Core Dumps
      - Interlaced PNG:  writepng_encode_image()
      - Noninterlaced PNG:  writepng_encode_row()
      - writepng_cleanup()
      - Getting the Source Code

   Chapter 16:  Other Libraries and Concluding Remarks
      - Cross-Platform Libraries
        - ImageMagick
        - Image Library
        - PaintLib
        - QHTM
        - ImageVision Library
        - Imlib
        - QuickTime
        - ImageGear
        - Java Advanced Imaging API
        - Sixlegs PNG
        - Java Image Content Handlers
        - Java PNG
        - JIMI
        - Java Vector Graphics (JVG)
        - Pnglets
        - Img
        - Python Imaging Library
        - PNGHandler
        - SuperView Library
      - Windows-Specific Libraries
        - ImageLib
        - ImageMan ActiveX Suite and ImageMan DLL Suite
        - ImgDLL
        - LEADTOOLS
        - PiXCL Tools
        - PixelGraphicLibrary
        - TwistedPixel
        - Victor Image Processing Library
      - Concluding Remarks

Glossary

References


Here are the other PNG-related pages at this site:


Last modified 9 May 1999 by newt@pobox.com , you betcha.

Copyright © 1999 Greg Roelofs.