PNG (Portable Network Graphics) Specification Version 1.0
RFC 2083

Document Type RFC - Informational (March 1997; No errata)
Was draft-boutell-png-spec (individual)
Last updated 2013-03-02
Stream Legacy
Formats plain text pdf html bibtex
Stream Legacy state (None)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state RFC 2083 (Informational)
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                T. Boutell, et. al.
Request for Comments: 2083                             Boutell.Com, Inc.
Category: Informational                                       March 1997

             PNG (Portable Network Graphics) Specification
                              Version 1.0

Status of this Memo

   This memo provides information for the Internet community.  This memo
   does not specify an Internet standard of any kind.  Distribution of
   this memo is unlimited.

IESG Note:

   The IESG takes no position on the validity of any Intellectual
   Property Rights statements contained in this document.

Abstract

   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.

   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.

   This specification defines the Internet Media Type image/png.

Table of Contents

   1. Introduction ..................................................  4
   2. Data Representation ...........................................  5
      2.1. Integers and byte order ..................................  5
      2.2. Color values .............................................  6
      2.3. Image layout .............................................  6
      2.4. Alpha channel ............................................  7
      2.5. Filtering ................................................  8
      2.6. Interlaced data order ....................................  8
      2.7. Gamma correction ......................................... 10

Boutell, et. al.             Informational                      [Page 1]
RFC 2083            PNG: Portable Network Graphics            March 1997

      2.8. Text strings ............................................. 10
   3. File Structure ................................................ 11
      3.1. PNG file signature ....................................... 11
      3.2. Chunk layout ............................................. 11
      3.3. Chunk naming conventions ................................. 12
      3.4. CRC algorithm ............................................ 15
   4. Chunk Specifications .......................................... 15
      4.1. Critical chunks .......................................... 15
          4.1.1. IHDR Image header .................................. 15
          4.1.2. PLTE Palette ....................................... 17
          4.1.3. IDAT Image data .................................... 18
          4.1.4. IEND Image trailer ................................. 19
      4.2. Ancillary chunks ......................................... 19
          4.2.1. bKGD Background color .............................. 19
          4.2.2. cHRM Primary chromaticities and white point ........ 20
          4.2.3. gAMA Image gamma ................................... 21
          4.2.4. hIST Image histogram ............................... 21
          4.2.5. pHYs Physical pixel dimensions ..................... 22
          4.2.6. sBIT Significant bits .............................. 22
          4.2.7. tEXt Textual data .................................. 24
          4.2.8. tIME Image last-modification time .................. 25
          4.2.9. tRNS Transparency .................................. 26
          4.2.10. zTXt Compressed textual data ...................... 27
      4.3. Summary of standard chunks ............................... 28
      4.4. Additional chunk types ................................... 29
   5. Deflate/Inflate Compression ................................... 29
   6. Filter Algorithms ............................................. 31
      6.1. Filter types ............................................. 31
      6.2. Filter type 0: None ...................................... 32
      6.3. Filter type 1: Sub ....................................... 33
      6.4. Filter type 2: Up ........................................ 33
      6.5. Filter type 3: Average ................................... 34
      6.6. Filter type 4: Paeth...................................... 35
   7. Chunk Ordering Rules .......................................... 36
      7.1. Behavior of PNG editors .................................. 37
      7.2. Ordering of ancillary chunks ............................. 38
      7.3. Ordering of critical chunks .............................. 38
Show full document text