CINXE.COM
PNG (Portable Network Graphics) Home Site
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <HTML> <HEAD> <TITLE>PNG (Portable Network Graphics) Home Site</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <!-- http://www.w3.org/TR/REC-CSS2/box.html --> <STYLE TYPE="text/css"> P { margin-bottom: 0em } UL { margin-bottom: 0em; margin-top: 0em; } LI { padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; list-style: disc; } </STYLE> <LINK REV="made" HREF="http://gregroelofs.com/greg_contact.html"> <!-- Copyright (c) 1995-2024 Greg Roelofs. --> </HEAD> <BODY BGCOLOR="#000000" TEXT="#eeeeee" LINK="#ffff00" VLINK="#ff9922"> <TABLE WIDTH="100%" BORDER=0 CELLPADDING=5> <TR BGCOLOR="#007000"> <TD ALIGN="center" VALIGN="middle"> <A HREF="png-sitemap.html#info"><FONT COLOR="#ffff77"> <B>General Information</B></FONT></A> </TD> <TD ALIGN="center" VALIGN="middle"> <A HREF="png-sitemap.html#apps"><FONT COLOR="#ffff77"> <B>Applications</B></FONT></A> </TD> <TD ALIGN="center" VALIGN="middle"> <A HREF="png-sitemap.html#programming"><FONT COLOR="#ffff77"> <B>Programming Resources</B></FONT></A> </TD> <TD ALIGN="center" VALIGN="middle"> <A HREF="png-sitemap.html#images"><FONT COLOR="#ffff77"> <B>Images</B></FONT></A> </TD> <TD ALIGN="center" VALIGN="middle"> <A HREF="png-sitemap.html#animation"><FONT COLOR="#ffff77"> <B>Animation</B></FONT></A> </TD> </TR> </TABLE> <!-- THE FOLLOWING MUST BE A SINGLE LINE: --> <!-- GRR_PRINT_START --> <FONT SIZE="-1" COLOR="#000000">If you're using a <B>Windows</B> version of <B>Netscape Navigator</B> and want to print this page (and still be able to read it), click on the <B>png-printable</B> link at the very bottom of this page.</FONT> <!-- GRR_PRINT_END --> <CENTER> <P ALIGN="center"> <!-- <A HREF="img_png/pnglogo-blk.jpg"> <OBJECT WIDTH=256 HEIGHT=192 TYPE="image/png" DATA="img_png/pnglogo-blk-sml1.png"> <IMG WIDTH=256 HEIGHT=192 BORDER=0 SRC="img_png/pnglogo-blk-sml1.jpg" ALT="[PNG: 256x192 colored-balls logo]"></OBJECT></A> --> <A HREF="pngpic2.html"> <IMG WIDTH=800 HEIGHT=600 BORDER=0 SRC="img_png/pnglogo--povray-3.7--black826--800x600.png" ALT="[PNG: 800x600 colored-balls logo]"></A><BR> <!-- (PNG 10th anniversary) <A HREF="png2005.html"> <IMG WIDTH=80 HEIGHT=87 BORDER=0 SRC="images/balloons-aj.png" ALIGN="left" ALT="[birthday balloons]"></A> <A HREF="png2005.html"> <IMG WIDTH=80 HEIGHT=80 BORDER=0 SRC="images/birthday_cake.png" ALIGN="right" ALT="[birthday cake]"></A> --> <FONT SIZE="-2"><A HREF="pngfaq.html#jpeg-logo">FAQ</A></FONT> </P> </CENTER> <CENTER> <H1 ALIGN="center"><FONT COLOR="#FFFFFF"> Portable Network Graphics </FONT></H1> <H3 ALIGN="center"> <!-- A Turbo-Studly<SUP>*</SUP> Image Format with Lossless Compression --> An Open, Extensible Image Format with Lossless Compression </H3> <H4 ALIGN="center"> (<I>Not</I> Related to Papua New Guinea, the Pawnee National Grassland, <BR> the Professional Numismatists Guild or the "Pack 'N' Go" format) <!-- pulsed neutron generator http://cass.jsc.nasa.gov/publications/psiw/psiw3.html --> <!-- Planetary Nebula, Galactic Coordinates http://adc.gsfc.nasa.gov/adc-cgi/vizcat.pl?/catalogs/5/5084/ --> <!-- Physics News Graphics http://www.aip.org/mgr/png/ --> </H4> </CENTER> <P> Welcome to the PNG Home Site, maintained by <A HREF="http://gregroelofs.com/" >Greg Roelofs</A>. 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 programming code related to the 29-year-old PNG image format. <!-- ^^^^^^^^ --> <P> <DIV ALIGN="center"> <FORM METHOD=get ACTION="http://search.yahoo.com/search" STYLE="border:1px solid #777; background-color: #000000; padding:5px; width:550px; text-align:center;"> <!-- <a href="http://search.yahoo.com/"><img alt="[Yahoo! Search]" src="http://us.i1.yimg.com/us.yimg.com/i/us/search/ysan/ysanlogo.gif" align="middle" border=0></a> --> <A HREF="http://search.yahoo.com/"><IMG ALT="[Yahoo! Search]" SRC="images/yahoo-search-black.png" WIDTH=105 HEIGHT=34 ALIGN="middle" BORDER=0></A> <INPUT TYPE="text" NAME="p" SIZE=40> <INPUT TYPE="hidden" NAME="fr" VALUE="yscpb"> <FONT FACE="lucida,helvetica,sans-serif"> <INPUT TYPE="submit" VALUE="Search"><br> <FONT SIZE="-1"> <INPUT TYPE="radio" NAME="vs" ID="ysvs1" STYLE="vertical-align: middle" VALUE="www.libpng.org" CHECKED><LABEL FOR=ysvs1 STYLE="margin-right: 75px;">Search this site</LABEL> <INPUT TYPE="radio" NAME="vs" ID="ysvs0" STYLE="vertical-align: middle" VALUE=""><LABEL FOR=ysvs0>Search the web</LABEL> </FONT> </FONT> </FORM> </DIV> <P> <HR> <P> <DL> <DD> <A HREF="libpng.html"><IMG ALIGN="right" WIDTH=91 HEIGHT=41 SRC="img_png/libpng.png" ALT="[download libpng]"></A> Canonical URL: <A HREF="http://www.libpng.org/pub/png/" ><B>http://www.libpng.org/pub/png/</B></A> (California, USA) <!-- also pngformat.com|net|org: Vince Sabio, 20001110 --> <!-- e.g., http://www.pngformat.org/pub/png/ --> </DD> <!-- <DD> <P> <CENTER> <TABLE WIDTH="75%" BORDER=0 CELLPADDING=10> <TR BGCOLOR="#00ff00"> <TD> <FONT COLOR="#000000"> <B>NOTE: The PNG home site moved on 3 May 2000. The new site is given above, and mirror sites have been notified and should be updated shortly. Yes, this color <I>is</I> hideous, thank you.</B></FONT> </TD> </TR> </TABLE> </CENTER> </DD> --> <!-- <DD> <P> Mirror site: <UL TYPE="disc"> --> <!-- COMM <LI><A HREF= COMM "http://libpng.rtin.bz/pub/png/" COMM >http://libpng.rtin.bz/pub/png/</A> (Pennsylvania, USA) --> <!-- NEW 20060428 (Martin Eriksen, m/rtin.bz) --> <!-- server error 20070723 --> <!-- COMM <LI><A HREF= COMM "http://www.3-t.com/pub/png/" COMM >http://www.3-t.com/pub/png/</A> (Texas, USA) --> <!-- back as of August 2002 --> <!-- not mirroring as of July 2005 --> <!-- gone as of October 2005 --> <!-- back as of November 2005 --> <!-- identical to libmng.com as of 20070904 --> <!-- COMM <LI><A HREF= COMM "http://www.libmng.com/pub/png/" COMM >http://www.libmng.com/pub/png/</A> (Netherlands) --> <!-- back as of August 2002 --> <!-- not mirroring as of July 2005 --> <!-- back as of November 2005 --> <!-- dead as of October 2012 ... fixed --> <!-- permanently dead as of summer 2017 --> <!-- COMM <LI><A HREF= COMM "http://png.unicast.org/pub/png/" COMM >http://png.unicast.org/pub/png/</A> (Denmark) <! - Copenhagen - > --> <!-- refused conn 20070723 --> <!-- COMM <LI><A HREF= COMM "http://www.mirrorservice.org/sites/www.libpng.org/pub/png/" COMM >http://www.mirrorservice.org/sites/www.libpng.org/pub/png/</A> COMM (United Kingdom) --> <!-- was "http://www.hensa.ac.uk/png/home/" --> <!-- was "http://www.mirror.ac.uk/sites/ftp.cdrom.com/pub/png/" --> <!-- was "http://www.mirror.ac.uk/sites/ftp.libpng.org/pub/png/" --> <!-- was "http://www.mirror.ac.uk/sites/www.libpng.org/pub/png/" --> <!-- GONE/MOVED/"BEING MIGRATED" 20121004 --> <!-- COMM <LI><A HREF= COMM "http://download.mirror.ac.uk/sites/www.libpng.org/pub/png/" COMM >http://download.mirror.ac.uk/sites/www.libpng.org/pub/png/</A> COMM (United Kingdom) --> <!-- NEW/FIXED 20061106 (admin: James.Spencer/eduserv.org.uk) --> <!-- TIMING OUT 20080114 ("officially closed" 20070731, oops) --> <!-- COMM <LI><A HREF= COMM "http://libpng.oss-mirror.org/pub/png/" COMM >http://libpng.oss-mirror.org/pub/png/</A> (Ireland) --> <!-- NEW 20060129/20060528 (admin: admin/realhost.de) --> <!-- GONE 20080114 --> <!-- COMM <LI><A HREF= COMM "http://libpng.linux-mirror.org/pub/png/" COMM >http://libpng.linux-mirror.org/pub/png/</A> (Germany) --> <!-- NEW 20060129/20060528 (admin: admin/vssgmbh.com) --> <!-- GONE 20080114 --> <!-- COMM <LI><A HREF= COMM "http://dl.ambiweb.de/mirrors/www.libpng.org/pub/png/" COMM >http://dl.ambiweb.de/mirrors/www.libpng.org/pub/png/</A> (Germany) --> <!-- NEW 20060528 (admin: ts/ambiweb.de) --> <!-- GONE 20170520 (not even DNS) --> <!-- COMM <LI><A HREF= COMM "http://mirror.unixprofi.de/libpng/pub/png/" COMM >http://mirror.unixprofi.de/libpng/pub/png/</A> (Germany) --> <!-- NEW 20061128 (admin: Juri, hoerner/gmail.com) --> <!-- not mirroring as of 20080114 --> <!-- COMM <LI><A HREF= COMM "http://libpng.ipinfo.de/pub/png/" COMM >http://libpng.ipinfo.de/pub/png/</A> (Germany) <!- Nuernberg -> --> <!-- NEW 20070119 (admin: Stephan Paulus, info/citimedia.de) --> <!-- UPDATED 20070123: ipmedia .. ipinfo --> <!-- not mirroring as of 2007022x --> <!-- fixed as of 20070726 --> <!-- not mirroring as of 20080710 --> <!-- COMM <LI><A HREF= COMM "http://png.cybermirror.org/" COMM >http://png.cybermirror.org/</A> (Germany) <!- Karlsruhe -> --> <!-- NEW 20070201 (admin: Sascha Schwarz, sascha/philivision.de) --> <!-- (or support/) --> <!-- not mirroring as of 20160116: NUKED --> <!-- http://www.very-clever.com/libpng/ (Austria) ewald.kicker/sozialprojekte.com 20080110 --> <!-- COMM <LI><A HREF= COMM "http://png.geosdreams.info/" COMM >http://png.geosdreams.info/</A> (Poland) <! - Olsztyn - > --> <!-- NEW 20060907 (admin: piotrc/gmail.com--> <!-- not replying as of 20070723 --> <!-- COMM <LI><A HREF= COMM "http://piotrkosoft.net/pub/mirrors/www.libpng.org/pub/png/" COMM >http://piotrkosoft.net/pub/mirrors/www.libpng.org/pub/png/</A> COMM (Poland) --> <!-- Oswiecim --> <!-- NEW 20070727 (admin: piotr.maluty/gmail.com) --> <!-- 404 AS OF 20121004 --> <!-- COMM <LI><A HREF= COMM "http://libpng.nigilist.ru/pub/png/" COMM >http://libpng.nigilist.ru/pub/png/</A> (Russia) --> <!-- 404 as of 20080720 --> <!-- COMM <LI><A HREF= COMM "http://png.internet.bs/" COMM >http://png.internet.bs/</A> (Hong Kong) --> <!-- NEW 20060831 (admin: marco.rinaudo/internet.bs) --> <!-- slow (> 24 hrs) as of 20070723 ... --> <!-- timeout/unreachable as of 20110524-6 --> <!-- COMM <LI><A HREF= COMM "http://vnmirror.com/mirrors/libpng/pub/png/" COMM >http://vnmirror.com/mirrors/libpng/pub/png/</A> (Vietnam) --> <!-- NEW 20080709 (admin: pgeon/hotmail.com) --> <!-- 404 as of 20110524-6 --> <!--IMG WIDTH=36 HEIGHT=13 SRC="images/new-red.png" ALT="[New!]" ALIGN="bottom"--> </UL> </DD> </DL> <P> Note that the PNG home site has moved four times since 1995 (though the URL has changed only three times, and hopefully never again). The current site is hosted by the excellent folks at <A HREF="https://sourceforge.net/" >SourceForge</A>. <A HREF="http://sourceforge.net/projects/png-mng"><IMG WIDTH=80 HEIGHT=15 SRC="http://sflogo.sourceforge.net/sflogo.php?group_id=32355&type=9" ALT="[primary site hosted by SourceForge]" BORDER=0 ></A> <!-- A mirror site has been provided Mirror sites have been provided in Pennsylvania courtesy of <A HREF="http://www.rtin.bz/">Martin Eriksen</A>; in --> <!-- Texas and --> <!-- the Netherlands courtesy of <A HREF="http://www.libmng.com/">Gerard Juyn</A>. --> <!-- and <A HREF="http://www.3-t.com/">Triple-T Software</A>; --> <!-- in Denmark courtesy of <A HREF="http://unicast.org/content/guan.html">Guan Yang</A>; in the UK courtesy of Dave Beckett and the <A HREF= "http://www.mirrorservice.org/">JISC National Mirror Service</A>; in the UK courtesy of James Spencer and <A HREF= "http://www.eduserv.org.uk/">Eduserv</A>; in Ireland and Germany courtesy of <A HREF="mailto:uhlemann@realhost.de">Ralf Uhlemann</A>; --> <!-- email found on http://realhost.de/english/html/jobs.htm --> <!-- and in Germany courtesy of Tobias Schwarz and <A HREF="http://www.ambiweb.de/" >AmbiWeb</A>. in Germany courtesy of <A HREF="http://www.hotels-bewertungen.de/" >J.H. IT-Dienstleistungen</A>; --> <!-- Juri --> <!-- in Nuernberg, Germany, courtesy of Stephan Paulus and <A HREF= "http://www.fachwissen-katalog.de/">Artikelverzeichnis</A>; in Karlsruhe, Germany, courtesy of Sascha Schwarz and <A HREF= "http://www.cybermirror.org/">Cybermirror</A>. in Olsztyn, Poland, courtesy of Piotr Chumicki and <A HREF= "http://www.geosdreams.info/">Geo's Dreams</A>; in Oswiecim, Poland, courtesy of Piotr Maluty and <A HREF= "http://piotrkosoft.net/">Piotrkosoft</A>. in Russia courtesy of Peter Kohts; in Hong Kong courtesy of Marco Rinaudo and <A HREF="http://www.internet.bs/" >Internet.bs Corp</A>; in Vietnam courtesy of Sukit Tanariyakul and <A HREF="http://www.vnmirror.com/" >VNmirrorSite</A>. <B><I>Thanks!</I></B> (But we're not looking for more.) (But please, no more! We're in good shape at this point.) Well, unless you're in Asia, but please check with Greg first even in that case. --> <P> <HR> <P> <CENTER> <TABLE BORDER=0 CELLPADDING=5> <TR BGCOLOR="#000080"> <TD><FONT COLOR="#ffffff" SIZE="+1"> <B>PNG Site Layout</B> </FONT></TD> </TR> </TABLE> </CENTER> <P> The PNG web site is organized into four basic categories of information (blue and white headings below), not counting the separate <A HREF= "http://www.libpng.org/pub/mng/">MNG site</A> (covering PNG's animated and lossy cousins). A <A HREF="png-sitemap.html"><FONT COLOR="#00ff00"><B>complete site map</B></FONT></A> to the 110+ pages is available, but the basics are summarized here. <!-- ll {png,libpng,slashpng}*.html {book,apps,colorcube}/*.html | wc -l --> <!-- 98 as of 20021024 (not counting spec: 24 additional non-MNG/JNG pages) --> <P> The <A HREF="#history">informal history</A> below is worth reading both for general background and for a summary of PNG's main features, but most non-programmers will probably find the <A HREF="pngintro.html">basic introduction</A>, the <A HREF="pngfaq.html">FAQ</A>, and perhaps the <A HREF="pnghist.html">longer history</A> <!-- <A HREF="pngapps.html">lists of applications</A> --> to be of the greatest interest and utility. The <A HREF="pngapps.html">PNG-supporting application lists</A>, on the other hand, are no longer particularly important (or maintained), insofar as virtually every image-related application has supported PNG natively--and well--for more than a decade. They too are now historical in nature. <IMG HEIGHT=16 WIDTH=16 ALIGN="bottom" SRC="images/smile.happy.png" ALT=":-)"> <!-- Additions, updates, corrections and suggestions are always welcome. --> <P> <A NAME="info"></A> <TABLE BORDER=0 CELLPADDING=5> <TR BGCOLOR="#000080"> <TD><FONT COLOR="#ffffff"> <B>PNG General Information</B> </FONT></TD> </TR> </TABLE> <DL> <DD> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_purple.png" ALT=" * "> <A HREF="pngintro.html">A Basic Introduction to PNG Features</A> (<B>recommended for new visitors</B>) </DD> <DD> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_purple.png" ALT=" * "> <A HREF="pngstatus.html">Current Status of PNG</A> (<B>recommended for new visitors</B>) </DD> <DD> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_blupur.png" ALT=" * "> <A HREF="pngfaq.html">Frequently Asked Questions</A> (<B>recommended for new visitors</B>) </DD> <DD> <P> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_blue.png" ALT=" * "> <A HREF="./#history">An Informal History of PNG</A> (and a <A HREF="pnghist.html">More Detailed History</A>) </DD> <DD> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_medblue.png" ALT=" * "> <A HREF="pngnews.html">News of the PNG Development Group</A> </DD> <DD> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_ltblue.png" ALT=" * "> <A HREF="pngmisc.html#lists">Links to Other PNG Resources</A> (includes <B>mailing lists</B>) </DD> <DD> <P> <A HREF="book/"><IMG ALIGN="right" WIDTH=50 HEIGHT=66 SRC="img_png/pngbook-cover-micro.png" ALT="[cover]"></A> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_aqua.png" ALT=" * "> <A HREF="pngdocs.html">PNG Technical Documentation</A> <UL TYPE="disc"> <LI><A HREF= "spec/" >PNG Specification and Extensions</A> (<A HREF="spec/iso/" >latest version</A>) <LI><A HREF= "http://www.zlib.net/zlib_docs.html" ><B>zlib</B> Technical Documentation</A> <LI><A HREF="http://www.libpng.org/pub/mng/mngdocs.html" >MNG / JNG Technical Documentation</A> </UL> </DD> <DD> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_aqua.png" ALT=" * "> <A HREF="pngbook.html"><I>PNG: The Definitive Guide</I> and Related Books</A> </DD> </DL> <!-- ====================================================================== --> <A NAME="apps"></A> <TABLE BORDER=0 CELLPADDING=5> <TR BGCOLOR="#000080"> <TD><FONT COLOR="#ffffff"> <B>PNG-Supporting Applications</B> </FONT></TD> </TR> </TABLE> <DL> <DD> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_green.png" ALT=" * "> <A HREF="pngapps.html">Applications with PNG Support</A> <UL TYPE="disc"> <LI><A HREF="pngapbr.html">Browsers</A> <LI><A HREF="pngapvw.html">Image Viewers</A> <LI><A HREF="pngaped.html">Image Editors</A> <LI><A HREF="pngapcv.html">Image Converters</A> <LI><A HREF="pngap3d.html">3D Applications</A> (also <A HREF="pngvrml.html">VRML Browsers</A>) <LI><A HREF="pngapgm.html">Games / Entertainment</A> <LI><A HREF="pngapof.html">Office / Business Applications</A> <LI><A HREF="pngapsc.html">Scientific / Graphing Applications</A> <LI><A HREF="pngapmi.html">Miscellaneous Applications</A> </UL> </DD> <DD> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_yelgrn.png" ALT=" * "> <A HREF="pnghw.html">Hardware with PNG Support</A> </DD> </DL> <!-- ====================================================================== --> <A NAME="programming"></A> <TABLE BORDER=0 CELLPADDING=5> <TR BGCOLOR="#000080"> <TD><FONT COLOR="#ffffff"> <B>PNG Programming Resources</B> </FONT></TD> </TR> </TABLE> <DL> <DD> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_yellow.png" ALT=" * "> PNG Programming Information: <UL TYPE="disc"> <LI><A HREF="pngaptk.html">PNG-supporting Libraries and Toolkits</A> <UL TYPE="disc"> <LI><A HREF="libpng.html"><B>libpng</B> home page</A> <LI><A HREF="http://www.zlib.net/" ><B>zlib</B> home page</A> <!-- was "http://www.info-zip.org/pub/infozip/zlib/" --> <LI><A HREF="http://www.libmng.com/" ><B>libmng</B> home page</A> </UL> <LI><A HREF="pngcode.html">PNG Source Code</A> </UL> </DD> </DL> <!-- ====================================================================== --> <A NAME="images"></A> <TABLE BORDER=0 CELLPADDING=5> <TR BGCOLOR="#000080"> <TD><FONT COLOR="#ffffff"> <B>PNG Images</B> </FONT></TD> </TR> </TABLE> <DL> <DD> <A HREF="pngs-img.html"><IMG ALIGN="right" WIDTH=60 HEIGHT=94 SRC="img_png/pngs-img-ie5mac-micro.png" ALT="[images]"></A> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_orange3.png" ALT=" * "> PNG Images: <UL TYPE="disc"> <LI><A HREF="pngsuite.html" >Willem van Schaik's Test Suite of PNG Icons</A> <LI><A HREF="png-textures.html" >Greg's Test Suite of PNG Textures for VRML</A> <LI><A HREF="pngpic2.html" >Ray-traced PNG Interlacing Demo</A> (also <A HREF="pngpics.html">JPEG version</A>) <LI><A HREF="pngs-img.html" >Miscellaneous Transparent PNGs using IMG Tags</A> (includes links to screenshots) <LI><A HREF="pngs.html" >Miscellaneous Transparent PNGs using OBJECT Tags</A> (also <A HREF="pngs-strict.html">strict HTML 4.0 version</A>) <LI><A HREF="png-rgba32.html" >Miscellaneous 32-bit RGBA PNGs</A> <LI>Photographic PNGs with Alpha Transparency: <UL TYPE="disc"> <LI><A HREF="png-IceAlpha.html">Icicles</A> <LI><A HREF="png-RedbrushAlpha.html">Redbrush flower</A> (<I>Ohia Lehua</I>) <LI><A HREF="png-MagnoliaAlpha.html">Magnolia tree</A> <LI><A HREF="png-OwlAlpha.html">Horned Owl</A> </UL> <LI><A HREF="png-gammatest.html" >Browser Gamma-Correction Test</A> <!-- NEW 20050821 --> <LI><A HREF="png-colortest.html" >Browser Color-Correction Test</A> <!-- NEW 20050821 --> <!-- <LI><A HREF="pngnow-test.html" >Netscape Navigator / PNG bKGD Test</A> --> </UL> </DD> <!-- IMG WIDTH=10 HEIGHT=10 SRC="images/li_orange4.png" ALT=" * " --> <DD> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_red.png" ALT=" * "> <A HREF="pngmisc.html#images">Links to Other PNG Resources</A> (includes pointers to more PNG images) </DD> </DL> <!-- ====================================================================== --> <A NAME="animation"></A> <TABLE BORDER=0 CELLPADDING=5> <TR BGCOLOR="#000080"> <TD><FONT COLOR="#ffffff"> <B>PNG Animation</B> </FONT></TD> </TR> </TABLE> <DL> <DD> <IMG WIDTH=10 HEIGHT=10 SRC="images/li_magenta.png" ALT=" * "> <A HREF="http://www.libpng.org/pub/mng/">Multiple-image Network Graphics (MNG) Home Site</A><BR> (includes JNG: JPEG with alpha-transparency) </DD> </DL> <A NAME="history"></A> <HR> <P> <H3> <IMG WIDTH=32 HEIGHT=24 SRC="img_png/pnglogo-blk-tiny.png" ALT="[PNG icon]"> What It Be (An Informal History) </H3> <P> 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 bitmapped (raster) images on computers. Unofficially its acronym stands for <!-- A HREF="http://floridaphotosafari.com/png.htm" --><IMG ALIGN="right" WIDTH=200 HEIGHT=37 SRC="img_png/png01aaaa-crb.png" ALT="[ </gif><png> ]"><!-- /A --> "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. <P> <BLOCKQUOTE> (<I>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.</I>) <!-- Feb 1995: "http://www.w3.org/Graphics/PNG/CS-950214.html" --> <!-- ??? 1995: "http://www.compuserve.com/new/news_rel/gif.html" --> <!-- Jun 1995: "http://www.compuserve.com/new/news_rel/png2.html" --> </BLOCKQUOTE> <P> 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, "<B>Outraaageous!</B>" In fact, you may never say that in your entire lifetime (truly a pity), but PNG is still cool. Some of its <A HREF="pngintro.html">spiffier features</A> include: <P> <UL> <LI>unambiguous pronunciation (ooo, baby!) <LI>multiple CRCs so that file integrity can be checked <I>without viewing</I> <LI>ultra-clever magic signature that can detect the most common types of file corruption <LI>better compression than GIF, typically 5% to 25% (but often 40% or 50% better on tiny images) <LI>non-patented (you betcha!), completely lossless compression <LI><A HREF="pngpics.html">majorly gnarly two-dimensional interlacing scheme</A> <LI>1-, 2-, 4- and 8-bit palette support (like GIF) <LI>1-, 2-, 4-, 8- and 16-bit grayscale support <LI>8- and 16-bit-per-sample (that is, 24- and 48-bit) truecolor support <LI>full alpha transparency in 8- and 16-bit modes, not just simple on-off transparency like GIF <LI>"palette-alpha" mode, effectively transforming normal RGB palette into RGBA <LI>gamma correction for cross-platform "brightness" control <LI>color correction for cross-platform, precision color <LI>both compressed and uncompressed text chunks for copyright and other info <LI>full Year 2000 (Y2K) support, and then some (good for <I>at least</I> 63 millenia! yowza!) <LI><A HREF="libpng.html">free and complete reference implementation with full source code</A> </UL> <P> Not exactly <I>spiffy</I>, but worth mentioning anyway: <P> <UL> <LI>officially registered Internet media ("MIME") type: <FONT COLOR="#FFFFFF"><B>image/png</B></FONT> </UL> <P> 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 <A HREF="pngintro.html">Basic Introduction to PNG Features</A>. Those who want <I>all</I> of the gory details can either find a library with the <A HREF="http://www.ddj.com/ddj/1995/1995.07/">July 1995 issue</A> of <A HREF="http://www.ddj.com/"><B>Dr. Dobb's Journal</B></A> and read <A HREF="http://www.piclab.com/">Lee Crocker</A>'s PNG article; read a copy of Greg's O'Reilly book, <!-- <FONT COLOR="#FFFFFF"><B>PNG: The Definitive Guide</B></FONT>; --> <A HREF="pngbook.html"><B>PNG: The Definitive Guide</B></A>; or else go read the full <A HREF="spec/"><B>Portable Network Graphics <!-- was "http://www.w3.org/TR/png.html", then "png-1.0-w3c-single.html.gz" --> Specification</B></A>, a reasonably concise <B><A HREF="http://www.w3.org/">W3C</A> <FONT COLOR="#FFFFFF">Recommendation</FONT></B> (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 <A HREF="pngdocs.html">PNG documentation page</A> for links to plain ASCII, PostScript (US letter-size) and PDF versions, and see the W3C's <A HREF="http://www.w3.org/Graphics/PNG/">PNG page</A> and official <A HREF="http://www.w3.org/Press/PNG-PR.en.html">press release</A> for links to related documentation on gamma and color correction. <P> Note that the PNG specification was updated to <FONT COLOR="#FFFFFF"><B>version 1.1</B></FONT> on New Year's Eve 1998 (that is, 31 December 1998). It included 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!). A second, more minor update (<FONT COLOR="#FFFFFF"><B>version 1.2</B></FONT>) was released in August 1999; its only change was the addition of the iTXt chunk (international text). <P> <!-- was "http://www.w3c.rl.ac.uk/isopng/" --> <!-- was "http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-IS-VRML97WithAmendment1/" --> In addition, PNG began the long process of international standardization<SUP>*</SUP> in 1999 (<I>see the <A HREF="png1999.html"><B>10 May 1999</B></A> news item for details</I>), thanks largely to its inclusion in <A HREF= "http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-VRML97/" >VRML97</A>. It finally completed that process and became the joint <B>ISO/IEC standard 15948:2004</B> <!--also known as <FONT COLOR="#FFFFFF"><B>version 1.3</B></FONT> --> nearly five years later (<I>see the <A HREF="png2004.html"><B>3 March 2004</B></A> news item</I>), a few months after it was also rereleased by the W3C (with identical content) as their "<B><A HREF= "http://www.w3.org/TR/2003/REC-PNG-20031110/">PNG Second Edition</A></B>" <B>Recommendation</B>. <P> <BLOCKQUOTE> <SUP>*</SUP>PNG was already part of the <!-- was "http://www.fokus.gmd.de/ovma/mug/archives/doc/MHEG-5_Profile_Issue_1.pdf" --> <A HREF="http://www.mheg.org/users/mheg/archives/doc/MHEG-5_Profile_Issue_1.pdf" >UK profile</A> for MHEG-5 on digital terrestrial television; MHEG-5 is the international standard for a next-generation teletext system that shares a number of features with HTML. PNG is also used in MHP, the Java-based <A HREF= "http://www.mhp.org/html_index.html">Multimedia Home Platform</A> for digital video systems, and was included in HAVi, the somewhat defunct <A HREF= "http://www.havi.org/">Home Audio-Video Interoperability</A> standard for 1394-based home networking. </BLOCKQUOTE> <P> And the design of the multi-image extension to PNG known as <A HREF= "http://www.libpng.org/pub/mng/"><B>MNG</B></A> is officially complete (version 1.0 of the MNG specification was released on 31 January 2001), with quite a number of applications available and a <A HREF="http://www.libmng.com/">free reference library</A>, too. <!-- 20050120: currently redirects to "http://gjuyn.xs4all.nl/libmng/" --> <P> By now you're undoubtedly drooling over such an incredibly well-designed image format and wondering where you can find <A HREF="pngapps.html" >applications</A> or <A HREF="pngcode.html">programming tools</A> that support it. Well, wonder no further! <B>Greg aims to please</B>. <BR> <CENTER> <H5 ALIGN="center"> <!-- <A HREF="pngapps.html"> <OBJECT WIDTH=98 HEIGHT=31 BORDER=0 TYPE="image/png" DATA="img_png/pngnow.png"> <IMG WIDTH=98 HEIGHT=31 BORDER=0 SRC="img_png/pngnow.png" ALT="[PNG (apps) now!]"></OBJECT></A> --> <A HREF="pngapps.html"><IMG WIDTH=98 HEIGHT=31 BORDER=0 SRC="img_png/pngnow.png" ALT="[PNG (apps) now!]"></A> </H5> </CENTER> <P> <TABLE WIDTH="100%" BORDER=0 CELLPADDING=5> <TR BGCOLOR="#007000"> <TD ALIGN="center" VALIGN="middle"> <A HREF="png-sitemap.html#info"><FONT COLOR="#ffff77"> <B>General Information</B></FONT></A> </TD> <TD ALIGN="center" VALIGN="middle"> <A HREF="png-sitemap.html#apps"><FONT COLOR="#ffff77"> <B>Applications</B></FONT></A> </TD> <TD ALIGN="center" VALIGN="middle"> <A HREF="png-sitemap.html#programming"><FONT COLOR="#ffff77"> <B>Programming Resources</B></FONT></A> </TD> <TD ALIGN="center" VALIGN="middle"> <A HREF="png-sitemap.html#images"><FONT COLOR="#ffff77"> <B>Images</B></FONT></A> </TD> <TD ALIGN="center" VALIGN="middle"> <A HREF="png-sitemap.html#animation"><FONT COLOR="#ffff77"> <B>Animation</B></FONT></A> </TD> </TR> </TABLE> <P> <A HREF= "http://validator.w3.org/check?uri=http%3A%2F%2Fwww.libpng.org%2Fpub%2Fpng%2F" ><IMG HEIGHT=31 WIDTH=88 BORDER=0 ALIGN="right" SRC="images/vh40.png" ALT="[Valid HTML 4.0]"></A> <I>Last modified <B>27 January 2024</B>, <!-- REMEMBER "makeprintable" --> you betcha.</I><BR> <!-- December 2024: update "29-year-old format" at top --> <FONT SIZE="-1"> Copyright © 1995-2024 <A HREF="http://gregroelofs.com/">Greg Roelofs</A> (<A HREF="http://gregroelofs.com/greg_contact.html">contact</A>). <!-- THE FOLLOWING MUST BE A SINGLE LINE: --> <!-- GRR_PRINT_START --> <A HREF="png-printable.html"><B>png-printable.html</B></A> <!-- GRR_PRINT_END --> </FONT> <BR CLEAR="all"> </BODY> </HTML>