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.3: description + notes
- 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.
Developers intending to use this library for development of other freeware packages or their own software applications will need to be familiar with a few peculiarities due to the way that this library is packaged and installed. The reasons for this installation strategy are described further in the fw_common product release notes.
The header files and libraries in this package are installed into /usr/freeware. This means that when building software using this distribution of libpng you should be sure to do the following:
This flag will cause your compilations to correctly find the library's header files at compile time.
- Include the following flag on your compile lines:
- -I/usr/freeware/include
Include the following flag on your link lines:
-L/usr/freeware/lib (if using o32 ABI) -L/usr/freeware/lib32 (if using n32 ABI) -L/usr/freeware/lib64 (if using 64 ABI) This flag will cause the linker to correctly find the library's archive or shared object files at link time.
Additionally, include the following flag on your link lines:
-rpath /usr/freeware/lib (if using o32 ABI) -rpath /usr/freeware/lib32 (if using n32 ABI) -rpath /usr/freeware/lib64 (if using 64 ABI) This flag will allow the binary to locate the shared object library files when the application is run. This is required since the shared objects are stored in these /usr/freeware subdirectories which are not searched by the run-time linker by default.
Finally, if you are building an installable package for inst (contributing to freeware, for example) be sure to make your package depend upon this package. Add the following line to your spec file: prereq ( fw_libpng.sw.lib 1230000000 1239999900 ) Following these guidelines will allow your application to safely and easily use the software in this package.
To auto-install this package, go back and click on the respective install icon.