Tips for Users
Following is a list of tips for users of PNG-supporting software:
- Use the correct image format
If you have photographic images and their quality as JPEGs is
acceptable, use JPEG! JPEG will almost always be smaller than PNG,
especially for color images. Conversely, if you have images with just
a few colors and/or sharp edges (such as text and simple graphics),
JPEG is almost never the correct solution; use PNG or GIF instead.
For binary transparency, also use PNG or GIF; for partial transparency
or lossless RGB, use PNG or TIFF; for animations, use MNG or GIF.
- Use the correct pixel depth
For example, don't convert a GIF (which, from a practical perspective,
always has a depth of 8 bits or less) to a 24-bit PNG; that will
automatically boost the file size by a factor of three. Similarly, if
given the option, don't save a grayscale image as RGB; save it as
grayscale or, at worst, as a palette-based PNG. Likewise, don't use a
full alpha channel if single-color transparency (à la GIF) would
suffice; it doubles the size of grayscale images and adds 33% to the
size of RGB.
- Corollary: Quantize and dither truecolor images to a palette if quality is acceptable
Likewise, quantize and dither RGBA or gray+alpha
PNGs to a palette, if possible. This is something that only you, the user, can
judge; no reasonable image application will ever quantize (which is a lossy
transformation) unless instructed to do so by you. This is not an issue for
GIF, which realistically supports only colormapped images (i.e., your
choice of GIF as an output format amounts to an explicit instruction to
quantize) nor is it an issue for JPEG, which supports only grayscale and
truecolor. Only PNG supports colormapped, grayscale, and truecolor images, as
well as alpha channels.
- Use interlacing with care
Interlacing is a way to transmit the useful
parts of an image more quickly, particularly on the Web, so that the end user
can click on a hot-linked region before the image is fully downloaded, if she
so chooses. But as I saw earlier, PNG's two-dimensional interlacing scheme can
degrade compression by 15% in some cases, especially for small images. Since
small images are transmitted over the network fairly quickly anyway, they
usually do not need to be interlaced.
- Use the correct tools
In the first six chapters, I discussed a number of PNG-supporting
applications and noted their limitations wherever possible; use that
as a guide when choosing your tools, assuming you have a choice. Even
if your program generally compresses PNG images well, consider using
an optimizer such as pngcrush on everything when you're done;[76]
definitely do so if your program is not known for its compression
performance. For converting GIFs to PNGs, the dedicated gif2png is
the most capable solution, even given its permanently beta version
number; it preserves both transparency and embedded text comments.
- Don't include unnecessary information
A lengthy copyright message or
other text can add 100 bytes or more, which is a lot for icons and other small
images.
|