lab_intro
Ineluctable Introduction
lodepng.cpp File Reference
#include "lodepng.h"
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
+ Include dependency graph for lodepng.cpp:

Classes

struct  uivector
 
struct  ucvector
 
struct  HuffmanTree
 
struct  BPMNode
 
struct  BPMLists
 
struct  Hash
 
struct  ColorTree
 

Macros

#define CERROR_BREAK(errorvar, code)
 
#define ERROR_BREAK(code)   CERROR_BREAK(error, code)
 
#define CERROR_RETURN_ERROR(errorvar, code)
 
#define CERROR_TRY_RETURN(call)
 
#define CERROR_RETURN(errorvar, code)
 
#define addBitToStream(bitpointer, bitstream, bit)
 
#define READBIT(bitpointer, bitstream)   ((bitstream[bitpointer >> 3] >> (bitpointer & 0x7)) & (unsigned char)1)
 
#define FIRST_LENGTH_CODE_INDEX   257
 
#define LAST_LENGTH_CODE_INDEX   285
 
#define NUM_DEFLATE_CODE_SYMBOLS   288
 
#define NUM_DISTANCE_SYMBOLS   32
 
#define NUM_CODE_LENGTH_CODES   19
 
#define DEFAULT_WINDOWSIZE   2048
 

Typedefs

typedef struct uivector uivector
 
typedef struct ucvector ucvector
 
typedef struct HuffmanTree HuffmanTree
 
typedef struct BPMNode BPMNode
 
typedef struct BPMLists BPMLists
 
typedef struct Hash Hash
 
typedef struct ColorTree ColorTree
 

Functions

static void * lodepng_malloc (size_t size)
 
static void * lodepng_realloc (void *ptr, size_t new_size)
 
static void lodepng_free (void *ptr)
 
static void uivector_cleanup (void *p)
 
static unsigned uivector_reserve (uivector *p, size_t allocsize)
 
static unsigned uivector_resize (uivector *p, size_t size)
 
static unsigned uivector_resizev (uivector *p, size_t size, unsigned value)
 
static void uivector_init (uivector *p)
 
static unsigned uivector_push_back (uivector *p, unsigned c)
 
static unsigned ucvector_reserve (ucvector *p, size_t allocsize)
 
static unsigned ucvector_resize (ucvector *p, size_t size)
 
static void ucvector_cleanup (void *p)
 
static void ucvector_init (ucvector *p)
 
static void ucvector_init_buffer (ucvector *p, unsigned char *buffer, size_t size)
 
static unsigned ucvector_push_back (ucvector *p, unsigned char c)
 
static unsigned string_resize (char **out, size_t size)
 
static void string_init (char **out)
 
static void string_cleanup (char **out)
 
static void string_set (char **out, const char *in)
 
unsigned lodepng_read32bitInt (const unsigned char *buffer)
 
static void lodepng_set32bitInt (unsigned char *buffer, unsigned value)
 
static void lodepng_add32bitInt (ucvector *buffer, unsigned value)
 
static long lodepng_filesize (const char *filename)
 
static unsigned lodepng_buffer_file (unsigned char *out, size_t size, const char *filename)
 
unsigned lodepng_load_file (unsigned char **out, size_t *outsize, const char *filename)
 
unsigned lodepng_save_file (const unsigned char *buffer, size_t buffersize, const char *filename)
 
static void addBitsToStream (size_t *bitpointer, ucvector *bitstream, unsigned value, size_t nbits)
 
static void addBitsToStreamReversed (size_t *bitpointer, ucvector *bitstream, unsigned value, size_t nbits)
 
static unsigned char readBitFromStream (size_t *bitpointer, const unsigned char *bitstream)
 
static unsigned readBitsFromStream (size_t *bitpointer, const unsigned char *bitstream, size_t nbits)
 
static void HuffmanTree_init (HuffmanTree *tree)
 
static void HuffmanTree_cleanup (HuffmanTree *tree)
 
static unsigned HuffmanTree_make2DTree (HuffmanTree *tree)
 
static unsigned HuffmanTree_makeFromLengths2 (HuffmanTree *tree)
 
static unsigned HuffmanTree_makeFromLengths (HuffmanTree *tree, const unsigned *bitlen, size_t numcodes, unsigned maxbitlen)
 
static BPMNodebpmnode_create (BPMLists *lists, int weight, unsigned index, BPMNode *tail)
 
static void bpmnode_sort (BPMNode *leaves, size_t num)
 
static void boundaryPM (BPMLists *lists, BPMNode *leaves, size_t numpresent, int c, int num)
 
unsigned lodepng_huffman_code_lengths (unsigned *lengths, const unsigned *frequencies, size_t numcodes, unsigned maxbitlen)
 
static unsigned HuffmanTree_makeFromFrequencies (HuffmanTree *tree, const unsigned *frequencies, size_t mincodes, size_t numcodes, unsigned maxbitlen)
 
static unsigned HuffmanTree_getCode (const HuffmanTree *tree, unsigned index)
 
static unsigned HuffmanTree_getLength (const HuffmanTree *tree, unsigned index)
 
static unsigned generateFixedLitLenTree (HuffmanTree *tree)
 
static unsigned generateFixedDistanceTree (HuffmanTree *tree)
 
static unsigned huffmanDecodeSymbol (const unsigned char *in, size_t *bp, const HuffmanTree *codetree, size_t inbitlength)
 
static void getTreeInflateFixed (HuffmanTree *tree_ll, HuffmanTree *tree_d)
 
static unsigned getTreeInflateDynamic (HuffmanTree *tree_ll, HuffmanTree *tree_d, const unsigned char *in, size_t *bp, size_t inlength)
 
static unsigned inflateHuffmanBlock (ucvector *out, const unsigned char *in, size_t *bp, size_t *pos, size_t inlength, unsigned btype)
 
static unsigned inflateNoCompression (ucvector *out, const unsigned char *in, size_t *bp, size_t *pos, size_t inlength)
 
static unsigned lodepng_inflatev (ucvector *out, const unsigned char *in, size_t insize, const LodePNGDecompressSettings *settings)
 
unsigned lodepng_inflate (unsigned char **out, size_t *outsize, const unsigned char *in, size_t insize, const LodePNGDecompressSettings *settings)
 
static unsigned inflate (unsigned char **out, size_t *outsize, const unsigned char *in, size_t insize, const LodePNGDecompressSettings *settings)
 
static void addHuffmanSymbol (size_t *bp, ucvector *compressed, unsigned code, unsigned bitlen)
 
static size_t searchCodeIndex (const unsigned *array, size_t array_size, size_t value)
 
static void addLengthDistance (uivector *values, size_t length, size_t distance)
 
static unsigned hash_init (Hash *hash, unsigned windowsize)
 
static void hash_cleanup (Hash *hash)
 
static unsigned getHash (const unsigned char *data, size_t size, size_t pos)
 
static unsigned countZeros (const unsigned char *data, size_t size, size_t pos)
 
static void updateHashChain (Hash *hash, size_t wpos, unsigned hashval, unsigned short numzeros)
 
static unsigned encodeLZ77 (uivector *out, Hash *hash, const unsigned char *in, size_t inpos, size_t insize, unsigned windowsize, unsigned minmatch, unsigned nicematch, unsigned lazymatching)
 
static unsigned deflateNoCompression (ucvector *out, const unsigned char *data, size_t datasize)
 
static void writeLZ77data (size_t *bp, ucvector *out, const uivector *lz77_encoded, const HuffmanTree *tree_ll, const HuffmanTree *tree_d)
 
static unsigned deflateDynamic (ucvector *out, size_t *bp, Hash *hash, const unsigned char *data, size_t datapos, size_t dataend, const LodePNGCompressSettings *settings, unsigned final)
 
static unsigned deflateFixed (ucvector *out, size_t *bp, Hash *hash, const unsigned char *data, size_t datapos, size_t dataend, const LodePNGCompressSettings *settings, unsigned final)
 
static unsigned lodepng_deflatev (ucvector *out, const unsigned char *in, size_t insize, const LodePNGCompressSettings *settings)
 
unsigned lodepng_deflate (unsigned char **out, size_t *outsize, const unsigned char *in, size_t insize, const LodePNGCompressSettings *settings)
 
static unsigned deflate (unsigned char **out, size_t *outsize, const unsigned char *in, size_t insize, const LodePNGCompressSettings *settings)
 
static unsigned update_adler32 (unsigned adler, const unsigned char *data, unsigned len)
 
static unsigned adler32 (const unsigned char *data, unsigned len)
 
unsigned lodepng_zlib_decompress (unsigned char **out, size_t *outsize, const unsigned char *in, size_t insize, const LodePNGDecompressSettings *settings)
 
static unsigned zlib_decompress (unsigned char **out, size_t *outsize, const unsigned char *in, size_t insize, const LodePNGDecompressSettings *settings)
 
unsigned lodepng_zlib_compress (unsigned char **out, size_t *outsize, const unsigned char *in, size_t insize, const LodePNGCompressSettings *settings)
 
static unsigned zlib_compress (unsigned char **out, size_t *outsize, const unsigned char *in, size_t insize, const LodePNGCompressSettings *settings)
 
void lodepng_compress_settings_init (LodePNGCompressSettings *settings)
 
void lodepng_decompress_settings_init (LodePNGDecompressSettings *settings)
 
unsigned lodepng_crc32 (const unsigned char *data, size_t length)
 
static unsigned char readBitFromReversedStream (size_t *bitpointer, const unsigned char *bitstream)
 
static unsigned readBitsFromReversedStream (size_t *bitpointer, const unsigned char *bitstream, size_t nbits)
 
static void setBitOfReversedStream0 (size_t *bitpointer, unsigned char *bitstream, unsigned char bit)
 
static void setBitOfReversedStream (size_t *bitpointer, unsigned char *bitstream, unsigned char bit)
 
unsigned lodepng_chunk_length (const unsigned char *chunk)
 
void lodepng_chunk_type (char type[5], const unsigned char *chunk)
 
unsigned char lodepng_chunk_type_equals (const unsigned char *chunk, const char *type)
 
unsigned char lodepng_chunk_ancillary (const unsigned char *chunk)
 
unsigned char lodepng_chunk_private (const unsigned char *chunk)
 
unsigned char lodepng_chunk_safetocopy (const unsigned char *chunk)
 
unsigned char * lodepng_chunk_data (unsigned char *chunk)
 
const unsigned char * lodepng_chunk_data_const (const unsigned char *chunk)
 
unsigned lodepng_chunk_check_crc (const unsigned char *chunk)
 
void lodepng_chunk_generate_crc (unsigned char *chunk)
 
unsigned char * lodepng_chunk_next (unsigned char *chunk)
 
const unsigned char * lodepng_chunk_next_const (const unsigned char *chunk)
 
unsigned lodepng_chunk_append (unsigned char **out, size_t *outlength, const unsigned char *chunk)
 
unsigned lodepng_chunk_create (unsigned char **out, size_t *outlength, unsigned length, const char *type, const unsigned char *data)
 
static unsigned checkColorValidity (LodePNGColorType colortype, unsigned bd)
 
static unsigned getNumColorChannels (LodePNGColorType colortype)
 
static unsigned lodepng_get_bpp_lct (LodePNGColorType colortype, unsigned bitdepth)
 
void lodepng_color_mode_init (LodePNGColorMode *info)
 
void lodepng_color_mode_cleanup (LodePNGColorMode *info)
 
unsigned lodepng_color_mode_copy (LodePNGColorMode *dest, const LodePNGColorMode *source)
 
static int lodepng_color_mode_equal (const LodePNGColorMode *a, const LodePNGColorMode *b)
 
void lodepng_palette_clear (LodePNGColorMode *info)
 
unsigned lodepng_palette_add (LodePNGColorMode *info, unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 
unsigned lodepng_get_bpp (const LodePNGColorMode *info)
 
unsigned lodepng_get_channels (const LodePNGColorMode *info)
 
unsigned lodepng_is_greyscale_type (const LodePNGColorMode *info)
 
unsigned lodepng_is_alpha_type (const LodePNGColorMode *info)
 
unsigned lodepng_is_palette_type (const LodePNGColorMode *info)
 
unsigned lodepng_has_palette_alpha (const LodePNGColorMode *info)
 
unsigned lodepng_can_have_alpha (const LodePNGColorMode *info)
 
size_t lodepng_get_raw_size (unsigned w, unsigned h, const LodePNGColorMode *color)
 
size_t lodepng_get_raw_size_lct (unsigned w, unsigned h, LodePNGColorType colortype, unsigned bitdepth)
 
static size_t lodepng_get_raw_size_idat (unsigned w, unsigned h, const LodePNGColorMode *color)
 
static void LodePNGUnknownChunks_init (LodePNGInfo *info)
 
static void LodePNGUnknownChunks_cleanup (LodePNGInfo *info)
 
static unsigned LodePNGUnknownChunks_copy (LodePNGInfo *dest, const LodePNGInfo *src)
 
static void LodePNGText_init (LodePNGInfo *info)
 
static void LodePNGText_cleanup (LodePNGInfo *info)
 
static unsigned LodePNGText_copy (LodePNGInfo *dest, const LodePNGInfo *source)
 
void lodepng_clear_text (LodePNGInfo *info)
 
unsigned lodepng_add_text (LodePNGInfo *info, const char *key, const char *str)
 
static void LodePNGIText_init (LodePNGInfo *info)
 
static void LodePNGIText_cleanup (LodePNGInfo *info)
 
static unsigned LodePNGIText_copy (LodePNGInfo *dest, const LodePNGInfo *source)
 
void lodepng_clear_itext (LodePNGInfo *info)
 
unsigned lodepng_add_itext (LodePNGInfo *info, const char *key, const char *langtag, const char *transkey, const char *str)
 
void lodepng_info_init (LodePNGInfo *info)
 
void lodepng_info_cleanup (LodePNGInfo *info)
 
unsigned lodepng_info_copy (LodePNGInfo *dest, const LodePNGInfo *source)
 
void lodepng_info_swap (LodePNGInfo *a, LodePNGInfo *b)
 
static void addColorBits (unsigned char *out, size_t index, unsigned bits, unsigned in)
 
static void color_tree_init (ColorTree *tree)
 
static void color_tree_cleanup (ColorTree *tree)
 
static int color_tree_get (ColorTree *tree, unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 
static int color_tree_has (ColorTree *tree, unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 
static void color_tree_add (ColorTree *tree, unsigned char r, unsigned char g, unsigned char b, unsigned char a, unsigned index)
 
static unsigned rgba8ToPixel (unsigned char *out, size_t i, const LodePNGColorMode *mode, ColorTree *tree, unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 
static void rgba16ToPixel (unsigned char *out, size_t i, const LodePNGColorMode *mode, unsigned short r, unsigned short g, unsigned short b, unsigned short a)
 
static void getPixelColorRGBA8 (unsigned char *r, unsigned char *g, unsigned char *b, unsigned char *a, const unsigned char *in, size_t i, const LodePNGColorMode *mode)
 
static void getPixelColorsRGBA8 (unsigned char *buffer, size_t numpixels, unsigned has_alpha, const unsigned char *in, const LodePNGColorMode *mode)
 
static void getPixelColorRGBA16 (unsigned short *r, unsigned short *g, unsigned short *b, unsigned short *a, const unsigned char *in, size_t i, const LodePNGColorMode *mode)
 
unsigned lodepng_convert (unsigned char *out, const unsigned char *in, const LodePNGColorMode *mode_out, const LodePNGColorMode *mode_in, unsigned w, unsigned h)
 
void lodepng_color_profile_init (LodePNGColorProfile *profile)
 
static unsigned getValueRequiredBits (unsigned char value)
 
unsigned lodepng_get_color_profile (LodePNGColorProfile *profile, const unsigned char *in, unsigned w, unsigned h, const LodePNGColorMode *mode)
 
unsigned lodepng_auto_choose_color (LodePNGColorMode *mode_out, const unsigned char *image, unsigned w, unsigned h, const LodePNGColorMode *mode_in)
 
static unsigned char paethPredictor (short a, short b, short c)
 
static void Adam7_getpassvalues (unsigned passw[7], unsigned passh[7], size_t filter_passstart[8], size_t padded_passstart[8], size_t passstart[8], unsigned w, unsigned h, unsigned bpp)
 
unsigned lodepng_inspect (unsigned *w, unsigned *h, LodePNGState *state, const unsigned char *in, size_t insize)
 
static unsigned unfilterScanline (unsigned char *recon, const unsigned char *scanline, const unsigned char *precon, size_t bytewidth, unsigned char filterType, size_t length)
 
static unsigned unfilter (unsigned char *out, const unsigned char *in, unsigned w, unsigned h, unsigned bpp)
 
static void Adam7_deinterlace (unsigned char *out, const unsigned char *in, unsigned w, unsigned h, unsigned bpp)
 
static void removePaddingBits (unsigned char *out, const unsigned char *in, size_t olinebits, size_t ilinebits, unsigned h)
 
static unsigned postProcessScanlines (unsigned char *out, unsigned char *in, unsigned w, unsigned h, const LodePNGInfo *info_png)
 
static unsigned readChunk_PLTE (LodePNGColorMode *color, const unsigned char *data, size_t chunkLength)
 
static unsigned readChunk_tRNS (LodePNGColorMode *color, const unsigned char *data, size_t chunkLength)
 
static unsigned readChunk_bKGD (LodePNGInfo *info, const unsigned char *data, size_t chunkLength)
 
static unsigned readChunk_tEXt (LodePNGInfo *info, const unsigned char *data, size_t chunkLength)
 
static unsigned readChunk_zTXt (LodePNGInfo *info, const LodePNGDecompressSettings *zlibsettings, const unsigned char *data, size_t chunkLength)
 
static unsigned readChunk_iTXt (LodePNGInfo *info, const LodePNGDecompressSettings *zlibsettings, const unsigned char *data, size_t chunkLength)
 
static unsigned readChunk_tIME (LodePNGInfo *info, const unsigned char *data, size_t chunkLength)
 
static unsigned readChunk_pHYs (LodePNGInfo *info, const unsigned char *data, size_t chunkLength)
 
static void decodeGeneric (unsigned char **out, unsigned *w, unsigned *h, LodePNGState *state, const unsigned char *in, size_t insize)
 
unsigned lodepng_decode (unsigned char **out, unsigned *w, unsigned *h, LodePNGState *state, const unsigned char *in, size_t insize)
 
unsigned lodepng_decode_memory (unsigned char **out, unsigned *w, unsigned *h, const unsigned char *in, size_t insize, LodePNGColorType colortype, unsigned bitdepth)
 
unsigned lodepng_decode32 (unsigned char **out, unsigned *w, unsigned *h, const unsigned char *in, size_t insize)
 
unsigned lodepng_decode24 (unsigned char **out, unsigned *w, unsigned *h, const unsigned char *in, size_t insize)
 
unsigned lodepng_decode_file (unsigned char **out, unsigned *w, unsigned *h, const char *filename, LodePNGColorType colortype, unsigned bitdepth)
 
unsigned lodepng_decode32_file (unsigned char **out, unsigned *w, unsigned *h, const char *filename)
 
unsigned lodepng_decode24_file (unsigned char **out, unsigned *w, unsigned *h, const char *filename)
 
void lodepng_decoder_settings_init (LodePNGDecoderSettings *settings)
 
void lodepng_state_init (LodePNGState *state)
 
void lodepng_state_cleanup (LodePNGState *state)
 
void lodepng_state_copy (LodePNGState *dest, const LodePNGState *source)
 
static unsigned addChunk (ucvector *out, const char *chunkName, const unsigned char *data, size_t length)
 
static void writeSignature (ucvector *out)
 
static unsigned addChunk_IHDR (ucvector *out, unsigned w, unsigned h, LodePNGColorType colortype, unsigned bitdepth, unsigned interlace_method)
 
static unsigned addChunk_PLTE (ucvector *out, const LodePNGColorMode *info)
 
static unsigned addChunk_tRNS (ucvector *out, const LodePNGColorMode *info)
 
static unsigned addChunk_IDAT (ucvector *out, const unsigned char *data, size_t datasize, LodePNGCompressSettings *zlibsettings)
 
static unsigned addChunk_IEND (ucvector *out)
 
static unsigned addChunk_tEXt (ucvector *out, const char *keyword, const char *textstring)
 
static unsigned addChunk_zTXt (ucvector *out, const char *keyword, const char *textstring, LodePNGCompressSettings *zlibsettings)
 
static unsigned addChunk_iTXt (ucvector *out, unsigned compressed, const char *keyword, const char *langtag, const char *transkey, const char *textstring, LodePNGCompressSettings *zlibsettings)
 
static unsigned addChunk_bKGD (ucvector *out, const LodePNGInfo *info)
 
static unsigned addChunk_tIME (ucvector *out, const LodePNGTime *time)
 
static unsigned addChunk_pHYs (ucvector *out, const LodePNGInfo *info)
 
static void filterScanline (unsigned char *out, const unsigned char *scanline, const unsigned char *prevline, size_t length, size_t bytewidth, unsigned char filterType)
 
static float flog2 (float f)
 
static unsigned filter (unsigned char *out, const unsigned char *in, unsigned w, unsigned h, const LodePNGColorMode *info, const LodePNGEncoderSettings *settings)
 
static void addPaddingBits (unsigned char *out, const unsigned char *in, size_t olinebits, size_t ilinebits, unsigned h)
 
static void Adam7_interlace (unsigned char *out, const unsigned char *in, unsigned w, unsigned h, unsigned bpp)
 
static unsigned preProcessScanlines (unsigned char **out, size_t *outsize, const unsigned char *in, unsigned w, unsigned h, const LodePNGInfo *info_png, const LodePNGEncoderSettings *settings)
 
static unsigned getPaletteTranslucency (const unsigned char *palette, size_t palettesize)
 
static unsigned addUnknownChunks (ucvector *out, unsigned char *data, size_t datasize)
 
unsigned lodepng_encode (unsigned char **out, size_t *outsize, const unsigned char *image, unsigned w, unsigned h, LodePNGState *state)
 
unsigned lodepng_encode_memory (unsigned char **out, size_t *outsize, const unsigned char *image, unsigned w, unsigned h, LodePNGColorType colortype, unsigned bitdepth)
 
unsigned lodepng_encode32 (unsigned char **out, size_t *outsize, const unsigned char *image, unsigned w, unsigned h)
 
unsigned lodepng_encode24 (unsigned char **out, size_t *outsize, const unsigned char *image, unsigned w, unsigned h)
 
unsigned lodepng_encode_file (const char *filename, const unsigned char *image, unsigned w, unsigned h, LodePNGColorType colortype, unsigned bitdepth)
 
unsigned lodepng_encode32_file (const char *filename, const unsigned char *image, unsigned w, unsigned h)
 
unsigned lodepng_encode24_file (const char *filename, const unsigned char *image, unsigned w, unsigned h)
 
void lodepng_encoder_settings_init (LodePNGEncoderSettings *settings)
 
const char * lodepng_error_text (unsigned code)
 

Variables

const char * LODEPNG_VERSION_STRING = "20161127"
 
static const unsigned LENGTHBASE [29]
 
static const unsigned LENGTHEXTRA [29]
 
static const unsigned DISTANCEBASE [30]
 
static const unsigned DISTANCEEXTRA [30]
 
static const unsigned CLCL_ORDER [NUM_CODE_LENGTH_CODES] = {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}
 
static const size_t MAX_SUPPORTED_DEFLATE_LENGTH = 258
 
static const unsigned HASH_NUM_VALUES = 65536
 
static const unsigned HASH_BIT_MASK = 65535
 
const LodePNGCompressSettings lodepng_default_compress_settings = {2, 1, DEFAULT_WINDOWSIZE, 3, 128, 1, 0, 0, 0}
 
const LodePNGDecompressSettings lodepng_default_decompress_settings = {0, 0, 0, 0}
 
static unsigned lodepng_crc32_table [256]
 
static const unsigned ADAM7_IX [7] = { 0, 4, 0, 2, 0, 1, 0 }
 
static const unsigned ADAM7_IY [7] = { 0, 0, 4, 0, 2, 0, 1 }
 
static const unsigned ADAM7_DX [7] = { 8, 8, 4, 4, 2, 2, 1 }
 
static const unsigned ADAM7_DY [7] = { 8, 8, 8, 4, 4, 2, 2 }
 

Macro Definition Documentation

#define CERROR_BREAK (   errorvar,
  code 
)
Value:
{\
errorvar = code;\
break;\
}
#define ERROR_BREAK (   code)    CERROR_BREAK(error, code)
#define CERROR_RETURN_ERROR (   errorvar,
  code 
)
Value:
{\
errorvar = code;\
return code;\
}
#define CERROR_TRY_RETURN (   call)
Value:
{\
unsigned error = call;\
if(error) return error;\
}
#define CERROR_RETURN (   errorvar,
  code 
)
Value:
{\
errorvar = code;\
return;\
}
#define addBitToStream (   bitpointer,
  bitstream,
  bit 
)
Value:
{\
/*add a new byte at the end*/\
if(((*bitpointer) & 7) == 0) ucvector_push_back(bitstream, (unsigned char)0);\
/*earlier bit of huffman code is in a lesser significant bit of an earlier byte*/\
(bitstream->data[bitstream->size - 1]) |= (bit << ((*bitpointer) & 0x7));\
++(*bitpointer);\
}
static unsigned ucvector_push_back(ucvector *p, unsigned char c)
Definition: lodepng.cpp:265
#define READBIT (   bitpointer,
  bitstream 
)    ((bitstream[bitpointer >> 3] >> (bitpointer & 0x7)) & (unsigned char)1)
#define FIRST_LENGTH_CODE_INDEX   257
#define LAST_LENGTH_CODE_INDEX   285
#define NUM_DEFLATE_CODE_SYMBOLS   288
#define NUM_DISTANCE_SYMBOLS   32
#define NUM_CODE_LENGTH_CODES   19
#define DEFAULT_WINDOWSIZE   2048

Typedef Documentation

typedef struct uivector uivector
typedef struct ucvector ucvector
typedef struct HuffmanTree HuffmanTree
typedef struct BPMNode BPMNode
typedef struct BPMLists BPMLists
typedef struct Hash Hash
typedef struct ColorTree ColorTree

Function Documentation

static void* lodepng_malloc ( size_t  size)
static
static void* lodepng_realloc ( void *  ptr,
size_t  new_size 
)
static
static void lodepng_free ( void *  ptr)
static
static void uivector_cleanup ( void *  p)
static
static unsigned uivector_reserve ( uivector p,
size_t  allocsize 
)
static
static unsigned uivector_resize ( uivector p,
size_t  size 
)
static
static unsigned uivector_resizev ( uivector p,
size_t  size,
unsigned  value 
)
static
static void uivector_init ( uivector p)
static
static unsigned uivector_push_back ( uivector p,
unsigned  c 
)
static
static unsigned ucvector_reserve ( ucvector p,
size_t  allocsize 
)
static
static unsigned ucvector_resize ( ucvector p,
size_t  size 
)
static
static void ucvector_cleanup ( void *  p)
static
static void ucvector_init ( ucvector p)
static
static void ucvector_init_buffer ( ucvector p,
unsigned char *  buffer,
size_t  size 
)
static
static unsigned ucvector_push_back ( ucvector p,
unsigned char  c 
)
static
static unsigned string_resize ( char **  out,
size_t  size 
)
static
static void string_init ( char **  out)
static
static void string_cleanup ( char **  out)
static
static void string_set ( char **  out,
const char *  in 
)
static
unsigned lodepng_read32bitInt ( const unsigned char *  buffer)
static void lodepng_set32bitInt ( unsigned char *  buffer,
unsigned  value 
)
static
static void lodepng_add32bitInt ( ucvector buffer,
unsigned  value 
)
static
static long lodepng_filesize ( const char *  filename)
static
static unsigned lodepng_buffer_file ( unsigned char *  out,
size_t  size,
const char *  filename 
)
static
unsigned lodepng_load_file ( unsigned char **  out,
size_t *  outsize,
const char *  filename 
)
unsigned lodepng_save_file ( const unsigned char *  buffer,
size_t  buffersize,
const char *  filename 
)
static void addBitsToStream ( size_t *  bitpointer,
ucvector bitstream,
unsigned  value,
size_t  nbits 
)
static
static void addBitsToStreamReversed ( size_t *  bitpointer,
ucvector bitstream,
unsigned  value,
size_t  nbits 
)
static
static unsigned char readBitFromStream ( size_t *  bitpointer,
const unsigned char *  bitstream 
)
static
static unsigned readBitsFromStream ( size_t *  bitpointer,
const unsigned char *  bitstream,
size_t  nbits 
)
static
static void HuffmanTree_init ( HuffmanTree tree)
static
static void HuffmanTree_cleanup ( HuffmanTree tree)
static
static unsigned HuffmanTree_make2DTree ( HuffmanTree tree)
static
static unsigned HuffmanTree_makeFromLengths2 ( HuffmanTree tree)
static
static unsigned HuffmanTree_makeFromLengths ( HuffmanTree tree,
const unsigned *  bitlen,
size_t  numcodes,
unsigned  maxbitlen 
)
static
static BPMNode* bpmnode_create ( BPMLists lists,
int  weight,
unsigned  index,
BPMNode tail 
)
static
static void bpmnode_sort ( BPMNode leaves,
size_t  num 
)
static
static void boundaryPM ( BPMLists lists,
BPMNode leaves,
size_t  numpresent,
int  c,
int  num 
)
static
unsigned lodepng_huffman_code_lengths ( unsigned *  lengths,
const unsigned *  frequencies,
size_t  numcodes,
unsigned  maxbitlen 
)
static unsigned HuffmanTree_makeFromFrequencies ( HuffmanTree tree,
const unsigned *  frequencies,
size_t  mincodes,
size_t  numcodes,
unsigned  maxbitlen 
)
static
static unsigned HuffmanTree_getCode ( const HuffmanTree tree,
unsigned  index 
)
static
static unsigned HuffmanTree_getLength ( const HuffmanTree tree,
unsigned  index 
)
static
static unsigned generateFixedLitLenTree ( HuffmanTree tree)
static
static unsigned generateFixedDistanceTree ( HuffmanTree tree)
static
static unsigned huffmanDecodeSymbol ( const unsigned char *  in,
size_t *  bp,
const HuffmanTree codetree,
size_t  inbitlength 
)
static
static void getTreeInflateFixed ( HuffmanTree tree_ll,
HuffmanTree tree_d 
)
static
static unsigned getTreeInflateDynamic ( HuffmanTree tree_ll,
HuffmanTree tree_d,
const unsigned char *  in,
size_t *  bp,
size_t  inlength 
)
static
static unsigned inflateHuffmanBlock ( ucvector out,
const unsigned char *  in,
size_t *  bp,
size_t *  pos,
size_t  inlength,
unsigned  btype 
)
static
static unsigned inflateNoCompression ( ucvector out,
const unsigned char *  in,
size_t *  bp,
size_t *  pos,
size_t  inlength 
)
static
static unsigned lodepng_inflatev ( ucvector out,
const unsigned char *  in,
size_t  insize,
const LodePNGDecompressSettings settings 
)
static
unsigned lodepng_inflate ( unsigned char **  out,
size_t *  outsize,
const unsigned char *  in,
size_t  insize,
const LodePNGDecompressSettings settings 
)
static unsigned inflate ( unsigned char **  out,
size_t *  outsize,
const unsigned char *  in,
size_t  insize,
const LodePNGDecompressSettings settings 
)
static
static void addHuffmanSymbol ( size_t *  bp,
ucvector compressed,
unsigned  code,
unsigned  bitlen 
)
static
static size_t searchCodeIndex ( const unsigned *  array,
size_t  array_size,
size_t  value 
)
static
static void addLengthDistance ( uivector values,
size_t  length,
size_t  distance 
)
static
static unsigned hash_init ( Hash hash,
unsigned  windowsize 
)
static
static void hash_cleanup ( Hash hash)
static
static unsigned getHash ( const unsigned char *  data,
size_t  size,
size_t  pos 
)
static
static unsigned countZeros ( const unsigned char *  data,
size_t  size,
size_t  pos 
)
static
static void updateHashChain ( Hash hash,
size_t  wpos,
unsigned  hashval,
unsigned short  numzeros 
)
static
static unsigned encodeLZ77 ( uivector out,
Hash hash,
const unsigned char *  in,
size_t  inpos,
size_t  insize,
unsigned  windowsize,
unsigned  minmatch,
unsigned  nicematch,
unsigned  lazymatching 
)
static
static unsigned deflateNoCompression ( ucvector out,
const unsigned char *  data,
size_t  datasize 
)
static
static void writeLZ77data ( size_t *  bp,
ucvector out,
const uivector lz77_encoded,
const HuffmanTree tree_ll,
const HuffmanTree tree_d 
)
static
static unsigned deflateDynamic ( ucvector out,
size_t *  bp,
Hash hash,
const unsigned char *  data,
size_t  datapos,
size_t  dataend,
const LodePNGCompressSettings settings,
unsigned  final 
)
static
static unsigned deflateFixed ( ucvector out,
size_t *  bp,
Hash hash,
const unsigned char *  data,
size_t  datapos,
size_t  dataend,
const LodePNGCompressSettings settings,
unsigned  final 
)
static
static unsigned lodepng_deflatev ( ucvector out,
const unsigned char *  in,
size_t  insize,
const LodePNGCompressSettings settings 
)
static
unsigned lodepng_deflate ( unsigned char **  out,
size_t *  outsize,
const unsigned char *  in,
size_t  insize,
const LodePNGCompressSettings settings 
)
static unsigned deflate ( unsigned char **  out,
size_t *  outsize,
const unsigned char *  in,
size_t  insize,
const LodePNGCompressSettings settings 
)
static
static unsigned update_adler32 ( unsigned  adler,
const unsigned char *  data,
unsigned  len 
)
static
static unsigned adler32 ( const unsigned char *  data,
unsigned  len 
)
static
unsigned lodepng_zlib_decompress ( unsigned char **  out,
size_t *  outsize,
const unsigned char *  in,
size_t  insize,
const LodePNGDecompressSettings settings 
)
static unsigned zlib_decompress ( unsigned char **  out,
size_t *  outsize,
const unsigned char *  in,
size_t  insize,
const LodePNGDecompressSettings settings 
)
static
unsigned lodepng_zlib_compress ( unsigned char **  out,
size_t *  outsize,
const unsigned char *  in,
size_t  insize,
const LodePNGCompressSettings settings 
)
static unsigned zlib_compress ( unsigned char **  out,
size_t *  outsize,
const unsigned char *  in,
size_t  insize,
const LodePNGCompressSettings settings 
)
static
void lodepng_compress_settings_init ( LodePNGCompressSettings settings)
void lodepng_decompress_settings_init ( LodePNGDecompressSettings settings)
unsigned lodepng_crc32 ( const unsigned char *  data,
size_t  length 
)
static unsigned char readBitFromReversedStream ( size_t *  bitpointer,
const unsigned char *  bitstream 
)
static
static unsigned readBitsFromReversedStream ( size_t *  bitpointer,
const unsigned char *  bitstream,
size_t  nbits 
)
static
static void setBitOfReversedStream0 ( size_t *  bitpointer,
unsigned char *  bitstream,
unsigned char  bit 
)
static
static void setBitOfReversedStream ( size_t *  bitpointer,
unsigned char *  bitstream,
unsigned char  bit 
)
static
unsigned lodepng_chunk_length ( const unsigned char *  chunk)
void lodepng_chunk_type ( char  type[5],
const unsigned char *  chunk 
)
unsigned char lodepng_chunk_type_equals ( const unsigned char *  chunk,
const char *  type 
)
unsigned char lodepng_chunk_ancillary ( const unsigned char *  chunk)
unsigned char lodepng_chunk_private ( const unsigned char *  chunk)
unsigned char lodepng_chunk_safetocopy ( const unsigned char *  chunk)
unsigned char* lodepng_chunk_data ( unsigned char *  chunk)
const unsigned char* lodepng_chunk_data_const ( const unsigned char *  chunk)
unsigned lodepng_chunk_check_crc ( const unsigned char *  chunk)
void lodepng_chunk_generate_crc ( unsigned char *  chunk)
unsigned char* lodepng_chunk_next ( unsigned char *  chunk)
const unsigned char* lodepng_chunk_next_const ( const unsigned char *  chunk)
unsigned lodepng_chunk_append ( unsigned char **  out,
size_t *  outlength,
const unsigned char *  chunk 
)
unsigned lodepng_chunk_create ( unsigned char **  out,
size_t *  outlength,
unsigned  length,
const char *  type,
const unsigned char *  data 
)
static unsigned checkColorValidity ( LodePNGColorType  colortype,
unsigned  bd 
)
static
static unsigned getNumColorChannels ( LodePNGColorType  colortype)
static
static unsigned lodepng_get_bpp_lct ( LodePNGColorType  colortype,
unsigned  bitdepth 
)
static
void lodepng_color_mode_init ( LodePNGColorMode info)
void lodepng_color_mode_cleanup ( LodePNGColorMode info)
unsigned lodepng_color_mode_copy ( LodePNGColorMode dest,
const LodePNGColorMode source 
)
static int lodepng_color_mode_equal ( const LodePNGColorMode a,
const LodePNGColorMode b 
)
static
void lodepng_palette_clear ( LodePNGColorMode info)
unsigned lodepng_palette_add ( LodePNGColorMode info,
unsigned char  r,
unsigned char  g,
unsigned char  b,
unsigned char  a 
)
unsigned lodepng_get_bpp ( const LodePNGColorMode info)
unsigned lodepng_get_channels ( const LodePNGColorMode info)
unsigned lodepng_is_greyscale_type ( const LodePNGColorMode info)
unsigned lodepng_is_alpha_type ( const LodePNGColorMode info)
unsigned lodepng_is_palette_type ( const LodePNGColorMode info)
unsigned lodepng_has_palette_alpha ( const LodePNGColorMode info)
unsigned lodepng_can_have_alpha ( const LodePNGColorMode info)
size_t lodepng_get_raw_size ( unsigned  w,
unsigned  h,
const LodePNGColorMode color 
)
size_t lodepng_get_raw_size_lct ( unsigned  w,
unsigned  h,
LodePNGColorType  colortype,
unsigned  bitdepth 
)
static size_t lodepng_get_raw_size_idat ( unsigned  w,
unsigned  h,
const LodePNGColorMode color 
)
static
static void LodePNGUnknownChunks_init ( LodePNGInfo info)
static
static void LodePNGUnknownChunks_cleanup ( LodePNGInfo info)
static
static unsigned LodePNGUnknownChunks_copy ( LodePNGInfo dest,
const LodePNGInfo src 
)
static
static void LodePNGText_init ( LodePNGInfo info)
static
static void LodePNGText_cleanup ( LodePNGInfo info)
static
static unsigned LodePNGText_copy ( LodePNGInfo dest,
const LodePNGInfo source 
)
static
void lodepng_clear_text ( LodePNGInfo info)
unsigned lodepng_add_text ( LodePNGInfo info,
const char *  key,
const char *  str 
)
static void LodePNGIText_init ( LodePNGInfo info)
static
static void LodePNGIText_cleanup ( LodePNGInfo info)
static
static unsigned LodePNGIText_copy ( LodePNGInfo dest,
const LodePNGInfo source 
)
static
void lodepng_clear_itext ( LodePNGInfo info)
unsigned lodepng_add_itext ( LodePNGInfo info,
const char *  key,
const char *  langtag,
const char *  transkey,
const char *  str 
)
void lodepng_info_init ( LodePNGInfo info)
void lodepng_info_cleanup ( LodePNGInfo info)
unsigned lodepng_info_copy ( LodePNGInfo dest,
const LodePNGInfo source 
)
void lodepng_info_swap ( LodePNGInfo a,
LodePNGInfo b 
)
static void addColorBits ( unsigned char *  out,
size_t  index,
unsigned  bits,
unsigned  in 
)
static
static void color_tree_init ( ColorTree tree)
static
static void color_tree_cleanup ( ColorTree tree)
static
static int color_tree_get ( ColorTree tree,
unsigned char  r,
unsigned char  g,
unsigned char  b,
unsigned char  a 
)
static
static int color_tree_has ( ColorTree tree,
unsigned char  r,
unsigned char  g,
unsigned char  b,
unsigned char  a 
)
static
static void color_tree_add ( ColorTree tree,
unsigned char  r,
unsigned char  g,
unsigned char  b,
unsigned char  a,
unsigned  index 
)
static
static unsigned rgba8ToPixel ( unsigned char *  out,
size_t  i,
const LodePNGColorMode mode,
ColorTree tree,
unsigned char  r,
unsigned char  g,
unsigned char  b,
unsigned char  a 
)
static
static void rgba16ToPixel ( unsigned char *  out,
size_t  i,
const LodePNGColorMode mode,
unsigned short  r,
unsigned short  g,
unsigned short  b,
unsigned short  a 
)
static
static void getPixelColorRGBA8 ( unsigned char *  r,
unsigned char *  g,
unsigned char *  b,
unsigned char *  a,
const unsigned char *  in,
size_t  i,
const LodePNGColorMode mode 
)
static
static void getPixelColorsRGBA8 ( unsigned char *  buffer,
size_t  numpixels,
unsigned  has_alpha,
const unsigned char *  in,
const LodePNGColorMode mode 
)
static
static void getPixelColorRGBA16 ( unsigned short *  r,
unsigned short *  g,
unsigned short *  b,
unsigned short *  a,
const unsigned char *  in,
size_t  i,
const LodePNGColorMode mode 
)
static
unsigned lodepng_convert ( unsigned char *  out,
const unsigned char *  in,
const LodePNGColorMode mode_out,
const LodePNGColorMode mode_in,
unsigned  w,
unsigned  h 
)
void lodepng_color_profile_init ( LodePNGColorProfile profile)
static unsigned getValueRequiredBits ( unsigned char  value)
static
unsigned lodepng_get_color_profile ( LodePNGColorProfile profile,
const unsigned char *  in,
unsigned  w,
unsigned  h,
const LodePNGColorMode mode 
)
unsigned lodepng_auto_choose_color ( LodePNGColorMode mode_out,
const unsigned char *  image,
unsigned  w,
unsigned  h,
const LodePNGColorMode mode_in 
)
static unsigned char paethPredictor ( short  a,
short  b,
short  c 
)
static
static void Adam7_getpassvalues ( unsigned  passw[7],
unsigned  passh[7],
size_t  filter_passstart[8],
size_t  padded_passstart[8],
size_t  passstart[8],
unsigned  w,
unsigned  h,
unsigned  bpp 
)
static
unsigned lodepng_inspect ( unsigned *  w,
unsigned *  h,
LodePNGState state,
const unsigned char *  in,
size_t  insize 
)
static unsigned unfilterScanline ( unsigned char *  recon,
const unsigned char *  scanline,
const unsigned char *  precon,
size_t  bytewidth,
unsigned char  filterType,
size_t  length 
)
static
static unsigned unfilter ( unsigned char *  out,
const unsigned char *  in,
unsigned  w,
unsigned  h,
unsigned  bpp 
)
static
static void Adam7_deinterlace ( unsigned char *  out,
const unsigned char *  in,
unsigned  w,
unsigned  h,
unsigned  bpp 
)
static
static void removePaddingBits ( unsigned char *  out,
const unsigned char *  in,
size_t  olinebits,
size_t  ilinebits,
unsigned  h 
)
static
static unsigned postProcessScanlines ( unsigned char *  out,
unsigned char *  in,
unsigned  w,
unsigned  h,
const LodePNGInfo info_png 
)
static
static unsigned readChunk_PLTE ( LodePNGColorMode color,
const unsigned char *  data,
size_t  chunkLength 
)
static
static unsigned readChunk_tRNS ( LodePNGColorMode color,
const unsigned char *  data,
size_t  chunkLength 
)
static
static unsigned readChunk_bKGD ( LodePNGInfo info,
const unsigned char *  data,
size_t  chunkLength 
)
static
static unsigned readChunk_tEXt ( LodePNGInfo info,
const unsigned char *  data,
size_t  chunkLength 
)
static
static unsigned readChunk_zTXt ( LodePNGInfo info,
const LodePNGDecompressSettings zlibsettings,
const unsigned char *  data,
size_t  chunkLength 
)
static
static unsigned readChunk_iTXt ( LodePNGInfo info,
const LodePNGDecompressSettings zlibsettings,
const unsigned char *  data,
size_t  chunkLength 
)
static
static unsigned readChunk_tIME ( LodePNGInfo info,
const unsigned char *  data,
size_t  chunkLength 
)
static
static unsigned readChunk_pHYs ( LodePNGInfo info,
const unsigned char *  data,
size_t  chunkLength 
)
static
static void decodeGeneric ( unsigned char **  out,
unsigned *  w,
unsigned *  h,
LodePNGState state,
const unsigned char *  in,
size_t  insize 
)
static
unsigned lodepng_decode ( unsigned char **  out,
unsigned *  w,
unsigned *  h,
LodePNGState state,
const unsigned char *  in,
size_t  insize 
)
unsigned lodepng_decode_memory ( unsigned char **  out,
unsigned *  w,
unsigned *  h,
const unsigned char *  in,
size_t  insize,
LodePNGColorType  colortype,
unsigned  bitdepth 
)
unsigned lodepng_decode32 ( unsigned char **  out,
unsigned *  w,
unsigned *  h,
const unsigned char *  in,
size_t  insize 
)
unsigned lodepng_decode24 ( unsigned char **  out,
unsigned *  w,
unsigned *  h,
const unsigned char *  in,
size_t  insize 
)
unsigned lodepng_decode_file ( unsigned char **  out,
unsigned *  w,
unsigned *  h,
const char *  filename,
LodePNGColorType  colortype,
unsigned  bitdepth 
)
unsigned lodepng_decode32_file ( unsigned char **  out,
unsigned *  w,
unsigned *  h,
const char *  filename 
)
unsigned lodepng_decode24_file ( unsigned char **  out,
unsigned *  w,
unsigned *  h,
const char *  filename 
)
void lodepng_decoder_settings_init ( LodePNGDecoderSettings settings)
void lodepng_state_init ( LodePNGState state)
void lodepng_state_cleanup ( LodePNGState state)
void lodepng_state_copy ( LodePNGState dest,
const LodePNGState source 
)
static unsigned addChunk ( ucvector out,
const char *  chunkName,
const unsigned char *  data,
size_t  length 
)
static
static void writeSignature ( ucvector out)
static
static unsigned addChunk_IHDR ( ucvector out,
unsigned  w,
unsigned  h,
LodePNGColorType  colortype,
unsigned  bitdepth,
unsigned  interlace_method 
)
static
static unsigned addChunk_PLTE ( ucvector out,
const LodePNGColorMode info 
)
static
static unsigned addChunk_tRNS ( ucvector out,
const LodePNGColorMode info 
)
static
static unsigned addChunk_IDAT ( ucvector out,
const unsigned char *  data,
size_t  datasize,
LodePNGCompressSettings zlibsettings 
)
static
static unsigned addChunk_IEND ( ucvector out)
static
static unsigned addChunk_tEXt ( ucvector out,
const char *  keyword,
const char *  textstring 
)
static
static unsigned addChunk_zTXt ( ucvector out,
const char *  keyword,
const char *  textstring,
LodePNGCompressSettings zlibsettings 
)
static
static unsigned addChunk_iTXt ( ucvector out,
unsigned  compressed,
const char *  keyword,
const char *  langtag,
const char *  transkey,
const char *  textstring,
LodePNGCompressSettings zlibsettings 
)
static
static unsigned addChunk_bKGD ( ucvector out,
const LodePNGInfo info 
)
static
static unsigned addChunk_tIME ( ucvector out,
const LodePNGTime time 
)
static
static unsigned addChunk_pHYs ( ucvector out,
const LodePNGInfo info 
)
static
static void filterScanline ( unsigned char *  out,
const unsigned char *  scanline,
const unsigned char *  prevline,
size_t  length,
size_t  bytewidth,
unsigned char  filterType 
)
static
static float flog2 ( float  f)
static
static unsigned filter ( unsigned char *  out,
const unsigned char *  in,
unsigned  w,
unsigned  h,
const LodePNGColorMode info,
const LodePNGEncoderSettings settings 
)
static
static void addPaddingBits ( unsigned char *  out,
const unsigned char *  in,
size_t  olinebits,
size_t  ilinebits,
unsigned  h 
)
static
static void Adam7_interlace ( unsigned char *  out,
const unsigned char *  in,
unsigned  w,
unsigned  h,
unsigned  bpp 
)
static
static unsigned preProcessScanlines ( unsigned char **  out,
size_t *  outsize,
const unsigned char *  in,
unsigned  w,
unsigned  h,
const LodePNGInfo info_png,
const LodePNGEncoderSettings settings 
)
static
static unsigned getPaletteTranslucency ( const unsigned char *  palette,
size_t  palettesize 
)
static
static unsigned addUnknownChunks ( ucvector out,
unsigned char *  data,
size_t  datasize 
)
static
unsigned lodepng_encode ( unsigned char **  out,
size_t *  outsize,
const unsigned char *  image,
unsigned  w,
unsigned  h,
LodePNGState state 
)
unsigned lodepng_encode_memory ( unsigned char **  out,
size_t *  outsize,
const unsigned char *  image,
unsigned  w,
unsigned  h,
LodePNGColorType  colortype,
unsigned  bitdepth 
)
unsigned lodepng_encode32 ( unsigned char **  out,
size_t *  outsize,
const unsigned char *  image,
unsigned  w,
unsigned  h 
)
unsigned lodepng_encode24 ( unsigned char **  out,
size_t *  outsize,
const unsigned char *  image,
unsigned  w,
unsigned  h 
)
unsigned lodepng_encode_file ( const char *  filename,
const unsigned char *  image,
unsigned  w,
unsigned  h,
LodePNGColorType  colortype,
unsigned  bitdepth 
)
unsigned lodepng_encode32_file ( const char *  filename,
const unsigned char *  image,
unsigned  w,
unsigned  h 
)
unsigned lodepng_encode24_file ( const char *  filename,
const unsigned char *  image,
unsigned  w,
unsigned  h 
)
void lodepng_encoder_settings_init ( LodePNGEncoderSettings settings)
const char* lodepng_error_text ( unsigned  code)

Variable Documentation

const char* LODEPNG_VERSION_STRING = "20161127"
const unsigned LENGTHBASE[29]
static
Initial value:
= {3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59,
67, 83, 99, 115, 131, 163, 195, 227, 258}
const unsigned LENGTHEXTRA[29]
static
Initial value:
= {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,
4, 4, 4, 4, 5, 5, 5, 5, 0}
const unsigned DISTANCEBASE[30]
static
Initial value:
= {1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513,
769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577}
const unsigned DISTANCEEXTRA[30]
static
Initial value:
= {0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8,
8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13}
const unsigned CLCL_ORDER[NUM_CODE_LENGTH_CODES] = {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}
static
const size_t MAX_SUPPORTED_DEFLATE_LENGTH = 258
static
const unsigned HASH_NUM_VALUES = 65536
static
const unsigned HASH_BIT_MASK = 65535
static
const LodePNGCompressSettings lodepng_default_compress_settings = {2, 1, DEFAULT_WINDOWSIZE, 3, 128, 1, 0, 0, 0}
const LodePNGDecompressSettings lodepng_default_decompress_settings = {0, 0, 0, 0}
unsigned lodepng_crc32_table[256]
static
const unsigned ADAM7_IX[7] = { 0, 4, 0, 2, 0, 1, 0 }
static
const unsigned ADAM7_IY[7] = { 0, 0, 4, 0, 2, 0, 1 }
static
const unsigned ADAM7_DX[7] = { 8, 8, 4, 4, 2, 2, 1 }
static
const unsigned ADAM7_DY[7] = { 8, 8, 8, 4, 4, 2, 2 }
static