A Turbo-Studly* Image Format with Lossless Compression
(Not Related to Papua New Guinea,
the Pawnee National Grassland,
the Professional Numismatists Guild or
the ``Pack 'N' Go'' format)
Welcome to the PNG Home Site, maintained by Greg Roelofs. Our hero likes to speak of himself in the third person,
but don't let that put you off; this is intended to be a mostly serious set
of reference pages for locating information, applications and code related to
the three-year-old PNG image format.
Note that the PNG home site has moved twice since 1995; the current site is
provided courtesy of the excellent folks at Walnut Creek CD-ROM. Mirror sites have been provided in Texas
courtesy of Paul Schmidt, Peter Jensen and Photodex, and in the UK courtesy of Dave Beckett and
HENSA Unix.
Thanks!
The PNG pages are organized into roughly three dozen separate sections, not
counting the separate MNG site.
The brief history below is worth reading both for general background and
for a summary of PNG's main features, but most people will probably find
the Introduction and the list of third-party applications to be of the
greatest interest and utility. Additions, updates and corrections are
always welcome.
So what is PNG, and why is it worthy of its own home site? PNG (pronounced
``ping'') is the Portable Network Graphics format, a format for storing
images on computers. Unofficially its acronym stands for ``PNG's Not GIF.''
PNG was designed to be the successor to the once-popular GIF format, which
became decidedly less popular right around New Year's Day 1995 when Unisys
and CompuServe suddenly announced that programs implementing GIF would require
royalties, because of Unisys' patent on the LZW compression method used in GIF.
Since GIF had been showing its age in a number of ways even prior to that, the
announcement only catalyzed the development of a new and much-improved
replacement format. PNG is the result.
(By the way, despite the implications in some of CompuServe's old press
releases and in occasional trade-press articles, PNG's development was not
instigated by either CompuServe or the World Wide Web Consortium, nor was
it led by them. Individuals from both organizations contributed to the
effort, but the PNG development group exists as a separate, Internet-based
entity.)
That's only half the story, however; PNG would deserve a home page even if all
that had not taken place, just because it's so darned nifty. Yes, it's not
every day you come across an image format and say, ``Outraaageous!''
In fact, you may never say that in your entire lifetime (truly a pity), but
PNG is still cool. Some of its spiffier features
include:
unambiguous pronunciation (ooo, baby!)
multiple CRCs so that file integrity can be checked without
viewing
ultra-clever magic signature that can detect the most common
types of file corruption
better compression than GIF, typically 5% to 25% (but often 40% or
50% better on tiny images)
8- and 16-bit-per-sample (that is, 24- and 48-bit) truecolor support
full alpha transparency in 8- and 16-bit modes, not just simple on-off
transparency like GIF
``palette-alpha'' mode, effectively transforming normal RGB palette into
RGBA
gamma correction for cross-platform ``brightness'' control
color correction for cross-platform, precision color
both compressed and uncompressed text chunks for copyright and other info
full Year 2000 (Y2K) support (good for at least 63 millenia!
yowza!)
free and complete reference implementation with full source code
PNG also supports things like suggested quantization, ``smart'' extensibility,
a standard color space and lots of other excellent stuff, but let us leave
all that aside for now. Those who want a quick explanation of the main
features can check out Greg's Introduction to PNG
Features. Those who want all of the gory details can either find
a library with the
July 1995 issue of
Dr. Dobb's Journal and read
Lee Crocker's PNG article; wait a
few months for Greg's upcoming O'Reilly book on PNG;
or else go read the full Portable Network Graphics
Specification, a reasonably concise
W3C Recommendation (the very first
one!) that is amazingly well written and understandable. (Greg had no
part in the actual writing of it, so he can say things like that.) See
the PNG documentation page for links to plain
ASCII and PostScript (US letter-size) versions, and see the W3C's
PNG page and official
press release
for links to related documentation on gamma, chromaticity, etc.
Note that the PNG specification was updated to version 1.1 on New Year's
Eve (that is, 31 December 1998). It includes new chunks for cross-platform
color correction (sRGB and iCCP), a revised and much more sensible
description of gamma correction, and a number of other minor improvements and
clarifications (all fully backward compatible, of course!). In addition,
PNG is now in the early stages of international standardization, thanks
largely to its inclusion in the VRML97 standard; it is expected to
become a joint ISO/IEC standard by late 1999, if all goes well. And the
design of the multi-image extension to PNG known as MNG is basically complete, with
a couple of implementations showing considerable promise.
By now you're undoubtedly drooling over such an incredibly well-designed
image format and wondering where you can find applications or programming tools that
support it. Well, wonder no further! Greg aims to please.
*Commentary from our fun-loving HP contingent,
Roger Petersen: ``Try saying
Turbo-Studly three times fast after a few beers... My favorite: A
Turdly-Stubby New Image format...'' You heard it here first.
Last modified 9 February 1999, you betcha.