-
Preface
- About This Book
- Part I, Using PNG
- Part II, The Design of PNG
- Part III, Programming with PNG
- Conventions Used in This Book
- How to Contact Us
- Acknowledgments
-
Part I: Using PNG
-
Chapter 1: An Introduction to PNG
- Overview of Image Properties
- What is PNG Good For?
- Alpha Channels
- Gamma and Color Correction
- Interlacing and Progressive Display
- Compression
- Compression Filters
- Compression Oopers
- Summary of Usage
- Case Study of a PNG-Supporting Image Editor
- PNG Feature Support in Fireworks
- Invoking PNG Features in Fireworks
- Analysis of Fireworks PNG Support
- Concluding Thoughts on Fireworks
-
Chapter 2: Applications: WWW Browsers and Servers
- WWW Browsers
- Netscape Navigator
- Microsoft Internet Explorer
- Opera
- Acorn Browse
- Arena
- Amaya
- Other Browsers
- Amiga
- Acorn
- BeOS
- Macintosh
- NeXTStep / OpenStep
- OS/2
- Client-side Work-Arounds: the OBJECT Tag
- WWW Servers
- ``Standard'' Servers
- Internet Information Server
- Server-side Work-Arounds: Content Negotiation
- Apache variants files
- Apache MultiViews
-
Chapter 3: Applications: Image Viewers
- Windows 95/98/NT
- Windows 3.x
- VMS
- Unix
- OS/2
- Macintosh
- Java
- DOS
- BeOS
- Atari
- Amiga
- Acorn RISC OS
-
Chapter 4: Applications: Image Editors
- Photoshop 5
- Photoshop 4
- ImageReady
- Paint Shop Pro
- The GIMP
- Other Image Editors
-
Chapter 5: Applications: Image Converters
- pngcrush
- pnmtopng
- gif2png
- Tiff2png
- pngcheck
- Other Conversion Programs
-
Chapter 6: Applications: VRML Browsers and Other 3D Apps
- Cosmo Player
- WorldView / MSVRML
- blaxxun Contact
- Viscape Universal
- LibVRML97 / Lookat
- FreeWRL
- VRMLView
- Other VRML Browsers
- Other 3D Applications
-
Part II: The Design of PNG
-
Chapter 7: History of the Portable Network Graphics Format
- Anatomy of an Internet Working Group
- Implementation
- MNG
- Mainstream Support and Present Status
-
Chapter 8: PNG Basics
- Chunks
- PNG Signature
- A Word on Color Representation
- The Simplest PNG
- PNG Image Types
- Palette-based
- Palette-based with Transparency
- Grayscale
- Grayscale with Transparency
- Grayscale with Alpha Channel
- RGB
- RGB with Transparency
- RGB with Alpha Channel
- Interlacing and Progressive Display
-
Chapter 9: Compression and Filtering
- Filtering
- The Deflate Compression Algorithm
- Real-World Comparisons
- Practical Compression Tips
- Tips for Users
- Tips for Programmers
-
Chapter 10: Gamma Correction and Precision Color
- Transfer Functions and Gamma
- The gAMA Chunk
- Encoding Gamma
- Gamma Gotchas
- Chromaticity
- Color Management Systems and sRGB
- ICC Profiles
-
Chapter 11: PNG Options and Extensions
- Background Color (bKGD)
- Timestamp (tIME)
- Latin-1 Text Annotations (tEXt, zTXt)
- International Text Annotations (iTXt)
- Histogram (hIST)
- Suggested Palette (sPLT)
- Significant Bits (sBIT)
- Physical Pixel Dimensions (pHYs)
- Physical Scale (sCAL)
- Image Offset (oFFs)
- Pixel Calibration (pCAL)
- Fractal Parameters (fRAc)
- GIF Conversion Info (gIFg, gIFx)
- GIF Plain Text (gIFt)
- Other Chunks
-
Chapter 12: Multiple-Image Network Graphics
- Common Applications of MNG
- MNG Structure
- Image-Defining Chunks
- Chunks for Image Display, Manipulation, and Control
- The Simplest MNG
- An Animated MNG
- An Algorithmic MNG
- A JPEG Image with Transparency
- MNG Applications
- The Future?
-
Part III: Programming with PNG
-
Chapter 13: Reading PNG Images
- A libpng-based, PNG-Reading Demo Program
- Preliminaries
- readpng_init()
- readpng_get_bgcolor()
- Design Decisions
- Gamma and Color Correction
- readpng_get_image()
- readpng_cleanup()
- Compositing and Displaying the Image
- Getting the Source Code
- Alternative Approaches
-
Chapter 14: Reading PNG Images Progressively
- Preliminaries
- readpng2_init()
- sidebar: readpng2_error_handler()
- readpng2_decode_data()
- readpng2_info_callback()
- readpng2_row_callback()
- Compositing and Displaying the Image
- readpng2_end_callback()
- readpng2_cleanup()
- Getting the Source Code
-
Chapter 15: Writing PNG Images
- A libpng-based, PNG-Writing Demo Program
- Gamma Correction
- Text Chunks
- writepng_version_info()
- writepng_init()
- sidebar: writepng_error_handler()
- sidebar: Tweaking Compression
- sidebar: Text Buffers, PNG Structs and Core Dumps
- Interlaced PNG: writepng_encode_image()
- Noninterlaced PNG: writepng_encode_row()
- writepng_cleanup()
- Getting the Source Code
-
Chapter 16: Other Libraries and Concluding Remarks
- Cross-Platform Libraries
- ImageMagick
- Image Library
- PaintLib
- QHTM
- ImageVision Library
- Imlib
- QuickTime
- ImageGear
- Java Advanced Imaging API
- Sixlegs PNG
- Java Image Content Handlers
- Java PNG
- JIMI
- Java Vector Graphics (JVG)
- Pnglets
- Img
- Python Imaging Library
- PNGHandler
- SuperView Library
- Windows-Specific Libraries
- ImageLib
- ImageMan ActiveX Suite and ImageMan DLL Suite
- ImgDLL
- LEADTOOLS
- PiXCL Tools
- PixelGraphicLibrary
- TwistedPixel
- Victor Image Processing Library
- Concluding Remarks
-
References
-
Glossary
-
Index