[Valid HTML 4.01]

[PNG icon] PNG VRML Textures in 2D

This set of icons is a superset of the basic, non-interlaced set from Willem's PngSuite. They are used in Greg's VRML test world (VRML plug-in or external browser required) to test PNG, JPEG and GIF texture conformance in VRML browsers, with mixed but improving results. But insofar as this set extends Willem's suite in a couple of areas, they may also be useful for testing 2D viewers such as web browsers.

Of the 18 PNG textures, 9 are new. Some of them, such as the gray palette images, are not formally distinguished from their colored brethren in the PNG specification, but they are within the VRML97 spec. Others, such as the RGBA-palette images and single-color-transparency truecolor images, are distinct subsets within both specs. Note that while all of the images are displayed here at 64x64, most of them are actually 32x32, while one is 128x128. The exceptions are noted below in the key.

[palette screenshot, 5k]


GIF [pngvrml texture #1 GIF] [pngvrml texture #2 GIF] [pngvrml texture #3 GIF] [pngvrml texture #4 GIF]    
PNG [pngvrml texture #1 PNG] [pngvrml texture #2 PNG] [pngvrml texture #3 PNG] [pngvrml texture #4 PNG] [pngvrml texture #5 PNG] [pngvrml texture #6 PNG]
  1 2 3 4 5 6

This first set is palette-based (a.k.a. colormapped or indexed-color). There are three pairs of images, each consisting of a gray texture (odd-numbered) and a color texture (even-numbered). The two on the left are opaque; the two in the middle have single-color binary transparency (GIF-style); and the two on the right are RGBA-palette PNGs with multiple levels of transparency. Equivalent GIF textures are provided for the first four. In image #5, the transparency level of each pixel happens to correspond directly to the shade of gray. In image #6, the 17 colors vary horizontally, while the 15 transparency levels vary vertically. (The 256th palette entry in #6 is reserved for the default background color--bright orange--which should not appear in either a web browser or a VRML browser.)

The small image at the upper right is a link to a 25k screenshot showing how the set should look; it was taken with a Mozilla nightly build (2000-09-01-08-M18) under Linux. Other Mozilla screenshots showing its nice rendering of alpha transparency are also available.

[8-bps screenshot, 5k]

8-bps Grayscale and RGB

JPEG [pngvrml texture #7 JPEG] [pngvrml texture #8 JPEG]        
PNG [pngvrml texture #7 PNG] [pngvrml texture #8 PNG] [pngvrml texture #9 PNG] [pngvrml texture #10 PNG] [pngvrml texture #11 PNG] [pngvrml texture #12 PNG]
  7 8 9 10 11 12
  8-bit-per-sample truecolor

The second set consists of 8-bit grayscale and 24-bit RGB textures, optionally with an 8-bit alpha channel. As in the first set, the left pair is opaque; the middle pair has single-color binary transparency; and the right pair has alpha (variable) transparency. (In both this set and the final one, the left and right pairs are from Willem's PngSuite.) Note that the transparency in the middle pair is limited to a handful of pixels in each case. For the grayscale image, the transparency lies within the central Mandelbrot; for the color image, it lies within the yellow regions along the ``northwest-southeast'' diagonal. Only the opaque PNGs have JPEG equivalents; normal JPEG/JFIF does not support any kind of transparency.

[16-bps screenshot, 4k]

16-bps Grayscale and RGB

PNG [pngvrml texture #13 PNG] [pngvrml texture #14 PNG] [pngvrml texture #15 PNG] [pngvrml texture #16 PNG] [pngvrml texture #17 PNG] [pngvrml texture #18 PNG]
  13 14 15 16 17 18
  16-bit-per-sample truecolor

The third set consists of 16-bit grayscale and 48-bit RGB textures, optionally including a 16-bit alpha channel. In image #15 (an actual CT scan of a human brain), the transparency is in the corners--plus a single pixel in the middle--leaving a circular image visible. In image #16, the transparency is in three 3x3 squares, one at the center of each of the stars. There are no equivalent GIF or JPEG textures; GIF doesn't support anything other than 8 bits per sample, and JPEG supports only 8-bit and 12-bit channels. (TIFF supports 16-bit samples but is itself supported by almost no web or VRML browsers.)


  1. palette, gray, opaque, 32x32
  2. palette, color, opaque, 32x32
  3. palette, gray, single-shade binary transparency in ``windows'', 32x32
  4. palette, color, single-color binary transparency in ``windows'', 32x32
  5. palette, gray, alpha-transparency fading radially from transparent center to edge of image, 32x32
  6. palette, color, alpha-transparency fading vertically from transparent equator to top/bottom edges, 32x32

  7. 8-bit grayscale, opaque, 32x32
  8. 24-bit RGB, opaque, 32x32
  9. 8-bit grayscale, single-shade binary transparency in central Mandelbrot, 64x64
  10. 24-bit RGB, single-color binary transparency within two yellow spots, 64x64
  11. 16-bit grayscale + alpha, alpha-transparency fading horizontally from transparent left edge, 32x32
  12. 32-bit RGBA, alpha-transparency fading horizontally from transparent left edge, 32x32

  13. 16-bit grayscale, opaque, 32x32
  14. 48-bit RGB, opaque, 32x32
  15. 16-bit grayscale, single-shade binary transparency in corners, 128x128
  16. 48-bit RGB, single-color binary transparency at center of stars, 64x64
  17. 32-bit grayscale + alpha, alpha-transparency fading from transparent edges inward, 32x32
  18. 64-bit RGBA, alpha-transparency fading from transparent edges inward, 32x32

Here are some related PNG pages at this site:

[primary site hosted by SourceForge] Last modified 14 March 2009.

Copyright © 2000-2009 Greg Roelofs.