RFC 2083:PNG (Portable Network Graphics) Specifica...
RFC-Ref

PNG


Click on the red underlined text to get to the source

... The PNG format provides a portable, legally unencumbered, well- compressed, well-specified standard for lossless bitmapped image ...
... files. Although the initial motivation for developing PNG was to replace GIF, the design provides some useful new features not available in ...
... GIF features retained in PNG include: * Indexed-color images ...
... lossless compression. Important new features of PNG, not available in GIF, include: ...
... * Faster initial presentation in progressive display mode. PNG is designed to be: * Simple and portable: developers should be able to implement PNG ...
... PNG is designed to be: * Simple and portable: developers should be able to implement PNG easily. * Legally unencumbered: to the best knowledge of the PNG ...
... PNG easily. * Legally unencumbered: to the best knowledge of the PNG authors, no algorithms under legal challenge are used. (Some ...
... format, and in most cases more effectively. * Interchangeable: any standard-conforming PNG decoder must read all conforming PNG ...
... PNG decoder must read all conforming PNG files. * Flexible: the format allows for future extensions and private add-ons, without compromising interchangeability of basic PNG ...
... PNG files. * Flexible: the format allows for future extensions and private add-ons, without compromising interchangeability of basic PNG. * Robust: the design supports full file integrity checking as ...
... Pronunciation PNG is pronounced "ping". ...


... This chapter discusses basic data representations used in PNG files, as well as the expected representation of the image data. ...
... (Section 2.7). Source data with a precision not directly supported in PNG (for example, 5 bit/sample truecolor) must be scaled up to the next ...
... Conceptually, a PNG image is a rectangular pixel array, with pixels appearing left-to-right within each scanline, and scanlines ...
... in all cases the packing is simple and efficient. PNG permits multi-sample pixels only with 8- and 16-bit samples, so multiple samples of a single pixel are never packed into one ...
... An alpha channel, representing transparency information on a per- pixel basis, can be included in grayscale and truecolor PNG images. ...
... fraction; in effect, such an image is already composited against a black background. PNG does not use premultiplied alpha.) Transparency control is also possible without the storage cost of ...
... PNG allows the image data to be filtered before it is compressed. Filtering ...
... Filtering can improve the compressibility of the data. The filter step itself does not reduce the size of the data. All PNG filters are strictly lossless ...
... lossless. PNG defines several different filter algorithms, including "None" ...
... A PNG image can be stored in interlaced order to allow progressive display. The purpose of this feature is to allow images ...
... PNG images can specify, via the gAMA chunk, the gamma characteristic of the image ...
... For high-precision applications, the exact chromaticity of the RGB data in a PNG image can be specified via the cHRM chunk, allowing more accurate color matching than gamma correction alone will ...
... A PNG file can store text associated with the image, such as an image ...
... Character codes not defined in Latin-1 should not be used, because they have no platform-independent meaning. If a non-Latin-1 code does appear in a PNG text string, its interpretation will vary across platforms and decoders. Some systems might not even be ...


... A PNG file consists of a PNG signature followed by a series of ...
... A PNG file consists of a PNG signature followed by a series of chunks. This chapter defines the signature ...
... PNG file signature ...
... The first eight bytes of a PNG file always contain the following (decimal) values: ...
... This signature indicates that the remainder of the file contains a single PNG image, consisting of a series of chunks beginning with an IHDR chunk and ending with an IEND chunk. ...
... an IHDR chunk and ending with an IEND chunk. See Rationale: PNG file signature (Section 12.11). ...
... 4-byte chunk type code. For convenience in description and in examining PNG files, type codes are restricted to consist of uppercase and lowercase ASCII letters (A-Z and a-z, or 65-90 ...
... properties of a chunk even when it does not recognize the type code. These rules are intended to allow safe, flexible extension of the PNG format, by allowing a decoder to decide what to do when it encounters an unknown chunk. The naming rules are not normally ...
... 0 (uppercase) = public, 1 (lowercase) = private. A public chunk is one that is part of the PNG specification or is registered in the list of PNG special-purpose public chunk ...
... A public chunk is one that is part of the PNG specification or is registered in the list of PNG special-purpose public chunk types. Applications can also define private (unregistered) ...
... Must be 0 (uppercase) in files conforming to this version of PNG. The significance of the case of the third letter of the chunk ...
... Decoders should not complain about a lowercase third letter, however, as some future version of the PNG specification could define a meaning for this bit. It is sufficient to treat a ...
... bit is not of interest to pure decoders, but it is needed by PNG editors (programs that modify PNG files). This bit ...
... decoders, but it is needed by PNG editors (programs that modify PNG files). This bit defines the proper handling of unrecognized chunks in ...
... If a chunk's safe-to-copy bit is 1, the chunk may be copied to a modified PNG file whether or not the software recognizes the chunk type, and regardless of the extent of the file modifications. ...
... or reordering of critical chunks, then unrecognized unsafe chunks must not be copied to the output PNG file. (Of course, if the program does recognize the chunk, it can choose to output an appropriately modified version ...
... version.) A PNG editor is always allowed to copy all unrecognized chunks if it has only added, deleted, modified, or reordered ancillary ...
... chunks to depend on other ancillary chunks. PNG editors that do not recognize a critical chunk must report an error and refuse to process that PNG ...
... PNG editors that do not recognize a critical chunk must report an error and refuse to process that PNG file at all. The safe/unsafe mechanism is intended for use with ancillary chunks. The safe-to-copy bit ...
... chunks. Rules for PNG editors are discussed further in Chunk Ordering Rules (Chapter 7). ...


... This chapter defines the standard types of PNG chunks. ...
... standard critical chunks. A valid PNG image must contain an IHDR chunk, one or more IDAT chunks, and an IEND chunk. ...
... deflate/inflate compression with a 32K sliding window) is defined. All standard PNG images must be compressed with this scheme. The compression method ...
... boundaries have no semantic significance and can occur at any point in the compressed datastream. A PNG file in which each IDAT chunk contains only one data byte is legal, though remarkably wasteful of space. (For that matter, zero-length ...
... The IEND chunk must appear LAST. It marks the end of the PNG datastream. The chunk's data field is empty. ...
... Applications that need device-independent specification of colors in a PNG file can use the cHRM chunk to specify the 1931 CIE x,y chromaticities of the red, green, and blue primaries used in the image ...
... integer 31270. cHRM is allowed in all PNG files, although it is of little value for grayscale images. ...
... To simplify decoders, PNG specifies that only certain sample depths can be used, and further specifies that sample values should be scaled to the full range ...
... decoders to recover the original data losslessly even if the data had a sample depth not directly supported by PNG. We recommend that an encoder emit an sBIT chunk if it has ...
... image is a valid PNG file of the sample depth indicated by IHDR. However, if the decoder wishes to recover the original data at its ...
... Other keywords may be invented for other purposes. Keywords of general interest can be registered with the maintainers of the PNG specification. However, it is also permitted to use private unregistered keywords. (Private keywords should be ...
... time stamp that is updated whenever the image data is changed. It is recommended that tIME not be changed by PNG editors that do not change the image data. See also the Creation Time tEXt ...
... Additional public PNG chunk types are defined in the document "PNG Special-Purpose Public Chunks" [PNG-EXTENSIONS ...
... Additional public PNG chunk types are defined in the document "PNG Special-Purpose Public Chunks" [PNG-EXTENSIONS]. Chunks described ...
... encouraged to use those chunk types whenever appropriate for their applications. Additional chunk types can be proposed for inclusion in that list by contacting the PNG specification maintainers at png-info@uunet.uu.net or at png-group@w3.org. ...
... New public chunks will only be registered if they are of use to others and do not violate the design philosophy of PNG. Chunk registration is not automatic, although it is the intent of the ...


... PNG compression method 0 (the only compression method presently ...
... compression method 0 (the only compression method presently defined for PNG) specifies deflate/inflate compression with a 32K ...
... Deflate-compressed datastreams within PNG are stored in the "zlib" format, which has the structure: ...
... RFC-1950]. For PNG compression method 0, the zlib compression method/flags code ...
... size of not more than 32K. Note that the zlib compression method number is not the same as the PNG compression method number. The additional flags must not specify a preset dictionary. ...
... algorithm used is not the same as the CRC calculation used for PNG chunk check values. The zlib check value is useful mainly as a cross-check that the deflate and inflate algorithms ...
... implemented correctly. Verifying the chunk CRCs provides adequate confidence that the PNG file has been transmitted undamaged. In a PNG ...
... PNG file has been transmitted undamaged. In a PNG file, the concatenation of the contents of all the IDAT chunks makes up a zlib datastream as specified above. This ...
... cannot rely on this.) PNG also uses zlib datastreams in zTXt chunks. In a zTXt chunk, the remainder of the chunk following the compression method byte is a ...


... PNG filter method 0 defines five basic filter ...
... filter that refers to it. PNG imposes no restriction on which filter types can be applied to an image ...


... To allow new chunk types to be added to PNG, it is necessary to establish rules about the ordering requirements for all chunk types. ...
... establish rules about the ordering requirements for all chunk types. Otherwise a PNG editing program cannot know what to do when it encounters an unknown chunk. ...
... encounters an unknown chunk. We define a "PNG editor" as a program that modifies a PNG file and wishes to preserve as much as possible of the ancillary information ...
... We define a "PNG editor" as a program that modifies a PNG file and wishes to preserve as much as possible of the ancillary information ...
... wishes to preserve as much as possible of the ancillary information in the file. Two examples of PNG editors are a program that adds or modifies text chunks, and a program that adds a suggested palette to a truecolor PNG ...
... PNG editors are a program that adds or modifies text chunks, and a program that adds a suggested palette to a truecolor PNG file. Ordinary image editors are not PNG editors in ...
... a truecolor PNG file. Ordinary image editors are not PNG editors in this sense, because they usually discard all unrecognized information while reading in an image ...
... while reading in an image. (Note: we strongly encourage programs handling PNG files to preserve ancillary information whenever possible.) ...
... PLTE does not recognize this new chunk, it may insert PLTE in the wrong place, namely after the new chunk. We could prevent such problems by requiring PNG editors to discard all unknown chunks, but that is a very unattractive solution. Instead, PNG requires ...
... problems by requiring PNG editors to discard all unknown chunks, but that is a very unattractive solution. Instead, PNG requires ancillary chunks not to have ordering restrictions like this. ...
... To prevent this type of problem while allowing for future extension, we put some constraints on both the behavior of PNG editors and the allowed ordering requirements for chunks. ...
... Behavior of PNG editors ...
... The rules for PNG editors are: * When copying an unknown unsafe-to-copy ancillary chunk, a ...
... * When copying an unknown unsafe-to-copy ancillary chunk, a PNG editor must not move the chunk relative to any critical chunk. It can relocate the chunk freely relative to other ...
... critical chunks if it is preserving unknown unsafe-to-copy chunks.) * When copying an unknown safe-to-copy ancillary chunk, a PNG editor must not move the chunk from before IDAT to after IDAT or vice versa. (This is well defined because IDAT is ...
... that chunk type. However, it can always choose to apply the above general rules instead. * PNG editors must give up on encountering an unknown critical chunk type, because there is no way to be certain that a ...
... These rules are expressed in terms of copying chunks from an input file to an output file, but they apply in the obvious way if a PNG file is modified in place. ...
... other ancillary chunks. (For example, it is unsafe to assume that your private ancillary chunk occurs immediately before IEND. Even if your application always writes it there, a PNG editor might have inserted some other ancillary chunk after it. But you can safely assume that your chunk will remain somewhere between IDAT ...
... Critical chunks can have arbitrary ordering requirements, because PNG editors are required to give up if they encounter unknown critical chunks. For example, IHDR has the special ordering rule ...
... critical chunks. For example, IHDR has the special ordering rule that it must always appear first. A PNG editor, or indeed any PNG-writing program, must know and follow the ordering rules for ...
... that it must always appear first. A PNG editor, or indeed any PNG-writing program, must know and follow the ordering rules for any critical chunk type that it can emit. ...


... On systems where file names customarily include an extension signifying file type, the extension ".png" is recommended for PNG files. Lower case ".png" is preferred if file names are case- sensitive. ...
... image/png" as the Internet Media Type for PNG [RFC-2045, RFC-2048 ...
... * The four-byte file type code for PNG files is "PNGf". (This code has been registered with Apple for PNG ...
... PNG files is "PNGf". (This code has been registered with Apple for PNG files.) The creator code will vary depending on the creating application. ...
... creator code will vary depending on the creating application. * The contents of the data fork must be a PNG file exactly as described in the rest of this specification. * The contents of the resource fork are unspecified. It may ...
... be empty or may contain application-dependent resources. * When transferring a Macintosh PNG file to a non-Macintosh system, only the data fork should be transferred. ...
... PNG itself is strictly a single-image format. However, it may be necessary to store multiple images ...
... GIF files. In the future, a multiple-image format based on PNG may be defined. Such a format will be considered a separate file format and will have a ...
... file format and will have a different signature. PNG-supporting applications may or may not choose to support the multiple-image format. ...
... A PNG file or datastream is composed of a collection of explicitly typed "chunks". Chunks whose contents are defined by the specification could actually contain anything, including malicious ...
... code. But there is no known risk that such malicious code could be executed on the recipient's computer as a result of decoding the PNG image. ...
... security risk associated with unknown or unimplemented chunk types, because such chunks will be ignored, or at most be copied into another PNG file. The tEXt and zTXt chunks contain data that is meant to be ...
... attempt to overflow the decoder's buffers. Also, the PNG signature bytes provide early detection of common file ...


... encoder behavior. The only absolute requirement on a PNG encoder is that it produce files that conform to the format specified in the preceding chapters. ...
... When encoding input samples that have a sample depth that cannot be directly represented in PNG, the encoder must scale the samples up to a sample depth that is allowed by PNG ...
... PNG, the encoder must scale the samples up to a sample depth that is allowed by PNG. The most accurate scaling method is the linear equation ...
... encoder_gamma) * MAXSAMPLE) The file_gamma value to be written in the PNG gAMA chunk is the same as encoder_gamma in this equation, since we are assuming the ...
... value can be selected somewhat arbitrarily. Values of 0.45 or 0.5 are generally good choices because they are common in video systems, and so most PNG decoders should do a good job displaying such images ...
... Some image renderers may simultaneously write the image to a PNG file and display it on-screen. The displayed pixels should be gamma corrected for the display system and viewing conditions in ...
... If the renderer wants to write the same gamma-corrected sample values to the PNG file, avoiding a separate gamma-encoding step for file output, then this screen_gc value should be written in ...
... encoding step for file output, then this screen_gc value should be written in the gAMA chunk. This will allow a PNG decoder to reproduce what the file's originator saw on screen during rendering (provided the ...
... values for file storage using a standard value of gamma such as 0.5. In fact, this is preferable, since some PNG decoders may not accurately display images ...
... encoding, instead making sample values directly proportional to scene light intensity. If the PNG encoder receives sample values that have already been quantized into linear-light integer values ...
... in further loss of information. The encoder should just write the sample values to the PNG file. This "linear" sample encoding is equivalent to gamma encoding ...
... File format converters generally should not attempt to convert supplied images to a different gamma. Store the data in the PNG file without conversion, and record the source gamma if it is known. Gamma alteration at file conversion time causes re- ...
... such cases, a file format converter is strongly encouraged to write a PNG gAMA chunk that corresponds to the known gamma of the source image. Note that some file formats ...
... camera. If the input file's gamma value is greater than 1.0, it is almost certainly a display system gamma, and you should use its reciprocal for the PNG gAMA. If the encoder ...
... file_gamma = viewing_gamma / display_gamma This will allow viewers of the PNG file to see the same image that the person running the file format ...
... image gamma, it's better to write a gAMA chunk with an approximately right value than to omit the chunk and force PNG decoders to guess at an appropriate gamma. ...
... images that actually use them. Scanners that produce PNG files as output should insert the filter chromaticities into a cHRM chunk and the camera ...
... colors that are outside the gamut of the chosen RGB device should be clipped or otherwise constrained to be within the gamut; PNG does not store out of gamut colors. ...
... RGB gamut, so the image data will require gamut mapping before writing to PNG format.) TIFF 6.0 files can optionally store calibration information, which if present should be used to ...
... images to a different RGB color space. Store the data in the PNG file without conversion, and record the source primary chromaticities if they are known. Color space transformation at file conversion time is a bad idea because of ...
... useful data and are simply there to fill out the rectangular image area required by PNG. In this case, fully transparent pixels should all be assigned the same color value for best compression ...
... If the original image has premultiplied (also called "associated") alpha data, convert it to PNG's non-premultiplied format by dividing each sample value by the corresponding alpha value, then multiplying by the maximum value for the image ...
... A PLTE chunk can appear in truecolor PNG files. In such files, the chunk is not an essential part of the image data, but simply ...
... present the image against the same background color. It is recommended that PNG editors delete or recompute the palette if they alter or remove ...
... that much better heuristics will be found as more experience is gained with PNG. Filtering ...
... sure to check that it meets the restrictions on keywords. PNG text strings are expected to use the Latin-1 character set. Encoders ...
... Applications can use PNG private chunks to carry information that need not be understood by other applications. Such chunks must be given names with lowercase second letters, to ensure that they can ...
... image. Creation of private critical chunks is discouraged because they render PNG files unportable. Such chunks should not be used in publicly available software or files. If private critical ...
... If you want others outside your organization to understand a chunk type that you invent, contact the maintainers of the PNG specification to submit a proposed chunk name and definition for addition to the list of special-purpose public chunks (see ...
... since the idea is to let other users figure out what the chunk contains. If of general usefulness, new keywords can be registered with the maintainers of the PNG specification. But it is permissible to use keywords without registering them first. ...


... decoder behavior. The only absolute requirement on a PNG decoder is that it successfully read any file conforming to the format specified in the preceding ...
... To ensure early detection of common file-transfer problems, decoders should verify that all eight bytes of the PNG file signature are correct. (See Rationale: PNG ...
... PNG file signature are correct. (See Rationale: PNG file signature, Section 12.11.) A decoder ...
... Non-square pixels can be represented (see the pHYs chunk), but viewers are not required to account for them; a viewer can present any PNG file as though its pixels are square. Conversely, viewers running on display hardware ...
... To achieve PNG's goal of universal interchangeability, decoders are required to accept all types of PNG ...
... PNG's goal of universal interchangeability, decoders are required to accept all types of PNG image: indexed-color, truecolor, and grayscale. Viewers running on indexed-color ...
... image. This approach requires more work, first in choosing the palette, and second in mapping individual pixels to the closest available color. PNG allows the encoder to supply a suggested palette in a PLTE chunk, but not all encoders ...
... Numerous implementations of color quantization are available. The PNG reference implementation, libpng, includes code for the purpose. ...
... Decoders may wish to scale PNG data to a lesser sample depth (data precision) for display. For example, 16-bit data will need to be ...
... Decoder gamma handling, Section 10.5.) When an sBIT chunk is present, the original pre-PNG data can be recovered by shifting right to the sample depth specified by sBIT. Note that linear scaling will not necessarily reproduce the ...
... 8-bit, 31 for 5-bit, etc), insample is the value of the sample in the PNG file, and fbval is the value to write into the frame buffer. The first line converts from ...
... In many cases, decoders will treat image data in PNG files as device-dependent RGB data and display it without modification ...
... RGB data and display it without modification (except for appropriate gamma correction). This provides the fastest display of PNG images. But unless the viewer uses exactly the same display hardware ...
... depend on the monitor type, i.e., the values in the cHRM chunk. Decoders may wish to do this for PNG files with no cHRM chunk. In that case, a reasonable default would be the CCIR 709 primaries [ITU-BT709 ...
... against. The background color is either used as background or ignored; it is not an intermediate layer between the PNG image and some other background. ...
... composite a foreground image against a background image; the PNG file defines the foreground image and the transparency mask, but ...
... Variations: * If output is to another PNG image file instead of a frame buffer ...
... overflow or underflow. When displaying a PNG image with full alpha channel, it is ...
... background, even if it's only black. Ignoring the alpha channel will cause PNG images that have been converted from an associated-alpha representation to look wrong. (Of course, if the ...
... images that contain only zero and one alpha values. (This is implicitly true for grayscale and truecolor PNG files that use a tRNS chunk; for indexed-color PNG files, it is easy to check whether tRNS contains ...
... grayscale and truecolor PNG files that use a tRNS chunk; for indexed-color PNG files, it is easy to check whether tRNS contains any values other than 0 and 255.) In this simple case, ...
... In truecolor PNG files, the encoder may have provided a suggested PLTE chunk for use by viewers running on indexed-color hardware ...
... composite image. In this case it is best to perform a truecolor compositing step on the truecolor PNG image and background image, ...
... able to understand it. PNG text is not supposed to contain any characters outside the ISO 8859-1 "Latin-1" character set (that is, no codes 0-31 or 127- ...


... transparent a pixel, the less it hides the background against which the image is presented. In PNG, alpha is really the degree of opacity: zero alpha represents a completely transparent pixel, maximum alpha represents a completely opaque ...
... Chunk A section of a PNG file. Each chunk has a type indicated by its chunk type name. Most types of chunks also include some data. The format and meaning of the data within the chunk are determined ...
... decoder in order to produce a meaningful image from a PNG file. CRT ...
... sequence of bytes. This term is used rather than "file" to describe a byte sequence that is only a portion of a file. We also use it to emphasize that a PNG image might be generated and consumed "on the fly", never appearing in a stored file at all. ...
... Deflate The name of the compression algorithm used in standard PNG files, as well as in zip, gzip, pkzip, and other compression ...
... A transformation applied to image data in hopes of improving its compressibility. PNG uses only lossless (reversible) filter ...
... image representation in which each pixel is represented by a single sample value representing overall luminance (on a scale from black to white). PNG also permits an alpha sample to be stored for each pixel of a grayscale image. ...
... Palette The set of colors available in an indexed-color image. In PNG, a palette is an array of colors defined by red, green, and blue samples. (Alpha values can also be defined for palette entries, ...
... image is a rectangular array of pixels. PNG editor A program that modifies a PNG file and preserves ancillary information ...
... PNG editor A program that modifies a PNG file and preserves ancillary information, including chunks that it does not recognize. Such a program must obey the rules given in Chunk Ordering Rules (Chapter ...
... image representation in which pixel colors are defined by storing three samples for each pixel, representing red, green, and blue intensities respectively. PNG also permits an alpha sample to be stored for each pixel of a truecolor image. ...
... compression. Also the name of a library implementing this method. PNG implementations need not use the zlib library, but they must conform to its format for compressed data. ...


... (This appendix is not part of the formal PNG specification.) This appendix gives the reasoning behind some of the design decisions ...
... This appendix gives the reasoning behind some of the design decisions in PNG. Many of these decisions were the subject of considerable debate. The authors freely admit that another group ...
... But this would require new code anyway; it would not be all that much easier to implement than a whole new file format. (PNG is designed to be simple to implement, with the exception of the compression ...
... The features chosen for PNG are intended to address the needs of applications that previously used the special strengths of GIF ...
... GIF is well adapted for online communications because of its streamability and progressive display capability. PNG shares those attributes. We have also addressed some of the widely known shortcomings of ...
... We have also addressed some of the widely known shortcomings of GIF. In particular, PNG supports truecolor images. We know of no widely used image ...
... image format that losslessly compresses truecolor images as effectively as PNG does. We hope that PNG will make use of truecolor images ...
... images as effectively as PNG does. We hope that PNG will make use of truecolor images more practical and widespread. ...
... images. GIF provided a simple transparent-color specification for this purpose. PNG supports a full alpha channel as well as transparent-color specifications. This allows both ...
... Internet are often mistakenly processed as text, leading to file corruption. PNG is designed so that such errors can be detected quickly and reliably. ...
... quickly and reliably. PNG has been expressly designed not to be completely dependent on a single compression technique. Although deflate ...
... deflate/inflate compression is mentioned in this document, PNG would still exist without it. ...
... Some features have been deliberately omitted from PNG. These choices were made to simplify implementation of PNG, promote ...
... Some features have been deliberately omitted from PNG. These choices were made to simplify implementation of PNG, promote portability and interchangeability, and make the format as simple and foolproof as possible for users. In particular: ...
... and foolproof as possible for users. In particular: * There is no uncompressed variant of PNG. It is possible to store uncompressed data by using only uncompressed deflate ...
... deflate does not make incompressible data much larger). However, PNG software must support full deflate/inflate; any software that does not is not compliant with the PNG ...
... PNG software must support full deflate/inflate; any software that does not is not compliant with the PNG standard. The two most important features of PNG---portability and ...
... that does not is not compliant with the PNG standard. The two most important features of PNG---portability and compression---are absolute requirements ...
... deflate/inflate compromises both of these objectives. * There is no lossy compression in PNG. Existing formats such as JFIF already handle lossy compression well. Furthermore, ...
... compression is complex to implement. Adding JPEG support to a PNG decoder might increase its size by an order of magnitude. This ...
... appear to be more practical than a common thumbnail format. It is worth noting that private extensions to PNG could easily add these features. We will not, however, include them as part of the basic PNG ...
... PNG could easily add these features. We will not, however, include them as part of the basic PNG standard. PNG ...
... PNG standard. PNG also does not support multiple images in one file. This restriction is a reflection of the reality that many applications ...
... single-image and multi-image formats. PNG is a single-image format. (But see Multiple-image ...
... Numerous existing formats were considered before deciding to develop PNG. None could meet the requirements we felt were important for PNG ...
... PNG. None could meet the requirements we felt were important for PNG. GIF ...
... image representations are too machine-specific or not adequately compressed. The overall chunk structure of IFF is a useful concept that PNG has liberally borrowed from, but we did not attempt to be bit-for-bit ...
... lossless truecolor compression is often inferior to that of PNG. ...
... It has been asked why PNG uses network byte order. We have selected one byte ordering ...
... PNG's two-dimensional interlacing scheme is more complex to implement than GIF's line-wise interlacing. It also costs a ...
... image is a World Wide Web imagemap that the user has seen before, PNG's first pass is often enough to determine where to click. The PNG scheme also looks better than GIF ...
... before, PNG's first pass is often enough to determine where to click. The PNG scheme also looks better than GIF's, because horizontal and vertical resolution never differ by more than a ...
... factor of two; this avoids the odd "stretched" look seen when interlaced GIFs are filled in by replicating scanlines. Preliminary results show that small text in an interlaced PNG image is typically readable about twice as fast as in an ...
... image is typically readable about twice as fast as in an equivalent GIF, i.e., after PNG's fifth pass or 25% of the image data, instead of after GIF ...
... data, instead of after GIF's third pass or 50%. This is again due to PNG's more balanced increase in resolution. ...
... appearing "too dark" or "too light". PNG expects viewers to compensate for image gamma at the time that the image ...
... roundoff error. Requiring conversion at encoding time thus causes irreversible loss. Since PNG is intended to be a lossless storage format ...
... PNG uses "unassociated" or "non-premultiplied" alpha so that images with separate transparency masks can be stored losslessly. ...
... is covered by the image). This representation can be converted to PNG by dividing the sample values by alpha, except where alpha is zero. The result will look good if displayed by a viewer that handles alpha properly, but will not look very good if the viewer ...
... Although each form of alpha storage has its advantages, we did not want to require all PNG viewers to handle both forms. We standardized on non-premultiplied alpha as being the lossless and ...
... PNG includes filtering capability because filtering can ...
... need more than that: they want to be able to store several identifiable pieces of text. For example, a database using PNG files to store medical X-rays would likely want to include patient's name, doctor's name, etc. A simple way to do this in ...
... files to store medical X-rays would likely want to include patient's name, doctor's name, etc. A simple way to do this in PNG would be to invent new private chunks holding text. The disadvantage of such an approach is that other applications would have no idea what was in those chunks, and would simply ignore ...
... them. Instead, we recommend that textual information be stored in standard tEXt chunks with suitable keywords. Use of tEXt tells any PNG viewer that the chunk contains text that might be of interest to a human user. Thus, a person looking at the file with ...
... character sets other than Latin-1. We recognize that the need for other character sets will increase. However, PNG already requires that programmers implement a number of new and unfamiliar features, and text representation is not PNG ...
... PNG already requires that programmers implement a number of new and unfamiliar features, and text representation is not PNG's primary purpose. Since PNG provides for the creation and public registration ...
... programmers implement a number of new and unfamiliar features, and text representation is not PNG's primary purpose. Since PNG provides for the creation and public registration of new ancillary ...
... PNG file signature ...
... The first eight bytes of a PNG file always contain the following values: ...
... This signature both identifies the file as a PNG file and provides for immediate detection of common file-transfer problems. The first two bytes distinguish PNG ...
... PNG file and provides for immediate detection of common file-transfer problems. The first two bytes distinguish PNG files on systems that expect the first two bytes to identify the file type uniquely. The first ...
... byte is chosen as a non-ASCII value to reduce the probability that a text file may be misrecognized as a PNG file; also, it catches bad file transfers that clear bit ...
... The chunk naming conventions allow safe, flexible extension of the PNG format. This mechanism is much better than a format version number, because it works on a feature-by-feature basis rather than being an overall indicator. Decoders ...
... of the data for any private chunk type. When a PNG file is modified, certain ancillary chunks may need to be changed to reflect changes in other chunks. For example, a histogram chunk needs to be changed if the image ...


... (This appendix is not part of the formal PNG specification.) It would be convenient for graphics ...
... requirement for boosted contrast (gamma) in dark surround conditions is due to the way the human visual system works, and applies equally well to computer monitors. Thus, a PNG viewer trying to achieve the maximum realism for the images it displays ...
... The file_gamma value, as defined above, is what goes in the gAMA chunk in a PNG file. If file_gamma is not 1.0, we know that gamma correction has been done on the sample values in the file, and we could call them "gamma corrected" samples. However, since there ...
... responsible for making the overall gamma of the system equal to the desired viewing_gamma, by selecting the decoding_gamma appropriately. When displaying a PNG file, the gAMA chunk provides the file_gamma value. The display_gamma may be known for this machine, or it might be obtained from the system software, or ...
... (or its inverse, as required). However, PNG does not provide a way to specify that an image uses this exact transfer function; the gAMA chunk always assumes a pure ...
... closely approximates the transfer function. Thus, when writing a PNG file with data obtained from digitizing the output of a modern video camera, the gAMA chunk should contain 0.5 or 0.52, not 0.45. ...
... cameras are likely to be larger than the difference between these functions.) The designers of PNG deemed the simplicity and flexibility of a power-law definition of gAMA to be more important than being able to describe the SMPTE ...


... (This appendix is not part of the formal PNG specification.) About chromaticity ...
... The cHRM chunk is used, together with the gAMA chunk, to convey precise color information so that a PNG image can be displayed or printed with better color fidelity than is possible without this ...
... information. The preceding chapters state how this information is encoded in a PNG image. This tutorial briefly outlines the underlying color theory for those who might not be familiar with ...
... thus proven in industrial use. Accurate, device-independent color started to spread from high-end, specialized areas into the mainstream during the late 1980s and early 1990s, and PNG takes notice of that trend. ...
... values of each primary color and the CRT_gamma. So why does PNG not store images in XYZ instead of RGB? Well, two ...
... that undemanding viewers can get by with simply displaying the data without color correction. By storing calibrated RGB, PNG retains compatibility with existing programs that expect RGB ...
... What can I do with it? If a PNG file has the gAMA and cHRM chunks, the source_RGB values can be converted to XYZ. This lets you: ...


... the CRC (Cyclic Redundancy Check) employed in PNG chunks. (See also ISO 3309 [ISO-3309 ...


... (This appendix is not part of the formal PNG specification.) This appendix gives the locations of some Internet ...
... This appendix gives the locations of some Internet resources for PNG software developers. By the nature of the Internet, the list is ...
... The latest released versions of this document and related information can always be found at the PNG FTP archive site, ...
... archive site, ftp://ftp.uu.net/graphics/png/. The PNG specification is available in several formats, including HTML, plain text, and ...
... images A reference implementation in portable C is available from the PNG FTP archive ...
... Electronic mail The maintainers of the PNG specification can be contacted by e- mail at png-info@uunet.uu.net or at png-group@w3.org. ...
... group@w3.org. PNG home page There is a World Wide Web ...
... There is a World Wide Web home page for PNG at http://quest.jpl.nasa.gov/PNG/. This page is a central location ...
... http://quest.jpl.nasa.gov/PNG/ ...
... http://quest.jpl.nasa.gov/PNG/. This page is a central location for current information about PNG and PNG-related tools. ...
... http://quest.jpl.nasa.gov/PNG/. This page is a central location for current information about PNG and PNG-related tools. ...


... (This appendix is not part of the formal PNG specification.) The PNG format ...
... PNG specification.) The PNG format has been frozen since the Ninth Draft of March 7, 1995, and all future changes are intended to be backwards compatible. The revisions since the Ninth Draft are simply clarifications, ...
... improvements in presentation, and additions of supporting material. On 1 October 1996, the PNG specification was approved as a W3C (World Wide Web Consortium) Recommendation. ...
... * Added a "Creation Time" tEXt keyword * Macintosh representation of PNG specified * Added discussion of security issues ...


... PNG Group, "PNG Special-Purpose Public Chunks". Available in several formats from ftp://ftp.uu.net/graphics/png/documents/pngextensions.* ...
... PNG Group, "PNG Special-Purpose Public Chunks". Available in several formats from ftp://ftp.uu.net/graphics/png/documents/pngextensions.* ...


... The Adam7 interlacing scheme is not patented and it is not the intention of the originator of that scheme to patent it. The scheme may be freely used by all PNG implementations. The name "Adam7" may be freely used to describe interlace method 1 of the ...
... "Adam7" may be freely used to describe interlace method 1 of the PNG specification. Trademarks ...



Google
Web
RFC-Ref