GrafX2 2.9.3227
The ultimate 256-color painting program
pngformat.c File Reference

Saving and loading of PNG file format. More...

#include <png.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <setjmp.h>
#include "loadsave.h"
#include "loadsavefuncs.h"
#include "io.h"
#include "misc.h"
#include "gfx2log.h"
+ Include dependency graph for pngformat.c:

Data Structures

struct  PNG_memory_buffer
 Private structure used in PNG_memory_read() and PNG_memory_write() More...
 

Macros

#define PNG_HAVE_PLTE   0x02
 
#define png_set_expand_gray_1_2_4_to_8(x)   png_set_gray_1_2_4_to_8(x)
 
#define png_get_rowbytes(png_ptr, info_ptr)   ((info_ptr)->rowbytes)
 
#define png_get_image_width(png_ptr, info_ptr)   ((info_ptr)->width)
 
#define png_get_image_height(png_ptr, info_ptr)   ((info_ptr)->height)
 
#define png_get_bit_depth(png_ptr, info_ptr)   ((info_ptr)->bit_depth)
 
#define png_get_color_type(png_ptr, info_ptr)   ((info_ptr)->color_type)
 
#define png_jmpbuf(png_ptr)   ((png_ptr)->jmpbuf)
 
#define MIN(a, b)   ((a)<(b)?(a):(b))
 

Functions

void Test_PNG (T_IO_Context *context, FILE *file)
 Test for PNG format. More...
 
static int PNG_read_unknown_chunk (png_structp ptr, png_unknown_chunkp chunk)
 Callback to handle our private chunks. More...
 
static void PNG_memory_read (png_structp png_ptr, png_bytep p, png_size_t count)
 read from memory buffer More...
 
void Load_PNG_Sub (T_IO_Context *context, FILE *file, const char *memory_buffer, unsigned long memory_buffer_size)
 Read PNG format file. More...
 
void Load_PNG (T_IO_Context *context)
 Read PNG format files. More...
 
static void PNG_memory_write (png_structp png_ptr, png_bytep p, png_size_t count)
 Write to memory buffer. More...
 
static void PNG_memory_flush (png_structp png_ptr)
 do nothing More...
 
void Save_PNG_Sub (T_IO_Context *context, FILE *file, char **buffer, unsigned long *buffer_size)
 Save a PNG to file or memory. More...
 
void Save_PNG (T_IO_Context *context)
 Save a PNG file. More...
 

Detailed Description

Saving and loading of PNG file format.

Macro Definition Documentation

◆ PNG_HAVE_PLTE

#define PNG_HAVE_PLTE   0x02

◆ png_set_expand_gray_1_2_4_to_8

#define png_set_expand_gray_1_2_4_to_8 (   x)    png_set_gray_1_2_4_to_8(x)

◆ png_get_rowbytes

#define png_get_rowbytes (   png_ptr,
  info_ptr 
)    ((info_ptr)->rowbytes)

◆ png_get_image_width

#define png_get_image_width (   png_ptr,
  info_ptr 
)    ((info_ptr)->width)

◆ png_get_image_height

#define png_get_image_height (   png_ptr,
  info_ptr 
)    ((info_ptr)->height)

◆ png_get_bit_depth

#define png_get_bit_depth (   png_ptr,
  info_ptr 
)    ((info_ptr)->bit_depth)

◆ png_get_color_type

#define png_get_color_type (   png_ptr,
  info_ptr 
)    ((info_ptr)->color_type)

◆ png_jmpbuf

#define png_jmpbuf (   png_ptr)    ((png_ptr)->jmpbuf)

◆ MIN

#define MIN (   a,
 
)    ((a)<(b)?(a):(b))