From WiiBrew
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

PNGU is a library for Wii and GameCube that 'wraps' the famous libpng and facilitate png handling and conversions to the native Wii/GC formats. The PNG format has some properties which make it interesting: A background color, a list of transparent colors, alpha channel, it doesn't modify the colors (as jpeg does when compression), open format. The source code of the library is included in the download package.


  • It's based in libpng 1.2.29
  • Handles images of 8 and 16 bits per channel.
  • Handles images in RGB, RGBA, grayscale and grayscale + alpha formats.
  • Reads image dimensions, pixel format, background color and transparent colors list.
  • Converts images to YCbYCr, linear RGB565, linear RGBA8, 4x4 RGB565, 4x4 RGB5A3 and 4x4 RGBA8 formats.
  • Saves YCbYCr images in png RGB8 format.
  • Handles images stored in memory or in devoptab devices (SD, Gecko SD, etc...).
  • It's ready to be used in multithreaded applications.


  • Image width and height should be a multiple of 4 (when converting to 4x4 textures)
  • Doesn't handle images of 1, 2 or 4 bits per channel.
  • Doesn't handle paletized images.
  • Endianness problems when using it on a little endian machine (x86 for example) no problems on the Wii/GC.

Download as a library

If you download the source from above, you will have to include the c and h files to your project, so I have added a makefile and now you can "make" and "make install" the library. Download: