32#include <Library/BaseLib.h>
33#include <Library/BaseMemoryLib.h>
34#include <Library/MemoryAllocationLib.h>
36#define LODEPNG_NO_COMPILE_DISK
37#define LODEPNG_NO_COMPILE_ANCILLARY_CHUNKS
38#define LODEPNG_NO_COMPILE_ERROR_TEXT
39#define LODEPNG_NO_COMPILE_ALLOCATORS
40#define LODEPNG_NO_COMPILE_CPP
52void* lodepng_malloc(
size_t size);
53void lodepng_free(
void* ptr);
70#ifndef LODEPNG_NO_COMPILE_ZLIB
72#define LODEPNG_COMPILE_ZLIB
76#ifndef LODEPNG_NO_COMPILE_PNG
78#define LODEPNG_COMPILE_PNG
82#ifndef LODEPNG_NO_COMPILE_DECODER
84#define LODEPNG_COMPILE_DECODER
88#ifndef LODEPNG_NO_COMPILE_ENCODER
90#define LODEPNG_COMPILE_ENCODER
94#ifndef LODEPNG_NO_COMPILE_DISK
96#define LODEPNG_COMPILE_DISK
100#ifndef LODEPNG_NO_COMPILE_ANCILLARY_CHUNKS
103#define LODEPNG_COMPILE_ANCILLARY_CHUNKS
107#ifndef LODEPNG_NO_COMPILE_ERROR_TEXT
110#define LODEPNG_COMPILE_ERROR_TEXT
116#ifndef LODEPNG_NO_COMPILE_ALLOCATORS
119#define LODEPNG_COMPILE_ALLOCATORS
127#ifndef LODEPNG_NO_COMPILE_CRC
130#define LODEPNG_COMPILE_CRC
135#ifndef LODEPNG_NO_COMPILE_CPP
138#define LODEPNG_COMPILE_CPP
142#ifdef LODEPNG_COMPILE_CPP
147#ifdef LODEPNG_COMPILE_PNG
163#ifdef LODEPNG_COMPILE_DECODER
180 const unsigned char* in,
size_t insize,
185 const unsigned char* in,
size_t insize);
189 const unsigned char* in,
size_t insize);
191#ifdef LODEPNG_COMPILE_DISK
199 const char* filename,
207 const char* filename);
214 const char* filename);
219#ifdef LODEPNG_COMPILE_ENCODER
237 const unsigned char* image,
unsigned w,
unsigned h,
242 const unsigned char* image,
unsigned w,
unsigned h);
246 const unsigned char* image,
unsigned w,
unsigned h);
248#ifdef LODEPNG_COMPILE_DISK
258 const unsigned char* image,
unsigned w,
unsigned h,
266 const unsigned char* image,
unsigned w,
unsigned h);
273 const unsigned char* image,
unsigned w,
unsigned h);
278#ifdef LODEPNG_COMPILE_CPP
280#ifdef LODEPNG_COMPILE_DECODER
283unsigned decode(std::vector<unsigned char>& out,
unsigned& w,
unsigned& h,
284 const unsigned char* in,
size_t insize,
286unsigned decode(std::vector<unsigned char>& out,
unsigned& w,
unsigned& h,
287 const std::vector<unsigned char>& in,
289#ifdef LODEPNG_COMPILE_DISK
297unsigned decode(std::vector<unsigned char>& out,
unsigned& w,
unsigned& h,
298 const std::string& filename,
303#ifdef LODEPNG_COMPILE_ENCODER
306unsigned encode(std::vector<unsigned char>& out,
307 const unsigned char* in,
unsigned w,
unsigned h,
309unsigned encode(std::vector<unsigned char>& out,
310 const std::vector<unsigned char>& in,
unsigned w,
unsigned h,
312#ifdef LODEPNG_COMPILE_DISK
322unsigned encode(
const std::string& filename,
323 const unsigned char* in,
unsigned w,
unsigned h,
325unsigned encode(
const std::string& filename,
326 const std::vector<unsigned char>& in,
unsigned w,
unsigned h,
334#ifdef LODEPNG_COMPILE_ERROR_TEXT
339#ifdef LODEPNG_COMPILE_DECODER
357 const unsigned char*,
size_t,
363 const unsigned char*,
size_t,
373#ifdef LODEPNG_COMPILE_ENCODER
390 const unsigned char*,
size_t,
396 const unsigned char*,
size_t,
406#ifdef LODEPNG_COMPILE_PNG
465 unsigned char r,
unsigned char g,
unsigned char b,
unsigned char a);
492#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS
512#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS
725#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS
730 const char* transkey,
const char* str);
751 unsigned w,
unsigned h);
753#ifdef LODEPNG_COMPILE_DECODER
772#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS
793#ifdef LODEPNG_COMPILE_ENCODER
842 const unsigned char* image,
unsigned w,
unsigned h,
872#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS
884#if defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER)
887#ifdef LODEPNG_COMPILE_DECODER
890#ifdef LODEPNG_COMPILE_ENCODER
904#ifdef LODEPNG_COMPILE_DECODER
909unsigned lodepng_decode(
unsigned char** out,
unsigned* w,
unsigned* h,
911 const unsigned char* in,
size_t insize);
920 const unsigned char* in,
size_t insize);
936 const unsigned char* in,
size_t insize);
938#ifdef LODEPNG_COMPILE_ENCODER
941 const unsigned char* image,
unsigned w,
unsigned h,
1024unsigned lodepng_chunk_append(
unsigned char** out,
size_t* outsize,
const unsigned char* chunk);
1033 const char*
type,
const unsigned char* data);
1037unsigned lodepng_crc32(
const unsigned char* buf,
size_t len);
1041#ifdef LODEPNG_COMPILE_ZLIB
1048#ifdef LODEPNG_COMPILE_DECODER
1051 const unsigned char* in,
size_t insize,
1061 const unsigned char* in,
size_t insize,
1065#ifdef LODEPNG_COMPILE_ENCODER
1074 const unsigned char* in,
size_t insize,
1082 size_t numcodes,
unsigned maxbitlen);
1086 const unsigned char* in,
size_t insize,
1092#ifdef LODEPNG_COMPILE_DISK
1104unsigned lodepng_load_file(
unsigned char** out,
size_t* outsize,
const char* filename);
1117unsigned lodepng_save_file(
const unsigned char* buffer,
size_t buffersize,
const char* filename);
1120#ifdef LODEPNG_COMPILE_CPP
1123#ifdef LODEPNG_COMPILE_PNG
1127 State(
const State& other);
1129 State& operator=(
const State& other);
1132#ifdef LODEPNG_COMPILE_DECODER
1134unsigned decode(std::vector<unsigned char>& out,
unsigned& w,
unsigned& h,
1136 const unsigned char* in,
size_t insize);
1137unsigned decode(std::vector<unsigned char>& out,
unsigned& w,
unsigned& h,
1139 const std::vector<unsigned char>& in);
1142#ifdef LODEPNG_COMPILE_ENCODER
1144unsigned encode(std::vector<unsigned char>& out,
1145 const unsigned char* in,
unsigned w,
unsigned h,
1147unsigned encode(std::vector<unsigned char>& out,
1148 const std::vector<unsigned char>& in,
unsigned w,
unsigned h,
1152#ifdef LODEPNG_COMPILE_DISK
1160unsigned load_file(std::vector<unsigned char>& buffer,
const std::string& filename);
1169unsigned save_file(
const std::vector<unsigned char>& buffer,
const std::string& filename);
1173#ifdef LODEPNG_COMPILE_ZLIB
1174#ifdef LODEPNG_COMPILE_DECODER
1176unsigned decompress(std::vector<unsigned char>& out,
const unsigned char* in,
size_t insize,
1180unsigned decompress(std::vector<unsigned char>& out,
const std::vector<unsigned char>& in,
1184#ifdef LODEPNG_COMPILE_ENCODER
1186unsigned compress(std::vector<unsigned char>& out,
const unsigned char* in,
size_t insize,
1190unsigned compress(std::vector<unsigned char>& out,
const std::vector<unsigned char>& in,
int ZEXPORT compress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)
const LodePNGCompressSettings lodepng_default_compress_settings
const LodePNGDecompressSettings lodepng_default_decompress_settings
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_chunk_check_crc(const unsigned char *chunk)
unsigned lodepng_inspect_chunk(LodePNGState *state, size_t pos, const unsigned char *in, size_t insize)
unsigned lodepng_palette_add(LodePNGColorMode *info, unsigned char r, unsigned char g, unsigned char b, unsigned char a)
struct LodePNGDecoderSettings LodePNGDecoderSettings
const LodePNGCompressSettings lodepng_default_compress_settings
unsigned lodepng_inspect(unsigned *w, unsigned *h, LodePNGState *state, const unsigned char *in, size_t insize)
unsigned lodepng_add_text(LodePNGInfo *info, const char *key, const char *str)
unsigned lodepng_info_copy(LodePNGInfo *dest, const LodePNGInfo *source)
unsigned lodepng_crc32(const unsigned char *buf, size_t len)
void lodepng_clear_icc(LodePNGInfo *info)
unsigned char * lodepng_chunk_next(unsigned char *chunk, unsigned char *end)
unsigned char * lodepng_chunk_find(unsigned char *chunk, unsigned char *end, const char type[5])
struct LodePNGState LodePNGState
unsigned lodepng_chunk_create(unsigned char **out, size_t *outsize, size_t length, const char *type, const unsigned char *data)
unsigned char lodepng_chunk_private(const unsigned char *chunk)
void lodepng_palette_clear(LodePNGColorMode *info)
struct LodePNGInfo LodePNGInfo
void lodepng_chunk_type(char type[5], const unsigned char *chunk)
unsigned char lodepng_chunk_safetocopy(const unsigned char *chunk)
unsigned lodepng_decode32_file(unsigned char **out, unsigned *w, unsigned *h, const char *filename)
unsigned lodepng_encode24(unsigned char **out, size_t *outsize, const unsigned char *image, unsigned w, unsigned h)
LodePNGColorMode lodepng_color_mode_make(LodePNGColorType colortype, unsigned bitdepth)
struct LodePNGTime LodePNGTime
unsigned lodepng_has_palette_alpha(const LodePNGColorMode *info)
unsigned lodepng_encode24_file(const char *filename, const unsigned char *image, unsigned w, unsigned h)
unsigned char lodepng_chunk_type_equals(const unsigned char *chunk, const char *type)
void lodepng_clear_text(LodePNGInfo *info)
size_t lodepng_get_raw_size(unsigned w, unsigned h, const LodePNGColorMode *color)
const unsigned char * lodepng_chunk_data_const(const unsigned char *chunk)
void lodepng_chunk_generate_crc(unsigned char *chunk)
unsigned char * lodepng_chunk_data(unsigned char *chunk)
unsigned lodepng_decode_memory(unsigned char **out, unsigned *w, unsigned *h, const unsigned char *in, size_t insize, LodePNGColorType colortype, unsigned bitdepth)
void lodepng_color_mode_init(LodePNGColorMode *info)
unsigned lodepng_decode32(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_deflate(unsigned char **out, size_t *outsize, const unsigned char *in, size_t insize, const LodePNGCompressSettings *settings)
void lodepng_compress_settings_init(LodePNGCompressSettings *settings)
unsigned lodepng_decode(unsigned char **out, unsigned *w, unsigned *h, LodePNGState *state, const unsigned char *in, size_t insize)
unsigned lodepng_zlib_compress(unsigned char **out, size_t *outsize, const unsigned char *in, size_t insize, const LodePNGCompressSettings *settings)
void lodepng_state_cleanup(LodePNGState *state)
unsigned lodepng_encode32(unsigned char **out, size_t *outsize, const unsigned char *image, unsigned w, unsigned h)
unsigned lodepng_color_mode_copy(LodePNGColorMode *dest, const LodePNGColorMode *source)
void lodepng_color_stats_init(LodePNGColorStats *stats)
unsigned lodepng_huffman_code_lengths(unsigned *lengths, const unsigned *frequencies, size_t numcodes, unsigned maxbitlen)
struct LodePNGColorMode LodePNGColorMode
unsigned lodepng_get_bpp(const LodePNGColorMode *info)
unsigned lodepng_save_file(const unsigned char *buffer, size_t buffersize, const char *filename)
void lodepng_encoder_settings_init(LodePNGEncoderSettings *settings)
void lodepng_state_copy(LodePNGState *dest, const LodePNGState *source)
const unsigned char * lodepng_chunk_next_const(const unsigned char *chunk, const unsigned char *end)
const char * LODEPNG_VERSION_STRING
unsigned lodepng_encode(unsigned char **out, size_t *outsize, const unsigned char *image, unsigned w, unsigned h, LodePNGState *state)
void lodepng_decoder_settings_init(LodePNGDecoderSettings *settings)
unsigned lodepng_can_have_alpha(const LodePNGColorMode *info)
unsigned lodepng_inflate(unsigned char **out, size_t *outsize, const unsigned char *in, size_t insize, const LodePNGDecompressSettings *settings)
unsigned lodepng_is_alpha_type(const LodePNGColorMode *info)
const LodePNGDecompressSettings lodepng_default_decompress_settings
unsigned char lodepng_chunk_ancillary(const unsigned char *chunk)
unsigned lodepng_add_itext(LodePNGInfo *info, const char *key, const char *langtag, const char *transkey, const char *str)
unsigned lodepng_decode24_file(unsigned char **out, unsigned *w, unsigned *h, const char *filename)
void lodepng_color_mode_cleanup(LodePNGColorMode *info)
void lodepng_decompress_settings_init(LodePNGDecompressSettings *settings)
unsigned lodepng_get_channels(const LodePNGColorMode *info)
unsigned lodepng_convert(unsigned char *out, const unsigned char *in, const LodePNGColorMode *mode_out, const LodePNGColorMode *mode_in, unsigned w, unsigned h)
struct LodePNGEncoderSettings LodePNGEncoderSettings
unsigned lodepng_chunk_append(unsigned char **out, size_t *outsize, const unsigned char *chunk)
const char * lodepng_error_text(unsigned code)
struct LodePNGColorStats LodePNGColorStats
void lodepng_info_cleanup(LodePNGInfo *info)
unsigned lodepng_chunk_length(const unsigned char *chunk)
unsigned lodepng_decode24(unsigned char **out, unsigned *w, unsigned *h, const unsigned char *in, size_t insize)
unsigned lodepng_is_palette_type(const LodePNGColorMode *info)
unsigned lodepng_encode_memory(unsigned char **out, size_t *outsize, const unsigned char *image, unsigned w, unsigned h, LodePNGColorType colortype, unsigned bitdepth)
unsigned lodepng_is_greyscale_type(const LodePNGColorMode *info)
void lodepng_state_init(LodePNGState *state)
void lodepng_info_init(LodePNGInfo *info)
unsigned lodepng_zlib_decompress(unsigned char **out, size_t *outsize, const unsigned char *in, size_t insize, const LodePNGDecompressSettings *settings)
const unsigned char * lodepng_chunk_find_const(const unsigned char *chunk, const unsigned char *end, const char type[5])
unsigned lodepng_compute_color_stats(LodePNGColorStats *stats, const unsigned char *image, unsigned w, unsigned h, const LodePNGColorMode *mode_in)
void lodepng_clear_itext(LodePNGInfo *info)
unsigned lodepng_set_icc(LodePNGInfo *info, const char *name, const unsigned char *profile, unsigned profile_size)
unsigned lodepng_load_file(unsigned char **out, size_t *outsize, const char *filename)
LodePNGColorType colortype
unsigned char palette[1024]
unsigned(* custom_zlib)(unsigned char **, size_t *, const unsigned char *, size_t, const LodePNGCompressSettings *)
unsigned(* custom_deflate)(unsigned char **, size_t *, const unsigned char *, size_t, const LodePNGCompressSettings *)
const void * custom_context
unsigned remember_unknown_chunks
LodePNGDecompressSettings zlibsettings
unsigned read_text_chunks
unsigned(* custom_inflate)(unsigned char **, size_t *, const unsigned char *, size_t, const LodePNGDecompressSettings *)
const void * custom_context
unsigned(* custom_zlib)(unsigned char **, size_t *, const unsigned char *, size_t, const LodePNGDecompressSettings *)
unsigned filter_palette_zero
LodePNGCompressSettings zlibsettings
const unsigned char * predefined_filters
LodePNGFilterStrategy filter_strategy
unsigned text_compression
unsigned iccp_profile_size
size_t unknown_chunks_size[3]
unsigned compression_method
unsigned char * iccp_profile
unsigned interlace_method
unsigned char * unknown_chunks_data[3]
unsigned background_defined
LodePNGColorMode info_raw
LodePNGDecoderSettings decoder
LodePNGEncoderSettings encoder