Chapter 1: An Introduction to PNG
1.1. Overview of Image Properties
1.2. What Is PNG Good For?
1.2.1. Alpha Channels
1.2.2. Gamma and Color Correction
1.2.3. Interlacing and Progressive Display
1.2.4. Compression
1.2.4.1. Compression filters
1.2.4.2. Compression oopers
1.2.5. Summary of Usage
1.3. Case Study of a PNG-Supporting Image Editor
1.3.1. PNG Feature Support in Fireworks
1.3.2. Invoking PNG Features in Fireworks
1.3.3. Analysis of Fireworks PNG Support
1.3.4. Concluding Thoughts on Fireworks
Chapter 2: Applications: WWW Browsers and Servers
2.1. WWW Browsers
2.1.1. Netscape Navigator
2.1.2. Microsoft Internet Explorer
2.1.3. Opera
2.1.4. Acorn Browse
2.1.5. Arena
2.1.6. Amaya
2.1.7. Other Browsers
2.1.7.1. Amiga
2.1.7.2. Acorn
2.1.7.3. BeOS
2.1.7.4. Macintosh
2.1.7.5. NeXTStep/OpenStep
2.1.7.6. OS/2
2.1.8. Client-Side Workarounds: The OBJECT Tag
2.2. WWW Servers
2.2.1. ``Standard'' Servers
2.2.2. Internet Information Server
2.2.3. Server-Side Workarounds: Content Negotiation
2.2.3.1. Apache variants files
2.2.3.2. Apache MultiViews
Chapter 3: Applications: Image Viewers
3.1. Windows 95/98/NT
3.2. Windows 3.x
3.3. VMS
3.4. Unix
3.5. OS/2
3.6. Macintosh
3.7. Java
3.8. DOS
3.9. BeOS
3.10. Atari
3.11. Amiga
3.12. Acorn RISC OS
Chapter 4: Applications: Image Editors
4.1. Photoshop 5
4.2. Photoshop 4
4.3. ImageReady
4.4. Paint Shop Pro
4.5. The GIMP
4.6. Other Image Editors
Chapter 5: Applications: Image Converters
5.1. pngcrush
5.2. pnmtopng
5.3. gif2png
5.4. Tiff2png
5.5. pngcheck
5.6. Other Conversion Programs
Chapter 6: Applications: VRML Browsers and Other 3D Apps
6.1. Cosmo Player
6.2. WorldView/MSVRML
6.3. blaxxun Contact
6.4. Viscape Universal
6.5. LibVRML97/Lookat
6.6. FreeWRL
6.7. VRMLView
6.8. Other VRML Browsers
6.9. Other 3D Applications
Chapter 7: History of the Portable Network Graphics Format
7.1. Anatomy of an Internet Working Group
7.2. Implementation
7.3. MNG
7.4. Mainstream Support and Present Status
Chapter 8: PNG Basics
8.1. Chunks
8.2. PNG Signature
8.3. A Word on Color Representation
8.4. The Simplest PNG
8.5. PNG Image Types
8.5.1. Palette-Based
8.5.2. Palette-Based with Transparency
8.5.3. Grayscale
8.5.4. Grayscale with Transparency
8.5.5. Grayscale with Alpha Channel
8.5.6. RGB
8.5.7. RGB with Transparency
8.5.8. RGB with Alpha Channel
8.6. Interlacing and Progressive Display
Chapter 9: Compression and Filtering
9.1. Filtering
9.2. The Deflate Compression Algorithm
9.2.1. A Final Word on Patents
9.3. Real-World Comparisons
9.4. Practical Compression Tips
9.4.1. Tips for Users
9.4.2. Tips for Programmers
Chapter 10: Gamma Correction and Precision Color
10.1. Transfer Functions and Gamma
10.2. The gAMA Chunk
10.3. Encoding Gamma
10.4. Gamma Gotchas
10.5. Chromaticity
10.6. Color Management Systems and sRGB
10.7. ICC Profiles
Chapter 11: PNG Options and Extensions
11.1. Background Color (bKGD)
11.2. Timestamp (tIME)
11.3. Latin-1 Text Annotations (tEXt, zTXt)
11.4. International Text Annotations (iTXt)
11.5. Histogram (hIST)
11.6. Suggested Palette (sPLT)
11.7. Significant Bits (sBIT)
11.8. Physical Pixel Dimensions (pHYs)
11.9. Physical Scale (sCAL)
11.10. Image Offset (oFFs)
11.11. Pixel Calibration (pCAL)
11.12. Fractal Parameters (fRAc)
11.13. GIF Conversion Info (gIFg, gIFx)
11.14. GIF Plain Text (gIFt)
11.15. Other Chunks
Chapter 12: Multiple-Image Network Graphics
12.1. Common Applications of MNG
12.2. MNG Structure
12.2.1. Image-Defining Chunks
12.2.2. Chunks for Image Display, Manipulation, and Control
12.3. The Simplest MNG
12.4. An Animated MNG
12.5. An Algorithmic MNG
12.6. A JPEG Image with Transparency
12.7. MNG Applications
12.8. The Future?
Chapter 13: Reading PNG Images
13.1. A libpng-Based, PNG-Reading Demo Program
13.2. Preliminaries
13.3. readpng_init()
13.4. readpng_get_bgcolor()
13.5. Design Decisions
13.6. Gamma and Color Correction
13.7. readpng_get_image()
13.8. readpng_cleanup()
13.9. Compositing and Displaying the Image
13.10. Getting the Source Code
13.11. Alternative Approaches
Chapter 14: Reading PNG Images Progressively
14.1. Preliminaries
14.2. readpng2_init()
14.3. readpng2_decode_data()
14.4. readpng2_info_callback()
14.5. readpng2_row_callback()
14.6. Compositing and Displaying the Image
14.7. readpng2_end_callback()
14.8. readpng2_cleanup()
14.9. Getting the Source Code
Chapter 15: Writing PNG Images
15.1. A libpng-Based, PNG-Writing Demo Program
15.2. Gamma Correction
15.3. Text Chunks
15.4. writepng_version_info()
15.5. writepng_init()
15.6. Interlaced PNG: writepng_encode_image()
15.7. Noninterlaced PNG: writepng_encode_row()
15.8. writepng_cleanup()
15.9. Getting the Source Code
Chapter 16: Other Libraries and Concluding Remarks
16.1. Cross-Platform Libraries
16.2. Windows-Specific Libraries
16.3. Concluding Remarks
References
Chapter 1
Chapter 2
Chapter 5
Chapter 6
Chapter 7
Chapter 8
Chapter 9
Chapter 10
Chapter 11
Chapter 12
Chapter 13
Chapter 15
Chapter 16
Glossary
GNU Free Documentation License
Index
Colophon
About the Author
Colophon