pngz
easy png io library that converts all images into 8 bit RGBA.
Loading...
Searching...
No Matches
pngz.h File Reference
#include <png.h>
Include dependency graph for pngz.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pixel
 pixel in RGBA8 format. More...
 
struct  pngz
 easy png structure. More...
 

Typedefs

typedef struct pixel pixel
 pixel in RGBA8 format.
 
typedef struct pngz pngz
 easy png structure.
 

Functions

pixel ** pngz_alloc_pixels (unsigned rows, unsigned cols)
 allocate a pixel buffer.
 
unsigned char ** pngz_alloc_bytes (unsigned rows, unsigned cols)
 allocate raw pixel byte buffer.
 
int pngz_free_pixels (pixel **pixels, unsigned rows)
 safely free pixel buffer.
 
int pngz_free_bytes (unsigned char **bytes, unsigned rows)
 safely free pixel buffer.
 
int pngz_free (pngz *z)
 free a pngz structs pixels.
 
int pngz_pack_pixels (unsigned char **bytes_src, pixel **pixels_dest, unsigned rows, unsigned cols)
 pack bytes into pixels.
 
int pngz_unpack_pixels (pixel **pixels_src, unsigned char **bytes_dest, unsigned rows, unsigned cols)
 unpack pixels into raw byte ptrs.
 
int pngz_load (pngz *z)
 load a pngz object into memory
 
int pngz_load_from (pngz *z, char *path)
 load a pngz from a path directly passed into the call, just a wrapper for standard pngz_load()
 
int pngz_save (pngz z)
 write a png back out to file, wrapper for pngz_save_as()
 
int pngz_save_as (pngz z, char *path)
 write a png back out to file with a new name
 
void pngz_print (pngz z)
 print a pngz ztruct contents.
 
void pngz_print_pixel (pixel p)
 print out a single pixels rgba values in hex.
 
void pngz_print_indent (pngz z, int indent)
 print a pngz ztruct contents.
 
void pngz_print_pixel_indent (pixel p, int indent)
 print out a single pixels rgba values.
 

Typedef Documentation

◆ pixel

typedef struct pixel pixel

pixel in RGBA8 format.

◆ pngz

typedef struct pngz pngz

easy png structure.

always contains RGBA8 color (0x0 - 0xFFFFFF). pixel buffer is [height][width] pixels ([rows][cols])

Function Documentation

◆ pngz_alloc_bytes()

unsigned char ** pngz_alloc_bytes ( unsigned rows,
unsigned cols )

allocate raw pixel byte buffer.

Parameters
rowsnumber of rows to allocate
colsnumber bytes per row to allocate
Returns
a ptr to buffer, returns null and sets errno on failure

Definition at line 67 of file pngz.c.

◆ pngz_alloc_pixels()

pixel ** pngz_alloc_pixels ( unsigned rows,
unsigned cols )

allocate a pixel buffer.

every pixel will be represented as a struct

Parameters
rowsnumber of rows to allocate
colsnumber pixels per col to allocate
Returns
exit code, setting errno on failure

Definition at line 37 of file pngz.c.

◆ pngz_free()

int pngz_free ( pngz * z)

free a pngz structs pixels.

Parameters
zpngz* with pixels loaded into memory
Returns
exit code, error if you try to free a NULL ptr

Definition at line 164 of file pngz.c.

References pngz::height, pngz::pixels, and pngz_free_pixels().

Here is the call graph for this function:

◆ pngz_free_bytes()

int pngz_free_bytes ( unsigned char ** bytes,
unsigned rows )

safely free pixel buffer.

Parameters
bytes2D pixel bytes of size [rows][cols * 4]
rowsnumber of rows to free
Returns
exit code

Definition at line 131 of file pngz.c.

◆ pngz_free_pixels()

int pngz_free_pixels ( pixel ** pixels,
unsigned rows )

safely free pixel buffer.

Parameters
pixels2D pixel ptr of size [rows][cols]
rowsnumber of rows to free
Returns
exit code

Definition at line 97 of file pngz.c.

◆ pngz_load()

int pngz_load ( pngz * z)

load a pngz object into memory

Parameters
zpngz* easy png ptr to load into
Returns
exit code

Definition at line 240 of file pngz.c.

References pngz::height, pngz::path, pngz::pixels, pngz_alloc_bytes(), pngz_alloc_pixels(), pngz_free_bytes(), pngz_pack_pixels(), and pngz::width.

Here is the call graph for this function:

◆ pngz_load_from()

int pngz_load_from ( pngz * z,
char * path )

load a pngz from a path directly passed into the call, just a wrapper for standard pngz_load()

Parameters
zpngz* easy png ptr to load into
pathchar* path to read from
Returns
exit code

Definition at line 229 of file pngz.c.

References pngz::path, and pngz_load().

Here is the call graph for this function:

◆ pngz_pack_pixels()

int pngz_pack_pixels ( unsigned char ** bytes_src,
pixel ** pixels_dest,
unsigned rows,
unsigned cols )

pack bytes into pixels.

Parameters
bytes_srcunpacked pixel byte source
pixels_destpacked pixel destination
rowsrows of pixels (Y)
colscols of pixels (X) (IN PIXELS NOT BYTES)
Returns
exit code

Definition at line 179 of file pngz.c.

References pixel::a, pixel::b, pixel::g, and pixel::r.

◆ pngz_print()

void pngz_print ( pngz z)

print a pngz ztruct contents.

Parameters
zpngz to print
Returns
void

Definition at line 401 of file pngz.c.

References pngz::height, pngz::pixels, and pngz::width.

◆ pngz_print_indent()

void pngz_print_indent ( pngz z,
int indent )

print a pngz ztruct contents.

Parameters
zpngz to print
indentint for how much to indent this print
Returns
void

Definition at line 444 of file pngz.c.

References pngz::height, pngz::pixels, print_indent(), and pngz::width.

Here is the call graph for this function:

◆ pngz_print_pixel()

void pngz_print_pixel ( pixel p)

print out a single pixels rgba values in hex.

Parameters
punsigned char* to the pixel to print
Returns
void

Definition at line 420 of file pngz.c.

References pixel::a, pixel::g, and pixel::r.

◆ pngz_print_pixel_indent()

void pngz_print_pixel_indent ( pixel p,
int indent )

print out a single pixels rgba values.

Parameters
punsigned char* to the pixel to print
indentint for how much to indent this print
Returns
void

Definition at line 468 of file pngz.c.

References pixel::a, pixel::g, print_indent(), and pixel::r.

Here is the call graph for this function:

◆ pngz_save()

int pngz_save ( pngz z)

write a png back out to file, wrapper for pngz_save_as()

Parameters
zpngz* easy png ptr to write to file
Returns
exit code

Definition at line 331 of file pngz.c.

References pngz::path, and pngz_save_as().

Here is the call graph for this function:

◆ pngz_save_as()

int pngz_save_as ( pngz z,
char * path )

write a png back out to file with a new name

Parameters
pathchar* file path to save to
zpngz* easy png ptr to write to file
Returns
exit code

Definition at line 342 of file pngz.c.

References pngz::height, pngz::pixels, pngz_alloc_bytes(), pngz_free_bytes(), pngz_unpack_pixels(), and pngz::width.

Here is the call graph for this function:

◆ pngz_unpack_pixels()

int pngz_unpack_pixels ( pixel ** pixels_src,
unsigned char ** bytes_dest,
unsigned rows,
unsigned cols )

unpack pixels into raw byte ptrs.

Parameters
pixels_srcpacked pixel source
bytes_destunpacked byte destination
rowsrows of pixels
colscols of pixels (IN PIXELS NOT BYTES)
Returns
exit code

Definition at line 206 of file pngz.c.

References pixel::r.