8#ifndef FPNG_TRAIN_HUFFMAN_TABLES
10 #define FPNG_TRAIN_HUFFMAN_TABLES (0)
48 bool fpng_encode_image_to_memory(
const void* pImage, uint32_t w, uint32_t h, uint32_t num_chans, std::vector<uint8_t>& out_buf, uint32_t flags = 0);
52 bool fpng_encode_image_to_file(
const char* pFilename,
const void* pImage, uint32_t w, uint32_t h, uint32_t num_chans, uint32_t flags = 0);
91 int fpng_get_info(
const void* pImage, uint32_t image_size, uint32_t& width, uint32_t& height, uint32_t& channels_in_file);
108 int fpng_decode_memory(
const void* pImage, uint32_t image_size, std::vector<uint8_t>& out, uint32_t& width, uint32_t& height, uint32_t& channels_in_file, uint32_t desired_channels);
111 int fpng_decode_file(
const char* pFilename, std::vector<uint8_t>& out, uint32_t& width, uint32_t& height, uint32_t& channels_in_file, uint32_t desired_channels);
116#if FPNG_TRAIN_HUFFMAN_TABLES
117 const uint32_t HUFF_COUNTS_SIZE = 288;
118 extern uint64_t g_huff_counts[HUFF_COUNTS_SIZE];
119 bool create_dynamic_block_prefix(uint64_t* pFreq, uint32_t num_chans, std::vector<uint8_t>& prefix, uint64_t& bit_buf,
int& bit_buf_size, uint32_t *pCodes, uint8_t *pCodesizes);
bool fpng_encode_image_to_memory(const void *pImage, uint32_t w, uint32_t h, uint32_t num_chans, std::vector< uint8_t > &out_buf, uint32_t flags=0)
uint32_t fpng_crc32(const void *pData, size_t size, uint32_t prev_crc32=FPNG_CRC32_INIT)
const uint32_t FPNG_ADLER32_INIT
Definition fpng.h:30
const uint32_t FPNG_CRC32_INIT
Definition fpng.h:26
int fpng_decode_memory(const void *pImage, uint32_t image_size, std::vector< uint8_t > &out, uint32_t &width, uint32_t &height, uint32_t &channels_in_file, uint32_t desired_channels)
@ FPNG_FORCE_UNCOMPRESSED
Definition fpng.h:41
@ FPNG_ENCODE_SLOWER
Definition fpng.h:38
@ FPNG_DECODE_FILE_SEEK_FAILED
Definition fpng.h:76
@ FPNG_DECODE_INVALID_ARG
Definition fpng.h:63
@ FPNG_DECODE_FILE_READ_FAILED
Definition fpng.h:75
@ FPNG_DECODE_FAILED_DIMENSIONS_TOO_LARGE
Definition fpng.h:68
@ FPNG_DECODE_FILE_TOO_LARGE
Definition fpng.h:74
@ FPNG_DECODE_SUCCESS
Definition fpng.h:59
@ FPNG_DECODE_FAILED_CHUNK_PARSING
Definition fpng.h:69
@ FPNG_DECODE_NOT_FPNG
Definition fpng.h:61
@ FPNG_DECODE_FAILED_NOT_PNG
Definition fpng.h:65
@ FPNG_DECODE_FAILED_INVALID_DIMENSIONS
Definition fpng.h:67
@ FPNG_DECODE_FAILED_INVALID_IDAT
Definition fpng.h:70
@ FPNG_DECODE_FAILED_HEADER_CRC32
Definition fpng.h:66
@ FPNG_DECODE_FILE_OPEN_FAILED
Definition fpng.h:73
bool fpng_encode_image_to_file(const char *pFilename, const void *pImage, uint32_t w, uint32_t h, uint32_t num_chans, uint32_t flags=0)
uint32_t fpng_adler32(const void *pData, size_t size, uint32_t adler=FPNG_ADLER32_INIT)
bool fpng_cpu_supports_sse41()
int fpng_get_info(const void *pImage, uint32_t image_size, uint32_t &width, uint32_t &height, uint32_t &channels_in_file)
int fpng_decode_file(const char *pFilename, std::vector< uint8_t > &out, uint32_t &width, uint32_t &height, uint32_t &channels_in_file, uint32_t desired_channels)