31 extern const char* LODEPNG_VERSION_STRING;
33 #define LODEPNG_NO_COMPILE_ENCODER
34 #define LODEPNG_NO_COMPILE_ERROR_TEXT
35 #define LODEPNG_COMPILE_ALLOCATORS
48 #ifndef LODEPNG_NO_COMPILE_ZLIB
49 #define LODEPNG_COMPILE_ZLIB
52 #ifndef LODEPNG_NO_COMPILE_PNG
53 #define LODEPNG_COMPILE_PNG
56 #ifndef LODEPNG_NO_COMPILE_DECODER
57 #define LODEPNG_COMPILE_DECODER
60 #ifndef LODEPNG_NO_COMPILE_ANCILLARY_CHUNKS
61 #define LODEPNG_COMPILE_ANCILLARY_CHUNKS
64 #ifndef LODEPNG_NO_COMPILE_ERROR_TEXT
65 #define LODEPNG_COMPILE_ERROR_TEXT
68 #ifdef LODEPNG_COMPILE_PNG
70 typedef enum LodePNGColorType
79 #ifdef LODEPNG_COMPILE_DECODER
95 unsigned lodepng_decode_memory(
unsigned char** out,
unsigned* w,
unsigned* h,
96 const unsigned char* in,
size_t insize,
97 LodePNGColorType colortype,
unsigned bitdepth);
100 unsigned lodepng_decode32(
unsigned char** out,
unsigned* w,
unsigned* h,
101 const unsigned char* in,
size_t insize);
104 unsigned lodepng_decode24(
unsigned char** out,
unsigned* w,
unsigned* h,
105 const unsigned char* in,
size_t insize);
110 #ifdef LODEPNG_COMPILE_ERROR_TEXT
112 const char* lodepng_error_text(
unsigned code);
115 #ifdef LODEPNG_COMPILE_DECODER
120 unsigned ignore_adler32;
123 unsigned (*custom_zlib)(
unsigned char**,
size_t*,
124 const unsigned char*, size_t,
129 unsigned (*custom_inflate)(
unsigned char**,
size_t*,
130 const unsigned char*, size_t,
133 const void* custom_context;
140 #ifdef LODEPNG_COMPILE_PNG
149 LodePNGColorType colortype;
165 unsigned char* palette;
179 unsigned key_defined;
194 unsigned char r,
unsigned char g,
unsigned char b,
unsigned char a);
219 size_t lodepng_get_raw_size(
unsigned w,
unsigned h,
const LodePNGColorMode* color);
221 #ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS
238 unsigned compression_method;
239 unsigned filter_method;
240 unsigned interlace_method;
243 #ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS
255 unsigned background_defined;
256 unsigned background_r;
257 unsigned background_g;
258 unsigned background_b;
284 char** itext_langtags;
285 char** itext_transkeys;
286 char** itext_strings;
289 unsigned time_defined;
293 unsigned phys_defined;
307 unsigned char* unknown_chunks_data[3];
308 size_t unknown_chunks_size[3];
318 #ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS
320 unsigned lodepng_add_text(
LodePNGInfo* info,
const char* key,
const char* str);
323 unsigned lodepng_add_itext(
LodePNGInfo* info,
const char* key,
const char* langtag,
324 const char* transkey,
const char* str);
338 unsigned lodepng_convert(
unsigned char* out,
const unsigned char* in,
340 unsigned w,
unsigned h);
342 #ifdef LODEPNG_COMPILE_DECODER
353 unsigned color_convert;
355 #ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS
356 unsigned read_text_chunks;
358 unsigned remember_unknown_chunks;
365 #if defined(LODEPNG_COMPILE_DECODER)
369 #ifdef LODEPNG_COMPILE_DECODER
383 #ifdef LODEPNG_COMPILE_DECODER
388 unsigned lodepng_decode(
unsigned char** out,
unsigned* w,
unsigned* h,
390 const unsigned char* in,
size_t insize);
397 unsigned lodepng_inspect(
unsigned* w,
unsigned* h,
399 const unsigned char* in,
size_t insize);
420 unsigned lodepng_chunk_length(
const unsigned char* chunk);
423 void lodepng_chunk_type(
char type[5],
const unsigned char* chunk);
426 unsigned char lodepng_chunk_type_equals(
const unsigned char* chunk,
const char* type);
429 unsigned char lodepng_chunk_ancillary(
const unsigned char* chunk);
432 unsigned char lodepng_chunk_private(
const unsigned char* chunk);
435 unsigned char lodepng_chunk_safetocopy(
const unsigned char* chunk);
438 unsigned char* lodepng_chunk_data(
unsigned char* chunk);
439 const unsigned char* lodepng_chunk_data_const(
const unsigned char* chunk);
442 unsigned lodepng_chunk_check_crc(
const unsigned char* chunk);
445 void lodepng_chunk_generate_crc(
unsigned char* chunk);
448 unsigned char* lodepng_chunk_next(
unsigned char* chunk);
449 const unsigned char* lodepng_chunk_next_const(
const unsigned char* chunk);
456 unsigned lodepng_chunk_append(
unsigned char** out,
size_t* outlength,
const unsigned char* chunk);
464 unsigned lodepng_chunk_create(
unsigned char** out,
size_t* outlength,
unsigned length,
465 const char* type,
const unsigned char* data);
469 unsigned lodepng_crc32(
const unsigned char* buf,
size_t len);
473 #ifdef LODEPNG_COMPILE_ZLIB
480 #ifdef LODEPNG_COMPILE_DECODER
482 unsigned lodepng_inflate(
unsigned char** out,
size_t* outsize,
483 const unsigned char* in,
size_t insize,
492 unsigned lodepng_zlib_decompress(
unsigned char** out,
size_t* outsize,
493 const unsigned char* in,
size_t insize,