# png Namespace Reference

## Namespaces

namespace | detail

## Classes

struct | color
| PNG color struct extension. Adds constructors. More...
class | consumer
| Pixel consumer class template. More...
struct | convert_color_space
| IO transformation class template. Converts image color space. More...
struct | convert_color_space< rgb_pixel >
| Converts image color space. A specialization for rgb_pixel type. More...
struct | convert_color_space< rgb_pixel_16 >
| Converts image color space. A specialization for rgb_pixel_16 type. More...
struct | convert_color_space< rgba_pixel >
| Converts image color space. A specialization for rgba_pixel type. More...
struct | convert_color_space< rgba_pixel_16 >
| Converts image color space. A specialization for rgba_pixel_16 type. More...
struct | convert_color_space< gray_pixel >
| Converts image color space. A specialization for gray_pixel type. More...
struct | convert_color_space< gray_pixel_16 >
| Converts image color space. A specialization for gray_pixel_16 type. More...
struct | convert_color_space< ga_pixel >
| Converts image color space. A specialization for ga_pixel type. More...
struct | convert_color_space< ga_pixel_16 >
| Converts image color space. A specialization for ga_pixel_16 type. More...
class | end_info
| Internal class to hold PNG ending info. More...
class | error
| Exception class to represent runtime errors related to png++ operation. More...
class | std_error
| Exception class to represent standard library errors (generally IO). More...
struct | basic_ga_pixel
| Basic Gray+Alpha pixel type. More...
struct | pixel_traits< basic_ga_pixel< T > >
| Pixel traits specialization for basic_ga_pixel. More...
class | generator
| Pixel generator class template. More...
class | packed_gray_pixel
| The packed gray pixel class template. The available specializations are for 1-, 2- and 4-bit pixels. More...
struct | pixel_traits< gray_pixel >
| Pixel traits specialization for gray_pixel. More...
struct | pixel_traits< gray_pixel_16 >
| Pixel traits specialization for gray_pixel_16. More...
struct | pixel_traits< packed_gray_pixel< bits > >
| Pixel traits specialization for packed_gray_pixel. More...
class | image
| Class template to represent PNG image. More...
class | image_info
| Holds information about PNG image. More...
class | index_pixel
| The 8-bit Indexed (colormap) pixel type. More...
class | packed_index_pixel
| The packed indexed pixel class template. The available specializations are for 1-, 2- and 4-bit pixels. More...
struct | pixel_traits< index_pixel >
| Pixel traits specialization for index_pixel. More...
struct | pixel_traits< packed_index_pixel< bits > >
| Pixel traits specialization for packed_index_pixel. More...
class | info
| Holds information about PNG image. Adapter class for IO image operations. More...
class | info_base
| Internal class to hold PNG info or end_info. More...
class | io_base
| Base class for PNG reader/writer classes. More...
class | packed_pixel
| The packed pixel class template. More...
class | basic_pixel_buffer
| The basic class template to represent image pixel data. More...
class | row_traits< std::vector< pixel > >
| The row_traits specialization for unpacked pixel rows. More...
class | pixel_buffer
class | packed_pixel_row
| The packed pixel row class template. More...
class | row_traits< packed_pixel_row< pixel > >
| The row_traits class template specialization for packed pixel row type. More...
class | pixel_buffer< packed_gray_pixel< bits > >
| The pixel buffer class template specialization for the packed_gray_pixel type. More...
class | pixel_buffer< packed_index_pixel< bits > >
| The pixel buffer class template specialization for the packed_index_pixel type. More...
struct | basic_pixel_traits
| Basic pixel traits class template. More...
struct | basic_alpha_pixel_traits
| Basic pixel traits class template for pixels with alpha channel. More...
class | reader
| The PNG reader class template. This is the low-level reading interface--use image class or consumer class to actually read images. More...
struct | require_color_space
| IO transformation class template. Enforces image color space. More...
struct | basic_rgb_pixel
| RGB pixel type. More...
struct | pixel_traits< basic_rgb_pixel< T > >
| Pixel traits specialization for basic_rgb_pixel. More...
struct | basic_rgba_pixel
| RGBA pixel type. More...
struct | pixel_traits< basic_rgba_pixel< T > >
| Pixel traits specialization for basic_rgba_pixel. More...
class | def_image_info_holder
| The default image_info holder class. Stores image_info member object. More...
class | image_info_ref_holder
| An image_info holder class. Stores a reference to the image_info object. The image_info object itself should be stored elsewhere. More...
class | streaming_base
| A base class template for consumer and generator classes. Provides default `reset()` method implementation as well as `info_holder` policy. More...
class | writer
| PNG writer class template. This is the low-level writing interface--use image class or generator class to actually write images. More...

## Typedefs

typedef basic_ga_pixel< byte > | ga_pixel
| The 8-bit Gray+Alpha pixel type.
typedef basic_ga_pixel< uint_16 > | ga_pixel_16
| The 16-bit Gray+Alpha pixel type.
typedef byte | gray_pixel
| The 8-bit Grayscale pixel type.
typedef uint_16 | gray_pixel_16
| The 16-bit Grayscale pixel type.
typedef packed_gray_pixel< 1 > | gray_pixel_1
| The 1-bit Grayscale pixel type.
typedef packed_gray_pixel< 2 > | gray_pixel_2
| The 2-bit Grayscale pixel type.
typedef packed_gray_pixel< 4 > | gray_pixel_4
| The 4-bit Grayscale pixel type.
typedef packed_index_pixel< 1 > | index_pixel_1
| The 1-bit Indexed pixel type.
typedef packed_index_pixel< 2 > | index_pixel_2
| The 1-bit Indexed pixel type.
typedef packed_index_pixel< 4 > | index_pixel_4
| The 1-bit Indexed pixel type.
typedef std::vector< color > | palette
| The palette type. Currently implemented as `std::vector` of png::color.
typedef basic_rgb_pixel< byte > | rgb_pixel
typedef basic_rgb_pixel< uint_16 > | rgb_pixel_16
typedef basic_rgba_pixel< byte > | rgba_pixel
typedef basic_rgba_pixel< uint_16 > | rgba_pixel_16
typedef std::vector< byte > | tRNS
| The palette transparency map type. Currently implemented as `std::vector` of png::byte.
typedef png_byte | byte
typedef png_uint_16 | uint_16
typedef png_uint_32 | uint_32
typedef png_fixed_point | fixed_point
typedef png_color_8 | color_info
typedef png_color_16 | color_info_16

## Enumerations

enum | color_type { color_type_none = -1, color_type_gray = PNG_COLOR_TYPE_GRAY, color_type_palette = PNG_COLOR_TYPE_PALETTE, color_type_rgb = PNG_COLOR_TYPE_RGB, color_type_rgb_alpha = PNG_COLOR_TYPE_RGB_ALPHA, color_type_gray_alpha = PNG_COLOR_TYPE_GRAY_ALPHA, color_type_rgba = PNG_COLOR_TYPE_RGBA, color_type_ga = PNG_COLOR_TYPE_GA }
enum | color_mask { color_mask_palette = PNG_COLOR_MASK_PALETTE, color_mask_color = PNG_COLOR_MASK_COLOR, color_mask_rgb = color_mask_color, color_mask_alpha = PNG_COLOR_MASK_ALPHA }
enum | filler_type { filler_before = PNG_FILLER_BEFORE, filler_after = PNG_FILLER_AFTER }
enum | rgb_to_gray_error_action { rgb_to_gray_silent = 1, rgb_to_gray_warning = 2, rgb_to_gray_error = 3 }
enum | interlace_type { interlace_none = PNG_INTERLACE_NONE, interlace_adam7 = PNG_INTERLACE_ADAM7 }
enum | compression_type { compression_type_base = PNG_COMPRESSION_TYPE_BASE, compression_type_default = PNG_COMPRESSION_TYPE_DEFAULT }
enum | filter_type { filter_type_base = PNG_FILTER_TYPE_BASE, intrapixel_differencing = PNG_INTRAPIXEL_DIFFERENCING, filter_type_default = PNG_FILTER_TYPE_DEFAULT }

enum

chunk {
chunk_gAMA = PNG_INFO_gAMA, chunk_sBIT = PNG_INFO_sBIT, chunk_cHRM = PNG_INFO_cHRM, chunk_PLTE = PNG_INFO_PLTE,
chunk_tRNS = PNG_INFO_tRNS, chunk_bKGD = PNG_INFO_bKGD, chunk_hIST = PNG_INFO_hIST, chunk_pHYs = PNG_INFO_pHYs,
chunk_oFFs = PNG_INFO_oFFs, chunk_tIME = PNG_INFO_tIME, chunk_pCAL = PNG_INFO_pCAL, chunk_sRGB = PNG_INFO_sRGB,
chunk_iCCP = PNG_INFO_iCCP, chunk_sPLT = PNG_INFO_sPLT, chunk_sCAL = PNG_INFO_sCAL, chunk_IDAT = PNG_INFO_IDAT
}

## Functions

template<typename pixel >
image_info | make_image_info ()
| Returns an image_info object with color_type and bit_depth fields setup appropriate for the `pixel` type.

## Typedef Documentation

typedef basic_ga_pixel< byte > png::ga_pixel

The 8-bit Gray+Alpha pixel type.

typedef basic_ga_pixel< uint_16 > png::ga_pixel_16

The 16-bit Gray+Alpha pixel type.

typedef byte png::gray_pixel

The 8-bit Grayscale pixel type.

typedef uint_16 png::gray_pixel_16

The 16-bit Grayscale pixel type.

typedef packed_gray_pixel< 1 > png::gray_pixel_1

The 1-bit Grayscale pixel type.

typedef packed_gray_pixel< 2 > png::gray_pixel_2

The 2-bit Grayscale pixel type.

typedef packed_gray_pixel< 4 > png::gray_pixel_4

The 4-bit Grayscale pixel type.

typedef packed_index_pixel< 1 > png::index_pixel_1

The 1-bit Indexed pixel type.

typedef packed_index_pixel< 2 > png::index_pixel_2

The 1-bit Indexed pixel type.

typedef packed_index_pixel< 4 > png::index_pixel_4

The 1-bit Indexed pixel type.

typedef std::vector< color > png::palette

The palette type. Currently implemented as `std::vector` of png::color.

typedef basic_rgb_pixel< byte > png::rgb_pixel

The 8-bit RGB pixel type.

typedef basic_rgb_pixel< uint_16 > png::rgb_pixel_16

The 16-bit RGB pixel type.

typedef basic_rgba_pixel< byte > png::rgba_pixel

The 8-bit RGBA pixel type.

typedef basic_rgba_pixel< uint_16 > png::rgba_pixel_16

The 16-bit RGBA pixel type.

typedef std::vector< byte > png::tRNS

The palette transparency map type. Currently implemented as `std::vector` of png::byte.

typedef png_byte png::byte

typedef png_uint_16 png::uint_16

typedef png_uint_32 png::uint_32

typedef png_fixed_point png::fixed_point

typedef png_color_8 png::color_info

typedef png_color_16 png::color_info_16

## Enumeration Type Documentation

enum png::color_type

Enumerator:

  color_type_none |
  color_type_gray |
  color_type_palette |
  color_type_rgb |
  color_type_rgb_alpha |
  color_type_gray_alpha |
  color_type_rgba |
  color_type_ga |

enum png::color_mask

Enumerator:

  color_mask_palette |
  color_mask_color |
  color_mask_rgb |
  color_mask_alpha |

enum png::filler_type

Enumerator:

  filler_before |
  filler_after |

enum png::rgb_to_gray_error_action

Enumerator:

  rgb_to_gray_silent |
  rgb_to_gray_warning |
  rgb_to_gray_error |

enum png::interlace_type

Enumerator:

  interlace_none |
  interlace_adam7 |

enum png::compression_type

Enumerator:

  compression_type_base |
  compression_type_default |

enum png::filter_type

Enumerator:

  filter_type_base |
  intrapixel_differencing |
  filter_type_default |

enum png::chunk

Enumerator:

  chunk_gAMA |
  chunk_sBIT |
  chunk_cHRM |
  chunk_PLTE |
  chunk_tRNS |
  chunk_bKGD |
  chunk_hIST |
  chunk_pHYs |
  chunk_oFFs |
  chunk_tIME |
  chunk_pCAL |
  chunk_sRGB |
  chunk_iCCP |
  chunk_sPLT |
  chunk_sCAL |
  chunk_IDAT |

## Function Documentation

template<typename pixel >

image_info png::make_image_info | ( | ) |

Returns an image_info object with color_type and bit_depth fields setup appropriate for the `pixel` type.

References png::image_info::set_bit_depth(), and png::image_info::set_color_type().