StuBS
PNG Class Reference

Portable Network Graphics file format. More...

#include <utils/png.h>

Public Types

enum  error {
  PNG_EOK = 0 ,
  PNG_ENOMEM = 1 ,
  PNG_ENOTFOUND = 2 ,
  PNG_ENOTPNG = 3 ,
  PNG_EMALFORMED = 4 ,
  PNG_EUNSUPPORTED = 5 ,
  PNG_EUNINTERLACED = 6 ,
  PNG_EUNFORMAT = 7 ,
  PNG_EPARAM = 8 ,
  PNG_EIOERROR = 9
}
 
enum  format {
  BADFORMAT ,
  RGB8 ,
  RGB16 ,
  RGBA8 ,
  RGBA16 ,
  LUMINANCE1 ,
  LUMINANCE2 ,
  LUMINANCE4 ,
  LUMINANCE8 ,
  LUMINANCE_ALPHA1 ,
  LUMINANCE_ALPHA2 ,
  LUMINANCE_ALPHA4 ,
  LUMINANCE_ALPHA8
}
 

Public Member Functions

 PNG (const unsigned char *buffer, unsigned long size)
 Load PNG image from memory. More...
 
 PNG (const char *path)
 Load PNG image from file system. More...
 
 ~PNG ()
 Free memory reserved for PNG image.
 
unsigned get_width () const
 Width of image (pixels)
 
unsigned get_height () const
 Height of image (pixels)
 
unsigned get_bpp () const
 Bits per pixel.
 
unsigned get_bitdepth () const
 Depth of color (bits pro color channel)
 
unsigned get_components () const
 Number of components per pixel.
 
unsigned get_pixelsize () const
 Number of bytes per pixel.
 
enum format get_format () const
 Retrieve the format.
 
const unsigned char * get_buffer ()
 Image buffer address. More...
 
unsigned get_size ()
 Size of image buffer. More...
 

Protected Member Functions

enum error header ()
 Extract header (image attributes)
 
enum error decode ()
 Decode whole image.
 

Protected Attributes

enum error error
 
unsigned error_line
 

Detailed Description

Portable Network Graphics file format.

!

Member Enumeration Documentation

◆ error

enum PNG::error
Enumerator
PNG_EOK 

success (no error)

PNG_ENOMEM 

memory allocation failed

PNG_ENOTFOUND 

resource not found (file missing)

PNG_ENOTPNG 

image data does not have a PNG header

PNG_EMALFORMED 

image data is not a valid PNG image

PNG_EUNSUPPORTED 

critical PNG chunk type is not supported

PNG_EUNINTERLACED 

image interlacing is not supported

PNG_EUNFORMAT 

image color format is not supported

PNG_EPARAM 

invalid parameter to method call

PNG_EIOERROR 

Filesystem issues.

◆ format

Enumerator
BADFORMAT 

Invalid format.

RGB8 

24bit RGB (8bit per color)

RGB16 

48bit RGB (16bit per color)

RGBA8 

32bit RGB (including alpha channel)

RGBA16 

64bit RGB (including alpha channel)

LUMINANCE1 

Monochrome (black-white)

LUMINANCE2 

four shades of gray (2bit gray scale)

LUMINANCE4 

16 shades of gray (4bit gray scale)

LUMINANCE8 

8bit gray scale

LUMINANCE_ALPHA1 

Monochrome (black-white) with alpha channel.

LUMINANCE_ALPHA2 

2bit gray scale with alpha channel

LUMINANCE_ALPHA4 

4bit gray scale with alpha channel

LUMINANCE_ALPHA8 

8bit gray scale with alpha channel

Constructor & Destructor Documentation

◆ PNG() [1/2]

PNG::PNG ( const unsigned char *  buffer,
unsigned long  size 
)

Load PNG image from memory.

Parameters
bufferpointer to memory buffer
sizesize of memory buffer

◆ PNG() [2/2]

PNG::PNG ( const char *  path)
explicit

Load PNG image from file system.

Parameters
pathpath to file

Member Function Documentation

◆ get_buffer()

const unsigned char * PNG::get_buffer ( )
inline

Image buffer address.

Returns
Pointer to image buffer

◆ get_size()

unsigned PNG::get_size ( )
inline

Size of image buffer.

Returns
Total size of image buffer in bytes

The documentation for this class was generated from the following files: