Chapter 3. Applications: Image Viewers

Contents:

Unlike, say, image converters or editors, there is generally not a great
deal to say about a PNG-supporting image viewer other than that
it does, in fact, display PNG images. Gamma correction is the primary
``special'' feature one would like; color correction and the ability to
view text annotations would be nice as well, but the reality is that most
image viewers concentrate more on speed and breadth of support for different
image formats and display depths than on features specific to any one format.

The list of viewers presented here is likewise long on breadth and
short on specifics, simply because testing every viewer for every
platform--or even a reasonable fraction of them--is impractical.
Gamma and text support are noted wherever known, as is the ability to
convert to or from other formats, but this is primarily a laundry list
of viewers, sorted by platform. The current version of each, as of
this writing, is listed wherever possible.

It is even less practical to test every one in 2003 than it was in 1999;
the PNG web site now lists more
than 90 additional viewers that either did not support or were not known to
support PNG when the first edition went to press:

The web page is updated regularly, but even so, it is guaranteed to
be incomplete; PNG support is no longer remarkable, and new viewers are
released all the time, usually without any mention of specific image formats.
These days almost every image viewer (with the exception of some--but not
all--viewers for embedded devices) can be assumed to support PNG.

In addition to the viewing applications listed in the following
discussion, two demo viewers are described in
Chapter 13, "Reading PNG Images", and
Chapter 14, "Reading PNG Images Progressively".
They currently run under 32-bit Windows and Unix/X, and
full source code is freely available. One other viewing application
is also worth mentioning: Aladdin's Ghostscript, currently at version
5.50, which is (or has in the past been) available for every platform
listed here. Ghostscript is a viewer for PostScript and Acrobat (PDF)
files, but it can write PNG images and is therefore a special case.

Version 3.0, Apple Computer. Full gamma
and color-correction support via ColorSync; claims full alpha support (but
not clear in what form). PictureViewer completely supersedes the Tiny
Viewer demo app that Sam Bushell included with his QuickTime 2.5
PNG-Importer. Note that any QuickTime-aware application (even Apple's
SimpleText) can be used to view PNG images if QT3 is installed.

Version 5.0, Jasc Software. This is software with history.
Originally developed by Mastersoft as Viewer 95, both it and
Mastersoft were acquired by Frame, which was almost immediately
acquired by Adobe. The program and associated technologies were
rereleased as Adobe File Utilities by Mastersoft in 1996, then sold to
Inso in 1997. Inso gave the software its current name, but apparently
sold or licensed the rights to the Windows version to Jasc in 1998.
Inso still sells the Unix version and possibly the Windows version,
but apparently only to government and ``enterprise'' customers.

Version 4.0, Plenio Software Solutions.
Conversion capabilities; Version 2.x had broken support for two-bit images,
no gamma support, and no control over compression level or filtering (to the
extent that it would happily write an output file larger than the input).
Not tested recently.

``Gold'' version (possibly 1.3), Canyon Software. If the download
filename, dragvu13.zip, can be trusted, and if the version
numbering is the same as that for the 32-bit Windows version discussed
earlier, then the 16-bit version may not include PNG support after
all.

Version 1.51 only, Group 42. Conversion capabilities;
full gamma support. Group 42 is the company for which Guy Schalnat worked
while he wrote the first version of libpng. Unfortunately, there has been no
further PNG-related work since he left.

3.3. VMS

The selection of PNG-supporting image viewers for VMS (or OpenVMS nowadays)
is rather limited; indeed, I am aware of only two viewers, both ports of
popular Unix/X viewers:

ImageMagick display

Version 4.2.0, John Cristy. Conversion
capabilities (mostly via accompanying convert utility); full gamma
support; reported to include chromaticity support; partial MNG support. There
is also a 32-bit Windows port, but it requires a third-party X server to run.

Version 3.10a, John Bradley. Conversion capabilities, including
interlacing support but without the ability to write transparent PNGs; full
gamma support; preserves text information. XV is widely considered to be the
preeminent image viewer for the X Window System.
The only major drawback is that it was last released in December 1994, five
days before the CompuServe/Unisys GIF announcement that began the PNG saga,
and therefore does not include PNG support in the default distribution.
Fortunately, it is available as C source code, and the home page includes not
only the PNG patch but also several others, so it can be recompiled and
tweaked at will. An upcoming patch will allow an image-background color to
be set, similar to the -bgcolor option in the demo viewers in
Chapter 13, "Reading PNG Images" and Chapter 14, "Reading PNG Images Progressively".

Red Hat Advanced Development Labs. Electric Eyes is a new,
Linux/GNOME-based image viewer by The Rasterman (who's perhaps better
known for his spectacularly fancy Enlightenment desktop). It is also
one of the prototype applications for
Imlib, an X-based imaging toolkit described in Chapter 16, "Other Libraries and Concluding Remarks".

Version 3.5, Michael Knigge. Broken support for 24-bit images.
GRAV is a non-X-based image viewer for Linux, similar to Zgv, later in this list; it
uses svgalib to display on a Linux console. It has not been updated
since January 1996 and apparently is no longer under development.

Version 1.11, Handmade Software. Conversion
capabilities (in fact, primarily a command-line conversion tool); claims full
alpha support, gamma support, and support for ICC profiles via ColorSync. Note
that only the versions for DOS and Macintosh and the commercial versions for
Sun, SGI, and HP workstations include viewing capability.

Version 4.2.0, John Cristy. Conversion
capabilities (mostly via accompanying convert utility); full gamma
support; partial MNG support. There is also a 32-bit Windows port, but it
requires a third-party X server to run.

Version 1.16, Graeme Gill. Like XV, the next entry, xli (a modified
version of xloadimage) has not been updated since 1994, before PNG was
born. But it is available as C source code from
ftp://ftp.x.org/ and
elsewhere, and a PNG patch by Smarasderagd has been available for years, so
compiling a PNG-capable version is straightforward.

Version 3.10a, John Bradley. Conversion capabilities, including
interlacing support but without the ability to write transparent PNGs; full
gamma support; preserves text information. XV is widely considered to be the
preeminent image viewer for the X Window System.[22]
The only major drawback is that it was last released in December 1994,
five days before the CompuServe/Unisys GIF announcement that began the
PNG saga and therefore does not include PNG support in the default
distribution. Fortunately, it is available as C source code, and the
home page includes not only the PNG patch but also several others, so
it can be recompiled and tweaked at will. An upcoming patch will
allow an image-background color to be set, similar to the
-bgcolor option in the demo viewers in Chapter 13, "Reading PNG Images" and Chapter 14, "Reading PNG Images Progressively".

3.5. OS/2

Version 1.9 only, PixVision Software. No alpha support; claims gamma
support. Version 1.83 is the last version available as shareware from
the web site; it is not clear whether version 1.9 was actually
released or not.

Version 1.11, Handmade Software. Conversion
capabilities (in fact, primarily a conversion tool); claims full alpha support,
gamma support and support for ICC profiles via ColorSync. Note that only the
versions for DOS and Macintosh and the commercial versions for Sun, SGI, and HP
workstations include viewing capability.

Version 3.0, Apple Computer. Full gamma
and color-correction support via ColorSync; claims full alpha support (but
not clear in what form). PictureViewer completely supersedes the Tiny
Viewer demo app that Sam Bushell included with his QuickTime 2.5
PNG-Importer. Note that any QuickTime-aware application (even Apple's
SimpleText) can be used to view PNG images if QT3 is installed.

3.7. Java

As of January 1999 there were two Java viewers available, but with the
recent addition of PNG support to the Java Advanced Imaging API, PNG-viewing
capability can be expected soon in numerous Java applications and applets.

3.8. DOS

[24] Contrary to the claim in the first edition of
this book, Bob was not the inventor of the GIF
image format, so one should not consider him the grandfather of PNG. (It's
good to keep these things straight.)

Version 1.11, Handmade Software. Conversion
capabilities (in fact, primarily a command-line conversion tool); claims full
alpha support, gamma support, and support for ICC profiles via ColorSync. Note
that only the versions for DOS and Macintosh and the commercial versions for
Sun, SGI, and HP workstations include viewing capability.

3.9. BeOS

In addition to the following three viewers, Al Evans's BePNG and
Jeremy Moskovich's BeShow were once available. But incompatibilities
in the development versions of BeOS took their toll, and the two viewers
were never updated to work with BeOS releases more recent than DR8 or DR9;
they have since been moved to the ``obsolete'' area of Be's FTP site. BePNG
was unique in having native support for PNG; all of the others use the
datatypes facility developed by Jon Watte and later incorporated into
the operating system as the BeOS translation kit. PNG support is provided
via Simon Clarke's BPNGHandler:

It appeared in October 1998 that PNGHandler might have been renamed to
PNGTranslator as of version 1.20 (see also the discussion in Chapter 16, "Other Libraries and Concluding Remarks"),
but as of February 1999, the web page still referred to the original name.

3.11. Amiga

The Amiga includes a lovely facility known as datatypes, basically an
extension of normal shared libraries (or DLLs) to provide generic data handling
capabilities. With this facility, any datatypes-aware program--whether
viewer, web browser, or image editor--can be extended after the fact,
simply by adding the appropriate datatype for whatever new format comes along.
In the case of PNG, two datatypes are available: Cloanto's and Andreas
Kleinert's:

Version 8.10, Andreas Kleinert. Conversion capabilities.
Formerly known as SuperView, SViewII includes the SuperView Library
(discussed in Chapter 16, "Other Libraries and Concluding Remarks") for all image I/O, instead of
datatypes, despite the fact that Andreas wrote one of the available datatypes.

3.12. Acorn RISC OS

Although there are undoubtedly other image viewers available for the Archimedes,
discovering them is tricky for those who are unacquainted with Acorn
software sites. But at least one PNG-capable viewer exists: