mainpng++, a C++ wrapper for libpng - Summary

Membership Info
Group Admin:
1 active member

Group identification
Id: 9159
System Name: pngpp
Name: png++, a C++ wrapper for libpng
Group Type: non-GNU software and documentation

Search in this Group


This group is not part of the GNU Project.

PNG++ aims to provide simple yet powerful C++ interface to libpng, the
PNG reference implementation library.

PNG++ is free software distributed under a modified variant of BSD

Using raw libpng in C++ may impose serious challenge since lots of
precautions must be taken to handle initialization/deinitialization of
control structures as well as handling errors correctly.  With png++
you can read or write PNG images just in a single line of C++ code:

png::image< png::rgb_pixel > image("input.png");

The code reads an image from the file named "input.png", then
writes the image to a file named "output.png".  In this example png++
does all the transformations needed to create adequate in-memory RGB
representation of the image (well, in most cases it simply instructs
libpng to do so).

The image in "input.png" can be RGB image, or it might be grayscale or
even indexed image with a palette -- png++ will just convert any input
to RGB format.  However, for technical reasons such automatic
transformation is supported for RGB and Grayscale color types only.
Optionally there may be an alpha channel in the target color space
(RGBA and Gray+Alpha respectively).

Current development version could be found here:


or, for people w/o outgoing svn:

Online documentation can be found here:

Registration Date: Sun 11 Mar 2007 09:12:47 AM UTC
License: Modified BSD License
Development Status: 3 - Alpha


Latest News rss feed
0.2.9 released
     posted by alexshulgin, Sun 25 Oct 2015 08:09:34 PM UTC

A new release after cleaning up open items:

- Added gAMA chunk handling
- Use thread-safe strerror_* variant
- Add CXX make parameter to override the default g++
- Some code and makefile fixes

(forgot to update the NEWS file in distribution... :-p)

New minor release: 0.2.7
     posted by alexshulgin, Thu 15 Jan 2015 01:22:12 PM UTC

Upon numerous requests, a new version 0.2.7 is released today.

The notable changes include:

  - Added solid_pixel_buffer (patch by Andrey Potapov).

  - Fixed some compilation problems on Win32.

Happy hacking!

0.2.5 is out
     posted by alexshulgin, Tue 26 Oct 2010 07:58:18 AM UTC

Version 0.2.5:

  - Fixed compatibility with newer libpng versions (>= 1.4)

  - Fixed compilation on FreeBSD.

  - Fixed tRNS handling with transformations.

  - Added IO transformation debugging facility.

  - Better organized test suite.

Happy hacking!

0.2.3 is out
     posted by alexshulgin, Sun 19 Oct 2008 07:31:43 PM UTC

A new version: png++-0.2.3 is released today.

This is a maintenance and bugfix release.  In the news:

  - Fixed numerous `already defined' errors due to
    require_color_space implementation.

  - Added `config.hpp'.

  - Fixed `strerror' usage.

  - Minor docs fixes.

Happy hacking!

Quick Overview
 Memberlist (1 member)

Communication Tools
 Mailing Lists (1 public mailing list)

Back to the top

Powered by Savane 3.13-3cd0.
Corresponding source code