You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
201 lines
10 KiB
201 lines
10 KiB
<HTML>
|
|
<HEAD>
|
|
<TITLE>PNG (Portable Network Graphics) Specification</TITLE>
|
|
</HEAD>
|
|
|
|
<BODY BACKGROUND="recbg.jpg">
|
|
<h2 align=right><A HREF="http://www.w3.org/"><img align=left alt="W3C:" src="http://www.w3.org/pub/WWW/Icons/WWW/w3c_48x48" width=48 height=48></A>
|
|
REC-png.html</h2>
|
|
|
|
<H1>PNG (Portable Network Graphics) Specification</H1>
|
|
<H1>Version 1.0</H1>
|
|
|
|
<h3 align=center>W3C Recommendation <i>01-October-1996</i></h3>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
For list of authors, see <A HREF="PNG-Credits.html">Credits</A>.
|
|
<hr>
|
|
|
|
<h2>Status of this document</h2>
|
|
|
|
<p>This document has been reviewed by W3C members and other interested
|
|
parties and has been endorsed by the Director as a W3C Recommendation.
|
|
It is a stable document and may be used as reference material or cited
|
|
as a normative reference from another document. W3C's role in making
|
|
the Recommendation is to draw attention to the specification and to
|
|
promote its widespread deployment. This enhances the functionality
|
|
and interoperability of the Web.
|
|
|
|
<p>A list of current W3C Recommendations and other technical documents
|
|
can be found at
|
|
<a href="http://www.w3.org/pub/WWW/TR/">http://www.w3.org/pub/WWW/TR/</a>.
|
|
|
|
<p>The Consortium staff have encouraged the development of PNG,
|
|
as have Compuserve, Inc. Most of the work has been done by the
|
|
PNG Development Group, <tt>png-group@w3.org</tt>.
|
|
The Consortium does not currently have plans to work on any
|
|
future versions of PNG, though were the necessity to arise,
|
|
and were an activity in that area to receive the support of Members,
|
|
the Consortium could in principle support some future activity.</p>
|
|
|
|
<hr>
|
|
|
|
|
|
|
|
|
|
<H2>Abstract</H2>
|
|
|
|
This document describes PNG (Portable Network Graphics), an extensible
|
|
file format for the lossless, portable, well-compressed storage of raster
|
|
images. PNG provides a patent-free replacement for GIF and
|
|
can also replace many common uses of TIFF. Indexed-color,
|
|
grayscale, and truecolor images are supported, plus an optional
|
|
alpha channel. Sample depths range from 1 to 16 bits.
|
|
<P>
|
|
PNG is designed to work well in online viewing applications, such as
|
|
the World Wide Web, so it is fully streamable with a progressive
|
|
display option.
|
|
PNG is robust, providing both full file integrity checking and
|
|
simple detection of common transmission errors.
|
|
Also, PNG can store gamma and chromaticity data for
|
|
improved color matching on heterogeneous platforms.
|
|
<P>
|
|
This specification defines a proposed Internet Media Type
|
|
<tt>image/png</tt>.
|
|
|
|
<hr>
|
|
|
|
<H2>Table of Contents</H2>
|
|
|
|
<UL>
|
|
<LI><A HREF="PNG-Introduction.html">1. Introduction</A>
|
|
<LI><A HREF="PNG-DataRep.html">2. Data Representation</A>
|
|
<UL>
|
|
<LI><A HREF="PNG-DataRep.html#DR.Integers-and-byte-order">2.1. Integers and byte order</A>
|
|
<LI><A HREF="PNG-DataRep.html#DR.Color-values">2.2. Color values</A>
|
|
<LI><A HREF="PNG-DataRep.html#DR.Image-layout">2.3. Image layout</A>
|
|
<LI><A HREF="PNG-DataRep.html#DR.Alpha-channel">2.4. Alpha channel</A>
|
|
<LI><A HREF="PNG-DataRep.html#DR.Filtering">2.5. Filtering</A>
|
|
<LI><A HREF="PNG-DataRep.html#DR.Interlaced-data-order">2.6. Interlaced data order</A>
|
|
<LI><A HREF="PNG-DataRep.html#DR.Gamma-correction">2.7. Gamma correction</A>
|
|
<LI><A HREF="PNG-DataRep.html#DR.Text-strings">2.8. Text strings</A>
|
|
</UL>
|
|
<LI><A HREF="PNG-Structure.html">3. File Structure</A>
|
|
<UL>
|
|
<LI><A HREF="PNG-Structure.html#PNG-file-signature">3.1. PNG file signature</A>
|
|
<LI><A HREF="PNG-Structure.html#Chunk-layout">3.2. Chunk layout</A>
|
|
<LI><A HREF="PNG-Structure.html#Chunk-naming-conventions">3.3. Chunk naming conventions</A>
|
|
<LI><A HREF="PNG-Structure.html#CRC-algorithm">3.4. CRC algorithm</A>
|
|
</UL>
|
|
<LI><A HREF="PNG-Chunks.html">4. Chunk Specifications</A>
|
|
<UL>
|
|
<LI><A HREF="PNG-Chunks.html#C.Critical-chunks">4.1. Critical chunks</A>
|
|
<UL>
|
|
<LI><A HREF="PNG-Chunks.html#C.IHDR">4.1.1. <tt>IHDR </tt> Image header</A>
|
|
<LI><A HREF="PNG-Chunks.html#C.PLTE">4.1.2. <tt>PLTE </tt> Palette</A>
|
|
<LI><A HREF="PNG-Chunks.html#C.IDAT">4.1.3. <tt>IDAT </tt> Image data</A>
|
|
<LI><A HREF="PNG-Chunks.html#C.IEND">4.1.4. <tt>IEND </tt> Image trailer</A>
|
|
</UL>
|
|
<LI><A HREF="PNG-Chunks.html#C.Ancillary-chunks">4.2. Ancillary chunks</A>
|
|
<UL>
|
|
<LI><A HREF="PNG-Chunks.html#C.bKGD">4.2.1. <tt>bKGD </tt> Background color</A>
|
|
<LI><A HREF="PNG-Chunks.html#C.cHRM">4.2.2. <tt>cHRM </tt> Primary chromaticities and white point</A>
|
|
<LI><A HREF="PNG-Chunks.html#C.gAMA">4.2.3. <tt>gAMA </tt> Image gamma</A>
|
|
<LI><A HREF="PNG-Chunks.html#C.hIST">4.2.4. <tt>hIST </tt> Image histogram</A>
|
|
<LI><A HREF="PNG-Chunks.html#C.pHYs">4.2.5. <tt>pHYs </tt> Physical pixel dimensions</A>
|
|
<LI><A HREF="PNG-Chunks.html#C.sBIT">4.2.6. <tt>sBIT </tt> Significant bits</A>
|
|
<LI><A HREF="PNG-Chunks.html#C.tEXt">4.2.7. <tt>tEXt </tt> Textual data</A>
|
|
<LI><A HREF="PNG-Chunks.html#C.tIME">4.2.8. <tt>tIME </tt> Image last-modification time</A>
|
|
<LI><A HREF="PNG-Chunks.html#C.tRNS">4.2.9. <tt>tRNS </tt> Transparency</A>
|
|
<LI><A HREF="PNG-Chunks.html#C.zTXt">4.2.10. <tt>zTXt </tt> Compressed textual data</A>
|
|
</UL>
|
|
<LI><A HREF="PNG-Chunks.html#C.Summary-of-standard-chunks">4.3. Summary of standard chunks</A>
|
|
<LI><A HREF="PNG-Chunks.html#C.Additional-chunk-types">4.4. Additional chunk types</A>
|
|
</UL>
|
|
<LI><A HREF="PNG-Compression.html">5. Deflate/Inflate Compression</A>
|
|
<LI><A HREF="PNG-Filters.html">6. Filter Algorithms</A>
|
|
<UL>
|
|
<LI><A HREF="PNG-Filters.html#Filter-types">6.1. Filter types</A>
|
|
<LI><A HREF="PNG-Filters.html#Filter-type-0-None">6.2. Filter type 0: None</A>
|
|
<LI><A HREF="PNG-Filters.html#Filter-type-1-Sub">6.3. Filter type 1: Sub</A>
|
|
<LI><A HREF="PNG-Filters.html#Filter-type-2-Up">6.4. Filter type 2: Up</A>
|
|
<LI><A HREF="PNG-Filters.html#Filter-type-3-Average">6.5. Filter type 3: Average</A>
|
|
<LI><A HREF="PNG-Filters.html#Filter-type-4-Paeth">6.6. Filter type 4: Paeth</A>
|
|
</UL>
|
|
<LI><A HREF="PNG-Ordering.html">7. Chunk Ordering Rules</A>
|
|
<UL>
|
|
<LI><A HREF="PNG-Ordering.html#Behavior-of-PNG-editors">7.1. Behavior of PNG editors</A>
|
|
<LI><A HREF="PNG-Ordering.html#Ordering-of-ancillary-chunks">7.2. Ordering of ancillary chunks</A>
|
|
<LI><A HREF="PNG-Ordering.html#Ordering-of-critical-chunks">7.3. Ordering of critical chunks</A>
|
|
</UL>
|
|
<LI><A HREF="PNG-Misc.html">8. Miscellaneous Topics</A>
|
|
<UL>
|
|
<LI><A HREF="PNG-Misc.html#File-name-extension">8.1. File name extension</A>
|
|
<LI><A HREF="PNG-Misc.html#Media-type">8.2. Internet media type</A>
|
|
<LI><A HREF="PNG-Misc.html#Macintosh-file-layout">8.3. Macintosh file layout</A>
|
|
<LI><A HREF="PNG-Misc.html#Multiple-image-extension">8.4. Multiple-image extension</A>
|
|
<LI><A HREF="PNG-Misc.html#Security-considerations">8.5. Security considerations</A>
|
|
</UL>
|
|
<LI><A HREF="PNG-Encoders.html">9. Recommendations for Encoders</A>
|
|
<UL>
|
|
<LI><A HREF="PNG-Encoders.html#E.Sample-depth-scaling">9.1. Sample depth scaling</A>
|
|
<LI><A HREF="PNG-Encoders.html#E.Encoder-gamma-handling">9.2. Encoder gamma handling</A>
|
|
<LI><A HREF="PNG-Encoders.html#E.Encoder-color-handling">9.3. Encoder color handling</A>
|
|
<LI><A HREF="PNG-Encoders.html#E.Alpha-channel-creation">9.4. Alpha channel creation</A>
|
|
<LI><A HREF="PNG-Encoders.html#E.Suggested-palettes">9.5. Suggested palettes</A>
|
|
<LI><A HREF="PNG-Encoders.html#E.Filter-selection">9.6. Filter selection</A>
|
|
<LI><A HREF="PNG-Encoders.html#E.Text-chunk-processing">9.7. Text chunk processing</A>
|
|
<LI><A HREF="PNG-Encoders.html#E.Use-of-private-chunks">9.8. Use of private chunks</A>
|
|
<LI><A HREF="PNG-Encoders.html#E.Private-type-and-method-codes">9.9. Private type and method codes</A>
|
|
</UL>
|
|
<LI><A HREF="PNG-Decoders.html">10. Recommendations for Decoders</A>
|
|
<UL>
|
|
<LI><A HREF="PNG-Decoders.html#D.Error-checking">10.1. Error checking</A>
|
|
<LI><A HREF="PNG-Decoders.html#D.Pixel-dimensions">10.2. Pixel dimensions</A>
|
|
<LI><A HREF="PNG-Decoders.html#D.Truecolor-image-handling">10.3. Truecolor image handling</A>
|
|
<LI><A HREF="PNG-Decoders.html#D.Sample-depth-rescaling">10.4. Sample depth rescaling</A>
|
|
<LI><A HREF="PNG-Decoders.html#D.Decoder-gamma-handling">10.5. Decoder gamma handling</A>
|
|
<LI><A HREF="PNG-Decoders.html#D.Decoder-color-handling">10.6. Decoder color handling</A>
|
|
<LI><A HREF="PNG-Decoders.html#D.Background-color">10.7. Background color</A>
|
|
<LI><A HREF="PNG-Decoders.html#D.Alpha-channel-processing">10.8. Alpha channel processing</A>
|
|
<LI><A HREF="PNG-Decoders.html#D.Progressive-display">10.9. Progressive display</A>
|
|
<LI><A HREF="PNG-Decoders.html#D.Suggested-palette-and-histogram-usage">10.10. Suggested-palette and histogram usage</A>
|
|
<LI><A HREF="PNG-Decoders.html#D.Text-chunk-processing">10.11. Text chunk processing</A>
|
|
</UL>
|
|
<LI><A HREF="PNG-Glossary.html">11. Glossary</A>
|
|
<LI><A HREF="PNG-Rationale.html">12. Appendix: Rationale</A>
|
|
<UL>
|
|
<LI><A HREF="PNG-Rationale.html#R.Why-a-new-file-format">12.1. Why a new file format?</A>
|
|
<LI><A HREF="PNG-Rationale.html#R.Why-these-features">12.2. Why these features?</A>
|
|
<LI><A HREF="PNG-Rationale.html#R.Why-not-these-features">12.3. Why not these features?</A>
|
|
<LI><A HREF="PNG-Rationale.html#R.Why-not-use-format-X">12.4. Why not use format X?</A>
|
|
<LI><A HREF="PNG-Rationale.html#R.Byte-order">12.5. Byte order</A>
|
|
<LI><A HREF="PNG-Rationale.html#R.Interlacing">12.6. Interlacing</A>
|
|
<LI><A HREF="PNG-Rationale.html#R.Why-gamma">12.7. Why gamma?</A>
|
|
<LI><A HREF="PNG-Rationale.html#R.Non-premultiplied-alpha">12.8. Non-premultiplied alpha</A>
|
|
<LI><A HREF="PNG-Rationale.html#R.Filtering">12.9. Filtering</A>
|
|
<LI><A HREF="PNG-Rationale.html#R.Text-strings">12.10. Text strings</A>
|
|
<LI><A HREF="PNG-Rationale.html#R.PNG-file-signature">12.11. PNG file signature</A>
|
|
<LI><A HREF="PNG-Rationale.html#R.Chunk-layout">12.12. Chunk layout</A>
|
|
<LI><A HREF="PNG-Rationale.html#R.Chunk-naming-conventions">12.13. Chunk naming conventions</A>
|
|
<LI><A HREF="PNG-Rationale.html#R.Palette-histograms">12.14. Palette histograms</A>
|
|
</UL>
|
|
<LI><A HREF="PNG-GammaAppendix.html">13. Appendix: Gamma Tutorial</A>
|
|
<LI><A HREF="PNG-ColorAppendix.html">14. Appendix: Color Tutorial</A>
|
|
<LI><A HREF="PNG-CRCAppendix.html">15. Appendix: Sample CRC Code</A>
|
|
<LI><A HREF="PNG-Resources.html">16. Appendix: Online Resources</A>
|
|
<LI><A HREF="PNG-History.html">17. Appendix: Revision History</A>
|
|
<LI><A HREF="PNG-References.html">18. References</A>
|
|
<LI><A HREF="PNG-Credits.html">19. Credits</A>
|
|
</UL>
|
|
|
|
|
|
<HR>
|
|
<A HREF="PNG-Introduction.html">Next page</A>
|
|
<HR>
|
|
|
|
</BODY>
|
|
</HTML>
|