PNG (pronounced ``ping'') is the Portable Network Graphics format, a format for storing images on computers. 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 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. Some of PNG's spiffier features include:
libpng-1.0.15: description + notes
The PNG Home Site has more information.
- 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)
- non-patented (you betcha!), completely lossless compression
- majorly gnarly two-dimensional interlacing scheme
- 1-, 2-, 4- and 8-bit palette support (like GIF)
- 1-, 2-, 4-, 8- and 16-bit grayscale support
- 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, and then some (good for at least 63 millenia! yowza!)
- free and complete reference implementation with full source code
NOTE: Developers intending to use this distribution of libpng for application development should be sure to read the information below. Users installing libpng for the runtime environment only need not read any further.
If your code ignores the comments in
png_struct_deffields directly you should compile with
_BSD_SIGNALSdefined. The BSD
jmp_bufstructure is larger than the POSIX one, so libpng itself is built with the BSD struct.
Developers intending to use this distribution for application development should be sure to read the information in FAQ 3.8.
To auto-install this package, go back and click on the respective install icon.