From 057e474a62c1815e015c2bc5376e6f0790ddf2f7 Mon Sep 17 00:00:00 2001 From: "Huabing.Xu" Date: Thu, 28 Jul 2016 17:56:22 +0800 Subject: [PATCH] add image lib back for ios --- ios/include/jpeg/jconfig.h | 54 + ios/include/jpeg/jerror.h | 304 +++ ios/include/jpeg/jmorecfg.h | 390 ++++ ios/include/jpeg/jpeglib.h | 1173 ++++++++++++ ios/include/png/png.h | 3282 ++++++++++++++++++++++++++++++++ ios/include/png/pngconf.h | 644 +++++++ ios/include/png/pnglibconf.h | 208 ++ ios/include/tiff/tiff.h | 678 +++++++ ios/include/tiff/tiffconf-32.h | 128 ++ ios/include/tiff/tiffconf-64.h | 128 ++ ios/include/tiff/tiffconf.h | 5 + ios/include/tiff/tiffio.h | 557 ++++++ ios/include/tiff/tiffvers.h | 9 + ios/include/webp/decode.h | 454 +++++ ios/include/webp/encode.h | 463 +++++ ios/include/webp/types.h | 45 + ios/libs/libjpeg.a | Bin 0 -> 1163704 bytes ios/libs/libpng.a | Bin 0 -> 1050704 bytes ios/libs/libtiff.a | Bin 0 -> 1795304 bytes ios/libs/libwebp.a | Bin 0 -> 1929164 bytes 20 files changed, 8522 insertions(+) create mode 100644 ios/include/jpeg/jconfig.h create mode 100644 ios/include/jpeg/jerror.h create mode 100644 ios/include/jpeg/jmorecfg.h create mode 100644 ios/include/jpeg/jpeglib.h create mode 100755 ios/include/png/png.h create mode 100755 ios/include/png/pngconf.h create mode 100755 ios/include/png/pnglibconf.h create mode 100644 ios/include/tiff/tiff.h create mode 100644 ios/include/tiff/tiffconf-32.h create mode 100644 ios/include/tiff/tiffconf-64.h create mode 100644 ios/include/tiff/tiffconf.h create mode 100644 ios/include/tiff/tiffio.h create mode 100644 ios/include/tiff/tiffvers.h create mode 100755 ios/include/webp/decode.h create mode 100755 ios/include/webp/encode.h create mode 100755 ios/include/webp/types.h create mode 100644 ios/libs/libjpeg.a create mode 100755 ios/libs/libpng.a create mode 100644 ios/libs/libtiff.a create mode 100755 ios/libs/libwebp.a diff --git a/ios/include/jpeg/jconfig.h b/ios/include/jpeg/jconfig.h new file mode 100644 index 00000000..966b1d51 --- /dev/null +++ b/ios/include/jpeg/jconfig.h @@ -0,0 +1,54 @@ +/* jconfig.h. Generated from jconfig.cfg by configure. */ +/* jconfig.cfg --- source file edited by configure script */ +/* see jconfig.txt for explanations */ + +#define HAVE_PROTOTYPES 1 +#define HAVE_UNSIGNED_CHAR 1 +#define HAVE_UNSIGNED_SHORT 1 +/* #undef void */ +/* #undef const */ +/* #undef CHAR_IS_UNSIGNED */ +#define HAVE_STDDEF_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_LOCALE_H 1 +/* #undef NEED_BSD_STRINGS */ +/* #undef NEED_SYS_TYPES_H */ +/* #undef NEED_FAR_POINTERS */ +/* #undef NEED_SHORT_EXTERNAL_NAMES */ +/* Define this if you get warnings about undefined structures. */ +/* #undef INCOMPLETE_TYPES_BROKEN */ + +/* Define "boolean" as unsigned char, not int, on Windows systems. */ +#ifdef _WIN32 +#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ +typedef unsigned char boolean; +#endif +#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ +#endif + +#ifdef JPEG_INTERNALS + +/* #undef RIGHT_SHIFT_IS_UNSIGNED */ +#define INLINE __inline__ +/* These are for configuring the JPEG memory manager. */ +/* #undef DEFAULT_MAX_MEM */ +/* #undef NO_MKTEMP */ + +#endif /* JPEG_INTERNALS */ + +#ifdef JPEG_CJPEG_DJPEG + +#define BMP_SUPPORTED /* BMP image file format */ +#define GIF_SUPPORTED /* GIF image file format */ +#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ +/* #undef RLE_SUPPORTED */ +#define TARGA_SUPPORTED /* Targa image file format */ + +/* #undef TWO_FILE_COMMANDLINE */ +/* #undef NEED_SIGNAL_CATCHER */ +/* #undef DONT_USE_B_MODE */ + +/* Define this if you want percent-done progress reports from cjpeg/djpeg. */ +/* #undef PROGRESS_REPORT */ + +#endif /* JPEG_CJPEG_DJPEG */ diff --git a/ios/include/jpeg/jerror.h b/ios/include/jpeg/jerror.h new file mode 100644 index 00000000..a4b661f7 --- /dev/null +++ b/ios/include/jpeg/jerror.h @@ -0,0 +1,304 @@ +/* + * jerror.h + * + * Copyright (C) 1994-1997, Thomas G. Lane. + * Modified 1997-2012 by Guido Vollbeding. + * This file is part of the Independent JPEG Group's software. + * For conditions of distribution and use, see the accompanying README file. + * + * This file defines the error and message codes for the JPEG library. + * Edit this file to add new codes, or to translate the message strings to + * some other language. + * A set of error-reporting macros are defined too. Some applications using + * the JPEG library may wish to include this file to get the error codes + * and/or the macros. + */ + +/* + * To define the enum list of message codes, include this file without + * defining macro JMESSAGE. To create a message string table, include it + * again with a suitable JMESSAGE definition (see jerror.c for an example). + */ +#ifndef JMESSAGE +#ifndef JERROR_H +/* First time through, define the enum list */ +#define JMAKE_ENUM_LIST +#else +/* Repeated inclusions of this file are no-ops unless JMESSAGE is defined */ +#define JMESSAGE(code,string) +#endif /* JERROR_H */ +#endif /* JMESSAGE */ + +#ifdef JMAKE_ENUM_LIST + +typedef enum { + +#define JMESSAGE(code,string) code , + +#endif /* JMAKE_ENUM_LIST */ + +JMESSAGE(JMSG_NOMESSAGE, "Bogus message code %d") /* Must be first entry! */ + +/* For maintenance convenience, list is alphabetical by message code name */ +JMESSAGE(JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix") +JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix") +JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode") +JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS") +JMESSAGE(JERR_BAD_CROP_SPEC, "Invalid crop request") +JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range") +JMESSAGE(JERR_BAD_DCTSIZE, "DCT scaled block size %dx%d not supported") +JMESSAGE(JERR_BAD_DROP_SAMPLING, + "Component index %d: mismatching sampling ratio %d:%d, %d:%d, %c") +JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition") +JMESSAGE(JERR_BAD_IN_COLORSPACE, "Bogus input colorspace") +JMESSAGE(JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace") +JMESSAGE(JERR_BAD_LENGTH, "Bogus marker length") +JMESSAGE(JERR_BAD_LIB_VERSION, + "Wrong JPEG library version: library is %d, caller expects %d") +JMESSAGE(JERR_BAD_MCU_SIZE, "Sampling factors too large for interleaved scan") +JMESSAGE(JERR_BAD_POOL_ID, "Invalid memory pool code %d") +JMESSAGE(JERR_BAD_PRECISION, "Unsupported JPEG data precision %d") +JMESSAGE(JERR_BAD_PROGRESSION, + "Invalid progressive parameters Ss=%d Se=%d Ah=%d Al=%d") +JMESSAGE(JERR_BAD_PROG_SCRIPT, + "Invalid progressive parameters at scan script entry %d") +JMESSAGE(JERR_BAD_SAMPLING, "Bogus sampling factors") +JMESSAGE(JERR_BAD_SCAN_SCRIPT, "Invalid scan script at entry %d") +JMESSAGE(JERR_BAD_STATE, "Improper call to JPEG library in state %d") +JMESSAGE(JERR_BAD_STRUCT_SIZE, + "JPEG parameter struct mismatch: library thinks size is %u, caller expects %u") +JMESSAGE(JERR_BAD_VIRTUAL_ACCESS, "Bogus virtual array access") +JMESSAGE(JERR_BUFFER_SIZE, "Buffer passed to JPEG library is too small") +JMESSAGE(JERR_CANT_SUSPEND, "Suspension not allowed here") +JMESSAGE(JERR_CCIR601_NOTIMPL, "CCIR601 sampling not implemented yet") +JMESSAGE(JERR_COMPONENT_COUNT, "Too many color components: %d, max %d") +JMESSAGE(JERR_CONVERSION_NOTIMPL, "Unsupported color conversion request") +JMESSAGE(JERR_DAC_INDEX, "Bogus DAC index %d") +JMESSAGE(JERR_DAC_VALUE, "Bogus DAC value 0x%x") +JMESSAGE(JERR_DHT_INDEX, "Bogus DHT index %d") +JMESSAGE(JERR_DQT_INDEX, "Bogus DQT index %d") +JMESSAGE(JERR_EMPTY_IMAGE, "Empty JPEG image (DNL not supported)") +JMESSAGE(JERR_EMS_READ, "Read from EMS failed") +JMESSAGE(JERR_EMS_WRITE, "Write to EMS failed") +JMESSAGE(JERR_EOI_EXPECTED, "Didn't expect more than one scan") +JMESSAGE(JERR_FILE_READ, "Input file read error") +JMESSAGE(JERR_FILE_WRITE, "Output file write error --- out of disk space?") +JMESSAGE(JERR_FRACT_SAMPLE_NOTIMPL, "Fractional sampling not implemented yet") +JMESSAGE(JERR_HUFF_CLEN_OVERFLOW, "Huffman code size table overflow") +JMESSAGE(JERR_HUFF_MISSING_CODE, "Missing Huffman code table entry") +JMESSAGE(JERR_IMAGE_TOO_BIG, "Maximum supported image dimension is %u pixels") +JMESSAGE(JERR_INPUT_EMPTY, "Empty input file") +JMESSAGE(JERR_INPUT_EOF, "Premature end of input file") +JMESSAGE(JERR_MISMATCHED_QUANT_TABLE, + "Cannot transcode due to multiple use of quantization table %d") +JMESSAGE(JERR_MISSING_DATA, "Scan script does not transmit all data") +JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change") +JMESSAGE(JERR_NOTIMPL, "Not implemented yet") +JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time") +JMESSAGE(JERR_NO_ARITH_TABLE, "Arithmetic table 0x%02x was not defined") +JMESSAGE(JERR_NO_BACKING_STORE, "Backing store not supported") +JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined") +JMESSAGE(JERR_NO_IMAGE, "JPEG datastream contains no image") +JMESSAGE(JERR_NO_QUANT_TABLE, "Quantization table 0x%02x was not defined") +JMESSAGE(JERR_NO_SOI, "Not a JPEG file: starts with 0x%02x 0x%02x") +JMESSAGE(JERR_OUT_OF_MEMORY, "Insufficient memory (case %d)") +JMESSAGE(JERR_QUANT_COMPONENTS, + "Cannot quantize more than %d color components") +JMESSAGE(JERR_QUANT_FEW_COLORS, "Cannot quantize to fewer than %d colors") +JMESSAGE(JERR_QUANT_MANY_COLORS, "Cannot quantize to more than %d colors") +JMESSAGE(JERR_SOF_BEFORE, "Invalid JPEG file structure: %s before SOF") +JMESSAGE(JERR_SOF_DUPLICATE, "Invalid JPEG file structure: two SOF markers") +JMESSAGE(JERR_SOF_NO_SOS, "Invalid JPEG file structure: missing SOS marker") +JMESSAGE(JERR_SOF_UNSUPPORTED, "Unsupported JPEG process: SOF type 0x%02x") +JMESSAGE(JERR_SOI_DUPLICATE, "Invalid JPEG file structure: two SOI markers") +JMESSAGE(JERR_TFILE_CREATE, "Failed to create temporary file %s") +JMESSAGE(JERR_TFILE_READ, "Read failed on temporary file") +JMESSAGE(JERR_TFILE_SEEK, "Seek failed on temporary file") +JMESSAGE(JERR_TFILE_WRITE, + "Write failed on temporary file --- out of disk space?") +JMESSAGE(JERR_TOO_LITTLE_DATA, "Application transferred too few scanlines") +JMESSAGE(JERR_UNKNOWN_MARKER, "Unsupported marker type 0x%02x") +JMESSAGE(JERR_VIRTUAL_BUG, "Virtual array controller messed up") +JMESSAGE(JERR_WIDTH_OVERFLOW, "Image too wide for this implementation") +JMESSAGE(JERR_XMS_READ, "Read from XMS failed") +JMESSAGE(JERR_XMS_WRITE, "Write to XMS failed") +JMESSAGE(JMSG_COPYRIGHT, JCOPYRIGHT) +JMESSAGE(JMSG_VERSION, JVERSION) +JMESSAGE(JTRC_16BIT_TABLES, + "Caution: quantization tables are too coarse for baseline JPEG") +JMESSAGE(JTRC_ADOBE, + "Adobe APP14 marker: version %d, flags 0x%04x 0x%04x, transform %d") +JMESSAGE(JTRC_APP0, "Unknown APP0 marker (not JFIF), length %u") +JMESSAGE(JTRC_APP14, "Unknown APP14 marker (not Adobe), length %u") +JMESSAGE(JTRC_DAC, "Define Arithmetic Table 0x%02x: 0x%02x") +JMESSAGE(JTRC_DHT, "Define Huffman Table 0x%02x") +JMESSAGE(JTRC_DQT, "Define Quantization Table %d precision %d") +JMESSAGE(JTRC_DRI, "Define Restart Interval %u") +JMESSAGE(JTRC_EMS_CLOSE, "Freed EMS handle %u") +JMESSAGE(JTRC_EMS_OPEN, "Obtained EMS handle %u") +JMESSAGE(JTRC_EOI, "End Of Image") +JMESSAGE(JTRC_HUFFBITS, " %3d %3d %3d %3d %3d %3d %3d %3d") +JMESSAGE(JTRC_JFIF, "JFIF APP0 marker: version %d.%02d, density %dx%d %d") +JMESSAGE(JTRC_JFIF_BADTHUMBNAILSIZE, + "Warning: thumbnail image size does not match data length %u") +JMESSAGE(JTRC_JFIF_EXTENSION, + "JFIF extension marker: type 0x%02x, length %u") +JMESSAGE(JTRC_JFIF_THUMBNAIL, " with %d x %d thumbnail image") +JMESSAGE(JTRC_MISC_MARKER, "Miscellaneous marker 0x%02x, length %u") +JMESSAGE(JTRC_PARMLESS_MARKER, "Unexpected marker 0x%02x") +JMESSAGE(JTRC_QUANTVALS, " %4u %4u %4u %4u %4u %4u %4u %4u") +JMESSAGE(JTRC_QUANT_3_NCOLORS, "Quantizing to %d = %d*%d*%d colors") +JMESSAGE(JTRC_QUANT_NCOLORS, "Quantizing to %d colors") +JMESSAGE(JTRC_QUANT_SELECTED, "Selected %d colors for quantization") +JMESSAGE(JTRC_RECOVERY_ACTION, "At marker 0x%02x, recovery action %d") +JMESSAGE(JTRC_RST, "RST%d") +JMESSAGE(JTRC_SMOOTH_NOTIMPL, + "Smoothing not supported with nonstandard sampling ratios") +JMESSAGE(JTRC_SOF, "Start Of Frame 0x%02x: width=%u, height=%u, components=%d") +JMESSAGE(JTRC_SOF_COMPONENT, " Component %d: %dhx%dv q=%d") +JMESSAGE(JTRC_SOI, "Start of Image") +JMESSAGE(JTRC_SOS, "Start Of Scan: %d components") +JMESSAGE(JTRC_SOS_COMPONENT, " Component %d: dc=%d ac=%d") +JMESSAGE(JTRC_SOS_PARAMS, " Ss=%d, Se=%d, Ah=%d, Al=%d") +JMESSAGE(JTRC_TFILE_CLOSE, "Closed temporary file %s") +JMESSAGE(JTRC_TFILE_OPEN, "Opened temporary file %s") +JMESSAGE(JTRC_THUMB_JPEG, + "JFIF extension marker: JPEG-compressed thumbnail image, length %u") +JMESSAGE(JTRC_THUMB_PALETTE, + "JFIF extension marker: palette thumbnail image, length %u") +JMESSAGE(JTRC_THUMB_RGB, + "JFIF extension marker: RGB thumbnail image, length %u") +JMESSAGE(JTRC_UNKNOWN_IDS, + "Unrecognized component IDs %d %d %d, assuming YCbCr") +JMESSAGE(JTRC_XMS_CLOSE, "Freed XMS handle %u") +JMESSAGE(JTRC_XMS_OPEN, "Obtained XMS handle %u") +JMESSAGE(JWRN_ADOBE_XFORM, "Unknown Adobe color transform code %d") +JMESSAGE(JWRN_ARITH_BAD_CODE, "Corrupt JPEG data: bad arithmetic code") +JMESSAGE(JWRN_BOGUS_PROGRESSION, + "Inconsistent progression sequence for component %d coefficient %d") +JMESSAGE(JWRN_EXTRANEOUS_DATA, + "Corrupt JPEG data: %u extraneous bytes before marker 0x%02x") +JMESSAGE(JWRN_HIT_MARKER, "Corrupt JPEG data: premature end of data segment") +JMESSAGE(JWRN_HUFF_BAD_CODE, "Corrupt JPEG data: bad Huffman code") +JMESSAGE(JWRN_JFIF_MAJOR, "Warning: unknown JFIF revision number %d.%02d") +JMESSAGE(JWRN_JPEG_EOF, "Premature end of JPEG file") +JMESSAGE(JWRN_MUST_RESYNC, + "Corrupt JPEG data: found marker 0x%02x instead of RST%d") +JMESSAGE(JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG") +JMESSAGE(JWRN_TOO_MUCH_DATA, "Application transferred too many scanlines") + +#ifdef JMAKE_ENUM_LIST + + JMSG_LASTMSGCODE +} J_MESSAGE_CODE; + +#undef JMAKE_ENUM_LIST +#endif /* JMAKE_ENUM_LIST */ + +/* Zap JMESSAGE macro so that future re-inclusions do nothing by default */ +#undef JMESSAGE + + +#ifndef JERROR_H +#define JERROR_H + +/* Macros to simplify using the error and trace message stuff */ +/* The first parameter is either type of cinfo pointer */ + +/* Fatal errors (print message and exit) */ +#define ERREXIT(cinfo,code) \ + ((cinfo)->err->msg_code = (code), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT1(cinfo,code,p1) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT2(cinfo,code,p1,p2) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT3(cinfo,code,p1,p2,p3) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (cinfo)->err->msg_parm.i[2] = (p3), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT4(cinfo,code,p1,p2,p3,p4) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (cinfo)->err->msg_parm.i[2] = (p3), \ + (cinfo)->err->msg_parm.i[3] = (p4), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT6(cinfo,code,p1,p2,p3,p4,p5,p6) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (cinfo)->err->msg_parm.i[2] = (p3), \ + (cinfo)->err->msg_parm.i[3] = (p4), \ + (cinfo)->err->msg_parm.i[4] = (p5), \ + (cinfo)->err->msg_parm.i[5] = (p6), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXITS(cinfo,code,str) \ + ((cinfo)->err->msg_code = (code), \ + strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) + +#define MAKESTMT(stuff) do { stuff } while (0) + +/* Nonfatal errors (we can keep going, but the data is probably corrupt) */ +#define WARNMS(cinfo,code) \ + ((cinfo)->err->msg_code = (code), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) +#define WARNMS1(cinfo,code,p1) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) +#define WARNMS2(cinfo,code,p1,p2) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) + +/* Informational/debugging messages */ +#define TRACEMS(cinfo,lvl,code) \ + ((cinfo)->err->msg_code = (code), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) +#define TRACEMS1(cinfo,lvl,code,p1) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) +#define TRACEMS2(cinfo,lvl,code,p1,p2) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) +#define TRACEMS3(cinfo,lvl,code,p1,p2,p3) \ + MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ + _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); \ + (cinfo)->err->msg_code = (code); \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) +#define TRACEMS4(cinfo,lvl,code,p1,p2,p3,p4) \ + MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ + _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ + (cinfo)->err->msg_code = (code); \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) +#define TRACEMS5(cinfo,lvl,code,p1,p2,p3,p4,p5) \ + MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ + _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ + _mp[4] = (p5); \ + (cinfo)->err->msg_code = (code); \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) +#define TRACEMS8(cinfo,lvl,code,p1,p2,p3,p4,p5,p6,p7,p8) \ + MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ + _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ + _mp[4] = (p5); _mp[5] = (p6); _mp[6] = (p7); _mp[7] = (p8); \ + (cinfo)->err->msg_code = (code); \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) +#define TRACEMSS(cinfo,lvl,code,str) \ + ((cinfo)->err->msg_code = (code), \ + strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) + +#endif /* JERROR_H */ diff --git a/ios/include/jpeg/jmorecfg.h b/ios/include/jpeg/jmorecfg.h new file mode 100644 index 00000000..2407edbe --- /dev/null +++ b/ios/include/jpeg/jmorecfg.h @@ -0,0 +1,390 @@ +/* + * jmorecfg.h + * + * Copyright (C) 1991-1997, Thomas G. Lane. + * Modified 1997-2012 by Guido Vollbeding. + * This file is part of the Independent JPEG Group's software. + * For conditions of distribution and use, see the accompanying README file. + * + * This file contains additional configuration options that customize the + * JPEG software for special applications or support machine-dependent + * optimizations. Most users will not need to touch this file. + */ + + +/* + * Define BITS_IN_JSAMPLE as either + * 8 for 8-bit sample values (the usual setting) + * 12 for 12-bit sample values + * Only 8 and 12 are legal data precisions for lossy JPEG according to the + * JPEG standard, and the IJG code does not support anything else! + * We do not support run-time selection of data precision, sorry. + */ + +#define BITS_IN_JSAMPLE 8 /* use 8 or 12 */ + + +/* + * Maximum number of components (color channels) allowed in JPEG image. + * To meet the letter of the JPEG spec, set this to 255. However, darn + * few applications need more than 4 channels (maybe 5 for CMYK + alpha + * mask). We recommend 10 as a reasonable compromise; use 4 if you are + * really short on memory. (Each allowed component costs a hundred or so + * bytes of storage, whether actually used in an image or not.) + */ + +#define MAX_COMPONENTS 10 /* maximum number of image components */ + + +/* + * Basic data types. + * You may need to change these if you have a machine with unusual data + * type sizes; for example, "char" not 8 bits, "short" not 16 bits, + * or "long" not 32 bits. We don't care whether "int" is 16 or 32 bits, + * but it had better be at least 16. + */ + +/* Representation of a single sample (pixel element value). + * We frequently allocate large arrays of these, so it's important to keep + * them small. But if you have memory to burn and access to char or short + * arrays is very slow on your hardware, you might want to change these. + */ + +#if BITS_IN_JSAMPLE == 8 +/* JSAMPLE should be the smallest type that will hold the values 0..255. + * You can use a signed char by having GETJSAMPLE mask it with 0xFF. + */ + +#ifdef HAVE_UNSIGNED_CHAR + +typedef unsigned char JSAMPLE; +#define GETJSAMPLE(value) ((int) (value)) + +#else /* not HAVE_UNSIGNED_CHAR */ + +typedef char JSAMPLE; +#ifdef CHAR_IS_UNSIGNED +#define GETJSAMPLE(value) ((int) (value)) +#else +#define GETJSAMPLE(value) ((int) (value) & 0xFF) +#endif /* CHAR_IS_UNSIGNED */ + +#endif /* HAVE_UNSIGNED_CHAR */ + +#define MAXJSAMPLE 255 +#define CENTERJSAMPLE 128 + +#endif /* BITS_IN_JSAMPLE == 8 */ + + +#if BITS_IN_JSAMPLE == 12 +/* JSAMPLE should be the smallest type that will hold the values 0..4095. + * On nearly all machines "short" will do nicely. + */ + +typedef short JSAMPLE; +#define GETJSAMPLE(value) ((int) (value)) + +#define MAXJSAMPLE 4095 +#define CENTERJSAMPLE 2048 + +#endif /* BITS_IN_JSAMPLE == 12 */ + + +/* Representation of a DCT frequency coefficient. + * This should be a signed value of at least 16 bits; "short" is usually OK. + * Again, we allocate large arrays of these, but you can change to int + * if you have memory to burn and "short" is really slow. + */ + +typedef short JCOEF; + + +/* Compressed datastreams are represented as arrays of JOCTET. + * These must be EXACTLY 8 bits wide, at least once they are written to + * external storage. Note that when using the stdio data source/destination + * managers, this is also the data type passed to fread/fwrite. + */ + +#ifdef HAVE_UNSIGNED_CHAR + +typedef unsigned char JOCTET; +#define GETJOCTET(value) (value) + +#else /* not HAVE_UNSIGNED_CHAR */ + +typedef char JOCTET; +#ifdef CHAR_IS_UNSIGNED +#define GETJOCTET(value) (value) +#else +#define GETJOCTET(value) ((value) & 0xFF) +#endif /* CHAR_IS_UNSIGNED */ + +#endif /* HAVE_UNSIGNED_CHAR */ + + +/* These typedefs are used for various table entries and so forth. + * They must be at least as wide as specified; but making them too big + * won't cost a huge amount of memory, so we don't provide special + * extraction code like we did for JSAMPLE. (In other words, these + * typedefs live at a different point on the speed/space tradeoff curve.) + */ + +/* UINT8 must hold at least the values 0..255. */ + +#ifdef HAVE_UNSIGNED_CHAR +typedef unsigned char UINT8; +#else /* not HAVE_UNSIGNED_CHAR */ +#ifdef CHAR_IS_UNSIGNED +typedef char UINT8; +#else /* not CHAR_IS_UNSIGNED */ +typedef short UINT8; +#endif /* CHAR_IS_UNSIGNED */ +#endif /* HAVE_UNSIGNED_CHAR */ + +/* UINT16 must hold at least the values 0..65535. */ + +#ifdef HAVE_UNSIGNED_SHORT +typedef unsigned short UINT16; +#else /* not HAVE_UNSIGNED_SHORT */ +typedef unsigned int UINT16; +#endif /* HAVE_UNSIGNED_SHORT */ + +/* INT16 must hold at least the values -32768..32767. */ + +#ifndef XMD_H /* X11/xmd.h correctly defines INT16 */ +typedef short INT16; +#endif + +/* INT32 must hold at least signed 32-bit values. */ + +#ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ +#ifndef _BASETSD_H_ /* Microsoft defines it in basetsd.h */ +#ifndef _BASETSD_H /* MinGW is slightly different */ +#ifndef QGLOBAL_H /* Qt defines it in qglobal.h */ +typedef long INT32; +#endif +#endif +#endif +#endif + +/* Datatype used for image dimensions. The JPEG standard only supports + * images up to 64K*64K due to 16-bit fields in SOF markers. Therefore + * "unsigned int" is sufficient on all machines. However, if you need to + * handle larger images and you don't mind deviating from the spec, you + * can change this datatype. + */ + +typedef unsigned int JDIMENSION; + +#define JPEG_MAX_DIMENSION 65500L /* a tad under 64K to prevent overflows */ + + +/* These macros are used in all function definitions and extern declarations. + * You could modify them if you need to change function linkage conventions; + * in particular, you'll need to do that to make the library a Windows DLL. + * Another application is to make all functions global for use with debuggers + * or code profilers that require it. + */ + +/* a function called through method pointers: */ +#define METHODDEF(type) static type +/* a function used only in its module: */ +#define LOCAL(type) static type +/* a function referenced thru EXTERNs: */ +#define GLOBAL(type) type +/* a reference to a GLOBAL function: */ +#define EXTERN(type) extern type + + +/* This macro is used to declare a "method", that is, a function pointer. + * We want to supply prototype parameters if the compiler can cope. + * Note that the arglist parameter must be parenthesized! + * Again, you can customize this if you need special linkage keywords. + */ + +#ifdef HAVE_PROTOTYPES +#define JMETHOD(type,methodname,arglist) type (*methodname) arglist +#else +#define JMETHOD(type,methodname,arglist) type (*methodname) () +#endif + + +/* The noreturn type identifier is used to declare functions + * which cannot return. + * Compilers can thus create more optimized code and perform + * better checks for warnings and errors. + * Static analyzer tools can make improved inferences about + * execution paths and are prevented from giving false alerts. + * + * Unfortunately, the proposed specifications of corresponding + * extensions in the Dec 2011 ISO C standard revision (C11), + * GCC, MSVC, etc. are not viable. + * Thus we introduce a user defined type to declare noreturn + * functions at least for clarity. A proper compiler would + * have a suitable noreturn type to match in place of void. + */ + +#ifndef HAVE_NORETURN_T +typedef void noreturn_t; +#endif + + +/* Here is the pseudo-keyword for declaring pointers that must be "far" + * on 80x86 machines. Most of the specialized coding for 80x86 is handled + * by just saying "FAR *" where such a pointer is needed. In a few places + * explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol. + */ + +#ifndef FAR +#ifdef NEED_FAR_POINTERS +#define FAR far +#else +#define FAR +#endif +#endif + + +/* + * On a few systems, type boolean and/or its values FALSE, TRUE may appear + * in standard header files. Or you may have conflicts with application- + * specific header files that you want to include together with these files. + * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. + */ + +#ifdef HAVE_BOOLEAN +#ifndef FALSE /* in case these macros already exist */ +#define FALSE 0 /* values of boolean */ +#endif +#ifndef TRUE +#define TRUE 1 +#endif +#else +typedef enum { FALSE = 0, TRUE = 1 } boolean; +#endif + + +/* + * The remaining options affect code selection within the JPEG library, + * but they don't need to be visible to most applications using the library. + * To minimize application namespace pollution, the symbols won't be + * defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined. + */ + +#ifdef JPEG_INTERNALS +#define JPEG_INTERNAL_OPTIONS +#endif + +#ifdef JPEG_INTERNAL_OPTIONS + + +/* + * These defines indicate whether to include various optional functions. + * Undefining some of these symbols will produce a smaller but less capable + * library. Note that you can leave certain source files out of the + * compilation/linking process if you've #undef'd the corresponding symbols. + * (You may HAVE to do that if your compiler doesn't like null source files.) + */ + +/* Capability options common to encoder and decoder: */ + +#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */ +#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */ +#define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */ + +/* Encoder capability options: */ + +#define C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ +#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ +#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ +#define DCT_SCALING_SUPPORTED /* Input rescaling via DCT? (Requires DCT_ISLOW)*/ +#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */ +/* Note: if you selected 12-bit data precision, it is dangerous to turn off + * ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit + * precision, so jchuff.c normally uses entropy optimization to compute + * usable tables for higher precision. If you don't want to do optimization, + * you'll have to supply different default Huffman tables. + * The exact same statements apply for progressive JPEG: the default tables + * don't work for progressive mode. (This may get fixed, however.) + */ +#define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */ + +/* Decoder capability options: */ + +#define D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ +#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ +#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ +#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */ +#define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */ +#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */ +#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */ +#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */ +#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */ +#define QUANT_2PASS_SUPPORTED /* 2-pass color quantization? */ + +/* more capability options later, no doubt */ + + +/* + * Ordering of RGB data in scanlines passed to or from the application. + * If your application wants to deal with data in the order B,G,R, just + * change these macros. You can also deal with formats such as R,G,B,X + * (one extra byte per pixel) by changing RGB_PIXELSIZE. Note that changing + * the offsets will also change the order in which colormap data is organized. + * RESTRICTIONS: + * 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats. + * 2. The color quantizer modules will not behave desirably if RGB_PIXELSIZE + * is not 3 (they don't understand about dummy color components!). So you + * can't use color quantization if you change that value. + */ + +#define RGB_RED 0 /* Offset of Red in an RGB scanline element */ +#define RGB_GREEN 1 /* Offset of Green */ +#define RGB_BLUE 2 /* Offset of Blue */ +#define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element */ + + +/* Definitions for speed-related optimizations. */ + + +/* If your compiler supports inline functions, define INLINE + * as the inline keyword; otherwise define it as empty. + */ + +#ifndef INLINE +#ifdef __GNUC__ /* for instance, GNU C knows about inline */ +#define INLINE __inline__ +#endif +#ifndef INLINE +#define INLINE /* default is to define it as empty */ +#endif +#endif + + +/* On some machines (notably 68000 series) "int" is 32 bits, but multiplying + * two 16-bit shorts is faster than multiplying two ints. Define MULTIPLIER + * as short on such a machine. MULTIPLIER must be at least 16 bits wide. + */ + +#ifndef MULTIPLIER +#define MULTIPLIER int /* type for fastest integer multiply */ +#endif + + +/* FAST_FLOAT should be either float or double, whichever is done faster + * by your compiler. (Note that this type is only used in the floating point + * DCT routines, so it only matters if you've defined DCT_FLOAT_SUPPORTED.) + * Typically, float is faster in ANSI C compilers, while double is faster in + * pre-ANSI compilers (because they insist on converting to double anyway). + * The code below therefore chooses float if we have ANSI-style prototypes. + */ + +#ifndef FAST_FLOAT +#ifdef HAVE_PROTOTYPES +#define FAST_FLOAT float +#else +#define FAST_FLOAT double +#endif +#endif + +#endif /* JPEG_INTERNAL_OPTIONS */ diff --git a/ios/include/jpeg/jpeglib.h b/ios/include/jpeg/jpeglib.h new file mode 100644 index 00000000..0a6dac44 --- /dev/null +++ b/ios/include/jpeg/jpeglib.h @@ -0,0 +1,1173 @@ +/* + * jpeglib.h + * + * Copyright (C) 1991-1998, Thomas G. Lane. + * Modified 2002-2012 by Guido Vollbeding. + * This file is part of the Independent JPEG Group's software. + * For conditions of distribution and use, see the accompanying README file. + * + * This file defines the application interface for the JPEG library. + * Most applications using the library need only include this file, + * and perhaps jerror.h if they want to know the exact error codes. + */ + +#ifndef JPEGLIB_H +#define JPEGLIB_H + +/* + * First we include the configuration files that record how this + * installation of the JPEG library is set up. jconfig.h can be + * generated automatically for many systems. jmorecfg.h contains + * manual configuration options that most people need not worry about. + */ + +#ifndef JCONFIG_INCLUDED /* in case jinclude.h already did */ +#include "jconfig.h" /* widely used configuration options */ +#endif +#include "jmorecfg.h" /* seldom changed options */ + + +#ifdef __cplusplus +#ifndef DONT_USE_EXTERN_C +extern "C" { +#endif +#endif + +/* Version IDs for the JPEG library. + * Might be useful for tests like "#if JPEG_LIB_VERSION >= 90". + */ + +#define JPEG_LIB_VERSION 90 /* Compatibility version 9.0 */ +#define JPEG_LIB_VERSION_MAJOR 9 +#define JPEG_LIB_VERSION_MINOR 0 + + +/* Various constants determining the sizes of things. + * All of these are specified by the JPEG standard, so don't change them + * if you want to be compatible. + */ + +#define DCTSIZE 8 /* The basic DCT block is 8x8 coefficients */ +#define DCTSIZE2 64 /* DCTSIZE squared; # of elements in a block */ +#define NUM_QUANT_TBLS 4 /* Quantization tables are numbered 0..3 */ +#define NUM_HUFF_TBLS 4 /* Huffman tables are numbered 0..3 */ +#define NUM_ARITH_TBLS 16 /* Arith-coding tables are numbered 0..15 */ +#define MAX_COMPS_IN_SCAN 4 /* JPEG limit on # of components in one scan */ +#define MAX_SAMP_FACTOR 4 /* JPEG limit on sampling factors */ +/* Unfortunately, some bozo at Adobe saw no reason to be bound by the standard; + * the PostScript DCT filter can emit files with many more than 10 blocks/MCU. + * If you happen to run across such a file, you can up D_MAX_BLOCKS_IN_MCU + * to handle it. We even let you do this from the jconfig.h file. However, + * we strongly discourage changing C_MAX_BLOCKS_IN_MCU; just because Adobe + * sometimes emits noncompliant files doesn't mean you should too. + */ +#define C_MAX_BLOCKS_IN_MCU 10 /* compressor's limit on blocks per MCU */ +#ifndef D_MAX_BLOCKS_IN_MCU +#define D_MAX_BLOCKS_IN_MCU 10 /* decompressor's limit on blocks per MCU */ +#endif + + +/* Data structures for images (arrays of samples and of DCT coefficients). + * On 80x86 machines, the image arrays are too big for near pointers, + * but the pointer arrays can fit in near memory. + */ + +typedef JSAMPLE FAR *JSAMPROW; /* ptr to one image row of pixel samples. */ +typedef JSAMPROW *JSAMPARRAY; /* ptr to some rows (a 2-D sample array) */ +typedef JSAMPARRAY *JSAMPIMAGE; /* a 3-D sample array: top index is color */ + +typedef JCOEF JBLOCK[DCTSIZE2]; /* one block of coefficients */ +typedef JBLOCK FAR *JBLOCKROW; /* pointer to one row of coefficient blocks */ +typedef JBLOCKROW *JBLOCKARRAY; /* a 2-D array of coefficient blocks */ +typedef JBLOCKARRAY *JBLOCKIMAGE; /* a 3-D array of coefficient blocks */ + +typedef JCOEF FAR *JCOEFPTR; /* useful in a couple of places */ + + +/* Types for JPEG compression parameters and working tables. */ + + +/* DCT coefficient quantization tables. */ + +typedef struct { + /* This array gives the coefficient quantizers in natural array order + * (not the zigzag order in which they are stored in a JPEG DQT marker). + * CAUTION: IJG versions prior to v6a kept this array in zigzag order. + */ + UINT16 quantval[DCTSIZE2]; /* quantization step for each coefficient */ + /* This field is used only during compression. It's initialized FALSE when + * the table is created, and set TRUE when it's been output to the file. + * You could suppress output of a table by setting this to TRUE. + * (See jpeg_suppress_tables for an example.) + */ + boolean sent_table; /* TRUE when table has been output */ +} JQUANT_TBL; + + +/* Huffman coding tables. */ + +typedef struct { + /* These two fields directly represent the contents of a JPEG DHT marker */ + UINT8 bits[17]; /* bits[k] = # of symbols with codes of */ + /* length k bits; bits[0] is unused */ + UINT8 huffval[256]; /* The symbols, in order of incr code length */ + /* This field is used only during compression. It's initialized FALSE when + * the table is created, and set TRUE when it's been output to the file. + * You could suppress output of a table by setting this to TRUE. + * (See jpeg_suppress_tables for an example.) + */ + boolean sent_table; /* TRUE when table has been output */ +} JHUFF_TBL; + + +/* Basic info about one component (color channel). */ + +typedef struct { + /* These values are fixed over the whole image. */ + /* For compression, they must be supplied by parameter setup; */ + /* for decompression, they are read from the SOF marker. */ + int component_id; /* identifier for this component (0..255) */ + int component_index; /* its index in SOF or cinfo->comp_info[] */ + int h_samp_factor; /* horizontal sampling factor (1..4) */ + int v_samp_factor; /* vertical sampling factor (1..4) */ + int quant_tbl_no; /* quantization table selector (0..3) */ + /* These values may vary between scans. */ + /* For compression, they must be supplied by parameter setup; */ + /* for decompression, they are read from the SOS marker. */ + /* The decompressor output side may not use these variables. */ + int dc_tbl_no; /* DC entropy table selector (0..3) */ + int ac_tbl_no; /* AC entropy table selector (0..3) */ + + /* Remaining fields should be treated as private by applications. */ + + /* These values are computed during compression or decompression startup: */ + /* Component's size in DCT blocks. + * Any dummy blocks added to complete an MCU are not counted; therefore + * these values do not depend on whether a scan is interleaved or not. + */ + JDIMENSION width_in_blocks; + JDIMENSION height_in_blocks; + /* Size of a DCT block in samples, + * reflecting any scaling we choose to apply during the DCT step. + * Values from 1 to 16 are supported. + * Note that different components may receive different DCT scalings. + */ + int DCT_h_scaled_size; + int DCT_v_scaled_size; + /* The downsampled dimensions are the component's actual, unpadded number + * of samples at the main buffer (preprocessing/compression interface); + * DCT scaling is included, so + * downsampled_width = ceil(image_width * Hi/Hmax * DCT_h_scaled_size/DCTSIZE) + * and similarly for height. + */ + JDIMENSION downsampled_width; /* actual width in samples */ + JDIMENSION downsampled_height; /* actual height in samples */ + /* This flag is used only for decompression. In cases where some of the + * components will be ignored (eg grayscale output from YCbCr image), + * we can skip most computations for the unused components. + */ + boolean component_needed; /* do we need the value of this component? */ + + /* These values are computed before starting a scan of the component. */ + /* The decompressor output side may not use these variables. */ + int MCU_width; /* number of blocks per MCU, horizontally */ + int MCU_height; /* number of blocks per MCU, vertically */ + int MCU_blocks; /* MCU_width * MCU_height */ + int MCU_sample_width; /* MCU width in samples: MCU_width * DCT_h_scaled_size */ + int last_col_width; /* # of non-dummy blocks across in last MCU */ + int last_row_height; /* # of non-dummy blocks down in last MCU */ + + /* Saved quantization table for component; NULL if none yet saved. + * See jdinput.c comments about the need for this information. + * This field is currently used only for decompression. + */ + JQUANT_TBL * quant_table; + + /* Private per-component storage for DCT or IDCT subsystem. */ + void * dct_table; +} jpeg_component_info; + + +/* The script for encoding a multiple-scan file is an array of these: */ + +typedef struct { + int comps_in_scan; /* number of components encoded in this scan */ + int component_index[MAX_COMPS_IN_SCAN]; /* their SOF/comp_info[] indexes */ + int Ss, Se; /* progressive JPEG spectral selection parms */ + int Ah, Al; /* progressive JPEG successive approx. parms */ +} jpeg_scan_info; + +/* The decompressor can save APPn and COM markers in a list of these: */ + +typedef struct jpeg_marker_struct FAR * jpeg_saved_marker_ptr; + +struct jpeg_marker_struct { + jpeg_saved_marker_ptr next; /* next in list, or NULL */ + UINT8 marker; /* marker code: JPEG_COM, or JPEG_APP0+n */ + unsigned int original_length; /* # bytes of data in the file */ + unsigned int data_length; /* # bytes of data saved at data[] */ + JOCTET FAR * data; /* the data contained in the marker */ + /* the marker length word is not counted in data_length or original_length */ +}; + +/* Known color spaces. */ + +typedef enum { + JCS_UNKNOWN, /* error/unspecified */ + JCS_GRAYSCALE, /* monochrome */ + JCS_RGB, /* red/green/blue */ + JCS_YCbCr, /* Y/Cb/Cr (also known as YUV) */ + JCS_CMYK, /* C/M/Y/K */ + JCS_YCCK /* Y/Cb/Cr/K */ +} J_COLOR_SPACE; + +/* Supported color transforms. */ + +typedef enum { + JCT_NONE = 0, + JCT_SUBTRACT_GREEN = 1 +} J_COLOR_TRANSFORM; + +/* DCT/IDCT algorithm options. */ + +typedef enum { + JDCT_ISLOW, /* slow but accurate integer algorithm */ + JDCT_IFAST, /* faster, less accurate integer method */ + JDCT_FLOAT /* floating-point: accurate, fast on fast HW */ +} J_DCT_METHOD; + +#ifndef JDCT_DEFAULT /* may be overridden in jconfig.h */ +#define JDCT_DEFAULT JDCT_ISLOW +#endif +#ifndef JDCT_FASTEST /* may be overridden in jconfig.h */ +#define JDCT_FASTEST JDCT_IFAST +#endif + +/* Dithering options for decompression. */ + +typedef enum { + JDITHER_NONE, /* no dithering */ + JDITHER_ORDERED, /* simple ordered dither */ + JDITHER_FS /* Floyd-Steinberg error diffusion dither */ +} J_DITHER_MODE; + + +/* Common fields between JPEG compression and decompression master structs. */ + +#define jpeg_common_fields \ + struct jpeg_error_mgr * err; /* Error handler module */\ + struct jpeg_memory_mgr * mem; /* Memory manager module */\ + struct jpeg_progress_mgr * progress; /* Progress monitor, or NULL if none */\ + void * client_data; /* Available for use by application */\ + boolean is_decompressor; /* So common code can tell which is which */\ + int global_state /* For checking call sequence validity */ + +/* Routines that are to be used by both halves of the library are declared + * to receive a pointer to this structure. There are no actual instances of + * jpeg_common_struct, only of jpeg_compress_struct and jpeg_decompress_struct. + */ +struct jpeg_common_struct { + jpeg_common_fields; /* Fields common to both master struct types */ + /* Additional fields follow in an actual jpeg_compress_struct or + * jpeg_decompress_struct. All three structs must agree on these + * initial fields! (This would be a lot cleaner in C++.) + */ +}; + +typedef struct jpeg_common_struct * j_common_ptr; +typedef struct jpeg_compress_struct * j_compress_ptr; +typedef struct jpeg_decompress_struct * j_decompress_ptr; + + +/* Master record for a compression instance */ + +struct jpeg_compress_struct { + jpeg_common_fields; /* Fields shared with jpeg_decompress_struct */ + + /* Destination for compressed data */ + struct jpeg_destination_mgr * dest; + + /* Description of source image --- these fields must be filled in by + * outer application before starting compression. in_color_space must + * be correct before you can even call jpeg_set_defaults(). + */ + + JDIMENSION image_width; /* input image width */ + JDIMENSION image_height; /* input image height */ + int input_components; /* # of color components in input image */ + J_COLOR_SPACE in_color_space; /* colorspace of input image */ + + double input_gamma; /* image gamma of input image */ + + /* Compression parameters --- these fields must be set before calling + * jpeg_start_compress(). We recommend calling jpeg_set_defaults() to + * initialize everything to reasonable defaults, then changing anything + * the application specifically wants to change. That way you won't get + * burnt when new parameters are added. Also note that there are several + * helper routines to simplify changing parameters. + */ + + unsigned int scale_num, scale_denom; /* fraction by which to scale image */ + + JDIMENSION jpeg_width; /* scaled JPEG image width */ + JDIMENSION jpeg_height; /* scaled JPEG image height */ + /* Dimensions of actual JPEG image that will be written to file, + * derived from input dimensions by scaling factors above. + * These fields are computed by jpeg_start_compress(). + * You can also use jpeg_calc_jpeg_dimensions() to determine these values + * in advance of calling jpeg_start_compress(). + */ + + int data_precision; /* bits of precision in image data */ + + int num_components; /* # of color components in JPEG image */ + J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ + + jpeg_component_info * comp_info; + /* comp_info[i] describes component that appears i'th in SOF */ + + JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; + int q_scale_factor[NUM_QUANT_TBLS]; + /* ptrs to coefficient quantization tables, or NULL if not defined, + * and corresponding scale factors (percentage, initialized 100). + */ + + JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; + JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; + /* ptrs to Huffman coding tables, or NULL if not defined */ + + UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ + UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ + UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ + + int num_scans; /* # of entries in scan_info array */ + const jpeg_scan_info * scan_info; /* script for multi-scan file, or NULL */ + /* The default value of scan_info is NULL, which causes a single-scan + * sequential JPEG file to be emitted. To create a multi-scan file, + * set num_scans and scan_info to point to an array of scan definitions. + */ + + boolean raw_data_in; /* TRUE=caller supplies downsampled data */ + boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ + boolean optimize_coding; /* TRUE=optimize entropy encoding parms */ + boolean CCIR601_sampling; /* TRUE=first samples are cosited */ + boolean do_fancy_downsampling; /* TRUE=apply fancy downsampling */ + int smoothing_factor; /* 1..100, or 0 for no input smoothing */ + J_DCT_METHOD dct_method; /* DCT algorithm selector */ + + /* The restart interval can be specified in absolute MCUs by setting + * restart_interval, or in MCU rows by setting restart_in_rows + * (in which case the correct restart_interval will be figured + * for each scan). + */ + unsigned int restart_interval; /* MCUs per restart, or 0 for no restart */ + int restart_in_rows; /* if > 0, MCU rows per restart interval */ + + /* Parameters controlling emission of special markers. */ + + boolean write_JFIF_header; /* should a JFIF marker be written? */ + UINT8 JFIF_major_version; /* What to write for the JFIF version number */ + UINT8 JFIF_minor_version; + /* These three values are not used by the JPEG code, merely copied */ + /* into the JFIF APP0 marker. density_unit can be 0 for unknown, */ + /* 1 for dots/inch, or 2 for dots/cm. Note that the pixel aspect */ + /* ratio is defined by X_density/Y_density even when density_unit=0. */ + UINT8 density_unit; /* JFIF code for pixel size units */ + UINT16 X_density; /* Horizontal pixel density */ + UINT16 Y_density; /* Vertical pixel density */ + boolean write_Adobe_marker; /* should an Adobe marker be written? */ + + J_COLOR_TRANSFORM color_transform; + /* Color transform identifier, writes LSE marker if nonzero */ + + /* State variable: index of next scanline to be written to + * jpeg_write_scanlines(). Application may use this to control its + * processing loop, e.g., "while (next_scanline < image_height)". + */ + + JDIMENSION next_scanline; /* 0 .. image_height-1 */ + + /* Remaining fields are known throughout compressor, but generally + * should not be touched by a surrounding application. + */ + + /* + * These fields are computed during compression startup + */ + boolean progressive_mode; /* TRUE if scan script uses progressive mode */ + int max_h_samp_factor; /* largest h_samp_factor */ + int max_v_samp_factor; /* largest v_samp_factor */ + + int min_DCT_h_scaled_size; /* smallest DCT_h_scaled_size of any component */ + int min_DCT_v_scaled_size; /* smallest DCT_v_scaled_size of any component */ + + JDIMENSION total_iMCU_rows; /* # of iMCU rows to be input to coef ctlr */ + /* The coefficient controller receives data in units of MCU rows as defined + * for fully interleaved scans (whether the JPEG file is interleaved or not). + * There are v_samp_factor * DCTSIZE sample rows of each component in an + * "iMCU" (interleaved MCU) row. + */ + + /* + * These fields are valid during any one scan. + * They describe the components and MCUs actually appearing in the scan. + */ + int comps_in_scan; /* # of JPEG components in this scan */ + jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; + /* *cur_comp_info[i] describes component that appears i'th in SOS */ + + JDIMENSION MCUs_per_row; /* # of MCUs across the image */ + JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ + + int blocks_in_MCU; /* # of DCT blocks per MCU */ + int MCU_membership[C_MAX_BLOCKS_IN_MCU]; + /* MCU_membership[i] is index in cur_comp_info of component owning */ + /* i'th block in an MCU */ + + int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ + + int block_size; /* the basic DCT block size: 1..16 */ + const int * natural_order; /* natural-order position array */ + int lim_Se; /* min( Se, DCTSIZE2-1 ) */ + + /* + * Links to compression subobjects (methods and private variables of modules) + */ + struct jpeg_comp_master * master; + struct jpeg_c_main_controller * main; + struct jpeg_c_prep_controller * prep; + struct jpeg_c_coef_controller * coef; + struct jpeg_marker_writer * marker; + struct jpeg_color_converter * cconvert; + struct jpeg_downsampler * downsample; + struct jpeg_forward_dct * fdct; + struct jpeg_entropy_encoder * entropy; + jpeg_scan_info * script_space; /* workspace for jpeg_simple_progression */ + int script_space_size; +}; + + +/* Master record for a decompression instance */ + +struct jpeg_decompress_struct { + jpeg_common_fields; /* Fields shared with jpeg_compress_struct */ + + /* Source of compressed data */ + struct jpeg_source_mgr * src; + + /* Basic description of image --- filled in by jpeg_read_header(). */ + /* Application may inspect these values to decide how to process image. */ + + JDIMENSION image_width; /* nominal image width (from SOF marker) */ + JDIMENSION image_height; /* nominal image height */ + int num_components; /* # of color components in JPEG image */ + J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ + + /* Decompression processing parameters --- these fields must be set before + * calling jpeg_start_decompress(). Note that jpeg_read_header() initializes + * them to default values. + */ + + J_COLOR_SPACE out_color_space; /* colorspace for output */ + + unsigned int scale_num, scale_denom; /* fraction by which to scale image */ + + double output_gamma; /* image gamma wanted in output */ + + boolean buffered_image; /* TRUE=multiple output passes */ + boolean raw_data_out; /* TRUE=downsampled data wanted */ + + J_DCT_METHOD dct_method; /* IDCT algorithm selector */ + boolean do_fancy_upsampling; /* TRUE=apply fancy upsampling */ + boolean do_block_smoothing; /* TRUE=apply interblock smoothing */ + + boolean quantize_colors; /* TRUE=colormapped output wanted */ + /* the following are ignored if not quantize_colors: */ + J_DITHER_MODE dither_mode; /* type of color dithering to use */ + boolean two_pass_quantize; /* TRUE=use two-pass color quantization */ + int desired_number_of_colors; /* max # colors to use in created colormap */ + /* these are significant only in buffered-image mode: */ + boolean enable_1pass_quant; /* enable future use of 1-pass quantizer */ + boolean enable_external_quant;/* enable future use of external colormap */ + boolean enable_2pass_quant; /* enable future use of 2-pass quantizer */ + + /* Description of actual output image that will be returned to application. + * These fields are computed by jpeg_start_decompress(). + * You can also use jpeg_calc_output_dimensions() to determine these values + * in advance of calling jpeg_start_decompress(). + */ + + JDIMENSION output_width; /* scaled image width */ + JDIMENSION output_height; /* scaled image height */ + int out_color_components; /* # of color components in out_color_space */ + int output_components; /* # of color components returned */ + /* output_components is 1 (a colormap index) when quantizing colors; + * otherwise it equals out_color_components. + */ + int rec_outbuf_height; /* min recommended height of scanline buffer */ + /* If the buffer passed to jpeg_read_scanlines() is less than this many rows + * high, space and time will be wasted due to unnecessary data copying. + * Usually rec_outbuf_height will be 1 or 2, at most 4. + */ + + /* When quantizing colors, the output colormap is described by these fields. + * The application can supply a colormap by setting colormap non-NULL before + * calling jpeg_start_decompress; otherwise a colormap is created during + * jpeg_start_decompress or jpeg_start_output. + * The map has out_color_components rows and actual_number_of_colors columns. + */ + int actual_number_of_colors; /* number of entries in use */ + JSAMPARRAY colormap; /* The color map as a 2-D pixel array */ + + /* State variables: these variables indicate the progress of decompression. + * The application may examine these but must not modify them. + */ + + /* Row index of next scanline to be read from jpeg_read_scanlines(). + * Application may use this to control its processing loop, e.g., + * "while (output_scanline < output_height)". + */ + JDIMENSION output_scanline; /* 0 .. output_height-1 */ + + /* Current input scan number and number of iMCU rows completed in scan. + * These indicate the progress of the decompressor input side. + */ + int input_scan_number; /* Number of SOS markers seen so far */ + JDIMENSION input_iMCU_row; /* Number of iMCU rows completed */ + + /* The "output scan number" is the notional scan being displayed by the + * output side. The decompressor will not allow output scan/row number + * to get ahead of input scan/row, but it can fall arbitrarily far behind. + */ + int output_scan_number; /* Nominal scan number being displayed */ + JDIMENSION output_iMCU_row; /* Number of iMCU rows read */ + + /* Current progression status. coef_bits[c][i] indicates the precision + * with which component c's DCT coefficient i (in zigzag order) is known. + * It is -1 when no data has yet been received, otherwise it is the point + * transform (shift) value for the most recent scan of the coefficient + * (thus, 0 at completion of the progression). + * This pointer is NULL when reading a non-progressive file. + */ + int (*coef_bits)[DCTSIZE2]; /* -1 or current Al value for each coef */ + + /* Internal JPEG parameters --- the application usually need not look at + * these fields. Note that the decompressor output side may not use + * any parameters that can change between scans. + */ + + /* Quantization and Huffman tables are carried forward across input + * datastreams when processing abbreviated JPEG datastreams. + */ + + JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; + /* ptrs to coefficient quantization tables, or NULL if not defined */ + + JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; + JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; + /* ptrs to Huffman coding tables, or NULL if not defined */ + + /* These parameters are never carried across datastreams, since they + * are given in SOF/SOS markers or defined to be reset by SOI. + */ + + int data_precision; /* bits of precision in image data */ + + jpeg_component_info * comp_info; + /* comp_info[i] describes component that appears i'th in SOF */ + + boolean is_baseline; /* TRUE if Baseline SOF0 encountered */ + boolean progressive_mode; /* TRUE if SOFn specifies progressive mode */ + boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ + + UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ + UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ + UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ + + unsigned int restart_interval; /* MCUs per restart interval, or 0 for no restart */ + + /* These fields record data obtained from optional markers recognized by + * the JPEG library. + */ + boolean saw_JFIF_marker; /* TRUE iff a JFIF APP0 marker was found */ + /* Data copied from JFIF marker; only valid if saw_JFIF_marker is TRUE: */ + UINT8 JFIF_major_version; /* JFIF version number */ + UINT8 JFIF_minor_version; + UINT8 density_unit; /* JFIF code for pixel size units */ + UINT16 X_density; /* Horizontal pixel density */ + UINT16 Y_density; /* Vertical pixel density */ + boolean saw_Adobe_marker; /* TRUE iff an Adobe APP14 marker was found */ + UINT8 Adobe_transform; /* Color transform code from Adobe marker */ + + J_COLOR_TRANSFORM color_transform; + /* Color transform identifier derived from LSE marker, otherwise zero */ + + boolean CCIR601_sampling; /* TRUE=first samples are cosited */ + + /* Aside from the specific data retained from APPn markers known to the + * library, the uninterpreted contents of any or all APPn and COM markers + * can be saved in a list for examination by the application. + */ + jpeg_saved_marker_ptr marker_list; /* Head of list of saved markers */ + + /* Remaining fields are known throughout decompressor, but generally + * should not be touched by a surrounding application. + */ + + /* + * These fields are computed during decompression startup + */ + int max_h_samp_factor; /* largest h_samp_factor */ + int max_v_samp_factor; /* largest v_samp_factor */ + + int min_DCT_h_scaled_size; /* smallest DCT_h_scaled_size of any component */ + int min_DCT_v_scaled_size; /* smallest DCT_v_scaled_size of any component */ + + JDIMENSION total_iMCU_rows; /* # of iMCU rows in image */ + /* The coefficient controller's input and output progress is measured in + * units of "iMCU" (interleaved MCU) rows. These are the same as MCU rows + * in fully interleaved JPEG scans, but are used whether the scan is + * interleaved or not. We define an iMCU row as v_samp_factor DCT block + * rows of each component. Therefore, the IDCT output contains + * v_samp_factor*DCT_v_scaled_size sample rows of a component per iMCU row. + */ + + JSAMPLE * sample_range_limit; /* table for fast range-limiting */ + + /* + * These fields are valid during any one scan. + * They describe the components and MCUs actually appearing in the scan. + * Note that the decompressor output side must not use these fields. + */ + int comps_in_scan; /* # of JPEG components in this scan */ + jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; + /* *cur_comp_info[i] describes component that appears i'th in SOS */ + + JDIMENSION MCUs_per_row; /* # of MCUs across the image */ + JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ + + int blocks_in_MCU; /* # of DCT blocks per MCU */ + int MCU_membership[D_MAX_BLOCKS_IN_MCU]; + /* MCU_membership[i] is index in cur_comp_info of component owning */ + /* i'th block in an MCU */ + + int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ + + /* These fields are derived from Se of first SOS marker. + */ + int block_size; /* the basic DCT block size: 1..16 */ + const int * natural_order; /* natural-order position array for entropy decode */ + int lim_Se; /* min( Se, DCTSIZE2-1 ) for entropy decode */ + + /* This field is shared between entropy decoder and marker parser. + * It is either zero or the code of a JPEG marker that has been + * read from the data source, but has not yet been processed. + */ + int unread_marker; + + /* + * Links to decompression subobjects (methods, private variables of modules) + */ + struct jpeg_decomp_master * master; + struct jpeg_d_main_controller * main; + struct jpeg_d_coef_controller * coef; + struct jpeg_d_post_controller * post; + struct jpeg_input_controller * inputctl; + struct jpeg_marker_reader * marker; + struct jpeg_entropy_decoder * entropy; + struct jpeg_inverse_dct * idct; + struct jpeg_upsampler * upsample; + struct jpeg_color_deconverter * cconvert; + struct jpeg_color_quantizer * cquantize; +}; + + +/* "Object" declarations for JPEG modules that may be supplied or called + * directly by the surrounding application. + * As with all objects in the JPEG library, these structs only define the + * publicly visible methods and state variables of a module. Additional + * private fields may exist after the public ones. + */ + + +/* Error handler object */ + +struct jpeg_error_mgr { + /* Error exit handler: does not return to caller */ + JMETHOD(noreturn_t, error_exit, (j_common_ptr cinfo)); + /* Conditionally emit a trace or warning message */ + JMETHOD(void, emit_message, (j_common_ptr cinfo, int msg_level)); + /* Routine that actually outputs a trace or error message */ + JMETHOD(void, output_message, (j_common_ptr cinfo)); + /* Format a message string for the most recent JPEG error or message */ + JMETHOD(void, format_message, (j_common_ptr cinfo, char * buffer)); +#define JMSG_LENGTH_MAX 200 /* recommended size of format_message buffer */ + /* Reset error state variables at start of a new image */ + JMETHOD(void, reset_error_mgr, (j_common_ptr cinfo)); + + /* The message ID code and any parameters are saved here. + * A message can have one string parameter or up to 8 int parameters. + */ + int msg_code; +#define JMSG_STR_PARM_MAX 80 + union { + int i[8]; + char s[JMSG_STR_PARM_MAX]; + } msg_parm; + + /* Standard state variables for error facility */ + + int trace_level; /* max msg_level that will be displayed */ + + /* For recoverable corrupt-data errors, we emit a warning message, + * but keep going unless emit_message chooses to abort. emit_message + * should count warnings in num_warnings. The surrounding application + * can check for bad data by seeing if num_warnings is nonzero at the + * end of processing. + */ + long num_warnings; /* number of corrupt-data warnings */ + + /* These fields point to the table(s) of error message strings. + * An application can change the table pointer to switch to a different + * message list (typically, to change the language in which errors are + * reported). Some applications may wish to add additional error codes + * that will be handled by the JPEG library error mechanism; the second + * table pointer is used for this purpose. + * + * First table includes all errors generated by JPEG library itself. + * Error code 0 is reserved for a "no such error string" message. + */ + const char * const * jpeg_message_table; /* Library errors */ + int last_jpeg_message; /* Table contains strings 0..last_jpeg_message */ + /* Second table can be added by application (see cjpeg/djpeg for example). + * It contains strings numbered first_addon_message..last_addon_message. + */ + const char * const * addon_message_table; /* Non-library errors */ + int first_addon_message; /* code for first string in addon table */ + int last_addon_message; /* code for last string in addon table */ +}; + + +/* Progress monitor object */ + +struct jpeg_progress_mgr { + JMETHOD(void, progress_monitor, (j_common_ptr cinfo)); + + long pass_counter; /* work units completed in this pass */ + long pass_limit; /* total number of work units in this pass */ + int completed_passes; /* passes completed so far */ + int total_passes; /* total number of passes expected */ +}; + + +/* Data destination object for compression */ + +struct jpeg_destination_mgr { + JOCTET * next_output_byte; /* => next byte to write in buffer */ + size_t free_in_buffer; /* # of byte spaces remaining in buffer */ + + JMETHOD(void, init_destination, (j_compress_ptr cinfo)); + JMETHOD(boolean, empty_output_buffer, (j_compress_ptr cinfo)); + JMETHOD(void, term_destination, (j_compress_ptr cinfo)); +}; + + +/* Data source object for decompression */ + +struct jpeg_source_mgr { + const JOCTET * next_input_byte; /* => next byte to read from buffer */ + size_t bytes_in_buffer; /* # of bytes remaining in buffer */ + + JMETHOD(void, init_source, (j_decompress_ptr cinfo)); + JMETHOD(boolean, fill_input_buffer, (j_decompress_ptr cinfo)); + JMETHOD(void, skip_input_data, (j_decompress_ptr cinfo, long num_bytes)); + JMETHOD(boolean, resync_to_restart, (j_decompress_ptr cinfo, int desired)); + JMETHOD(void, term_source, (j_decompress_ptr cinfo)); +}; + + +/* Memory manager object. + * Allocates "small" objects (a few K total), "large" objects (tens of K), + * and "really big" objects (virtual arrays with backing store if needed). + * The memory manager does not allow individual objects to be freed; rather, + * each created object is assigned to a pool, and whole pools can be freed + * at once. This is faster and more convenient than remembering exactly what + * to free, especially where malloc()/free() are not too speedy. + * NB: alloc routines never return NULL. They exit to error_exit if not + * successful. + */ + +#define JPOOL_PERMANENT 0 /* lasts until master record is destroyed */ +#define JPOOL_IMAGE 1 /* lasts until done with image/datastream */ +#define JPOOL_NUMPOOLS 2 + +typedef struct jvirt_sarray_control * jvirt_sarray_ptr; +typedef struct jvirt_barray_control * jvirt_barray_ptr; + + +struct jpeg_memory_mgr { + /* Method pointers */ + JMETHOD(void *, alloc_small, (j_common_ptr cinfo, int pool_id, + size_t sizeofobject)); + JMETHOD(void FAR *, alloc_large, (j_common_ptr cinfo, int pool_id, + size_t sizeofobject)); + JMETHOD(JSAMPARRAY, alloc_sarray, (j_common_ptr cinfo, int pool_id, + JDIMENSION samplesperrow, + JDIMENSION numrows)); + JMETHOD(JBLOCKARRAY, alloc_barray, (j_common_ptr cinfo, int pool_id, + JDIMENSION blocksperrow, + JDIMENSION numrows)); + JMETHOD(jvirt_sarray_ptr, request_virt_sarray, (j_common_ptr cinfo, + int pool_id, + boolean pre_zero, + JDIMENSION samplesperrow, + JDIMENSION numrows, + JDIMENSION maxaccess)); + JMETHOD(jvirt_barray_ptr, request_virt_barray, (j_common_ptr cinfo, + int pool_id, + boolean pre_zero, + JDIMENSION blocksperrow, + JDIMENSION numrows, + JDIMENSION maxaccess)); + JMETHOD(void, realize_virt_arrays, (j_common_ptr cinfo)); + JMETHOD(JSAMPARRAY, access_virt_sarray, (j_common_ptr cinfo, + jvirt_sarray_ptr ptr, + JDIMENSION start_row, + JDIMENSION num_rows, + boolean writable)); + JMETHOD(JBLOCKARRAY, access_virt_barray, (j_common_ptr cinfo, + jvirt_barray_ptr ptr, + JDIMENSION start_row, + JDIMENSION num_rows, + boolean writable)); + JMETHOD(void, free_pool, (j_common_ptr cinfo, int pool_id)); + JMETHOD(void, self_destruct, (j_common_ptr cinfo)); + + /* Limit on memory allocation for this JPEG object. (Note that this is + * merely advisory, not a guaranteed maximum; it only affects the space + * used for virtual-array buffers.) May be changed by outer application + * after creating the JPEG object. + */ + long max_memory_to_use; + + /* Maximum allocation request accepted by alloc_large. */ + long max_alloc_chunk; +}; + + +/* Routine signature for application-supplied marker processing methods. + * Need not pass marker code since it is stored in cinfo->unread_marker. + */ +typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo)); + + +/* Declarations for routines called by application. + * The JPP macro hides prototype parameters from compilers that can't cope. + * Note JPP requires double parentheses. + */ + +#ifdef HAVE_PROTOTYPES +#define JPP(arglist) arglist +#else +#define JPP(arglist) () +#endif + + +/* Short forms of external names for systems with brain-damaged linkers. + * We shorten external names to be unique in the first six letters, which + * is good enough for all known systems. + * (If your compiler itself needs names to be unique in less than 15 + * characters, you are out of luck. Get a better compiler.) + */ + +#ifdef NEED_SHORT_EXTERNAL_NAMES +#define jpeg_std_error jStdError +#define jpeg_CreateCompress jCreaCompress +#define jpeg_CreateDecompress jCreaDecompress +#define jpeg_destroy_compress jDestCompress +#define jpeg_destroy_decompress jDestDecompress +#define jpeg_stdio_dest jStdDest +#define jpeg_stdio_src jStdSrc +#define jpeg_mem_dest jMemDest +#define jpeg_mem_src jMemSrc +#define jpeg_set_defaults jSetDefaults +#define jpeg_set_colorspace jSetColorspace +#define jpeg_default_colorspace jDefColorspace +#define jpeg_set_quality jSetQuality +#define jpeg_set_linear_quality jSetLQuality +#define jpeg_default_qtables jDefQTables +#define jpeg_add_quant_table jAddQuantTable +#define jpeg_quality_scaling jQualityScaling +#define jpeg_simple_progression jSimProgress +#define jpeg_suppress_tables jSuppressTables +#define jpeg_alloc_quant_table jAlcQTable +#define jpeg_alloc_huff_table jAlcHTable +#define jpeg_start_compress jStrtCompress +#define jpeg_write_scanlines jWrtScanlines +#define jpeg_finish_compress jFinCompress +#define jpeg_calc_jpeg_dimensions jCjpegDimensions +#define jpeg_write_raw_data jWrtRawData +#define jpeg_write_marker jWrtMarker +#define jpeg_write_m_header jWrtMHeader +#define jpeg_write_m_byte jWrtMByte +#define jpeg_write_tables jWrtTables +#define jpeg_read_header jReadHeader +#define jpeg_start_decompress jStrtDecompress +#define jpeg_read_scanlines jReadScanlines +#define jpeg_finish_decompress jFinDecompress +#define jpeg_read_raw_data jReadRawData +#define jpeg_has_multiple_scans jHasMultScn +#define jpeg_start_output jStrtOutput +#define jpeg_finish_output jFinOutput +#define jpeg_input_complete jInComplete +#define jpeg_new_colormap jNewCMap +#define jpeg_consume_input jConsumeInput +#define jpeg_core_output_dimensions jCoreDimensions +#define jpeg_calc_output_dimensions jCalcDimensions +#define jpeg_save_markers jSaveMarkers +#define jpeg_set_marker_processor jSetMarker +#define jpeg_read_coefficients jReadCoefs +#define jpeg_write_coefficients jWrtCoefs +#define jpeg_copy_critical_parameters jCopyCrit +#define jpeg_abort_compress jAbrtCompress +#define jpeg_abort_decompress jAbrtDecompress +#define jpeg_abort jAbort +#define jpeg_destroy jDestroy +#define jpeg_resync_to_restart jResyncRestart +#endif /* NEED_SHORT_EXTERNAL_NAMES */ + + +/* Default error-management setup */ +EXTERN(struct jpeg_error_mgr *) jpeg_std_error + JPP((struct jpeg_error_mgr * err)); + +/* Initialization of JPEG compression objects. + * jpeg_create_compress() and jpeg_create_decompress() are the exported + * names that applications should call. These expand to calls on + * jpeg_CreateCompress and jpeg_CreateDecompress with additional information + * passed for version mismatch checking. + * NB: you must set up the error-manager BEFORE calling jpeg_create_xxx. + */ +#define jpeg_create_compress(cinfo) \ + jpeg_CreateCompress((cinfo), JPEG_LIB_VERSION, \ + (size_t) sizeof(struct jpeg_compress_struct)) +#define jpeg_create_decompress(cinfo) \ + jpeg_CreateDecompress((cinfo), JPEG_LIB_VERSION, \ + (size_t) sizeof(struct jpeg_decompress_struct)) +EXTERN(void) jpeg_CreateCompress JPP((j_compress_ptr cinfo, + int version, size_t structsize)); +EXTERN(void) jpeg_CreateDecompress JPP((j_decompress_ptr cinfo, + int version, size_t structsize)); +/* Destruction of JPEG compression objects */ +EXTERN(void) jpeg_destroy_compress JPP((j_compress_ptr cinfo)); +EXTERN(void) jpeg_destroy_decompress JPP((j_decompress_ptr cinfo)); + +/* Standard data source and destination managers: stdio streams. */ +/* Caller is responsible for opening the file before and closing after. */ +EXTERN(void) jpeg_stdio_dest JPP((j_compress_ptr cinfo, FILE * outfile)); +EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE * infile)); + +/* Data source and destination managers: memory buffers. */ +EXTERN(void) jpeg_mem_dest JPP((j_compress_ptr cinfo, + unsigned char ** outbuffer, + unsigned long * outsize)); +EXTERN(void) jpeg_mem_src JPP((j_decompress_ptr cinfo, + unsigned char * inbuffer, + unsigned long insize)); + +/* Default parameter setup for compression */ +EXTERN(void) jpeg_set_defaults JPP((j_compress_ptr cinfo)); +/* Compression parameter setup aids */ +EXTERN(void) jpeg_set_colorspace JPP((j_compress_ptr cinfo, + J_COLOR_SPACE colorspace)); +EXTERN(void) jpeg_default_colorspace JPP((j_compress_ptr cinfo)); +EXTERN(void) jpeg_set_quality JPP((j_compress_ptr cinfo, int quality, + boolean force_baseline)); +EXTERN(void) jpeg_set_linear_quality JPP((j_compress_ptr cinfo, + int scale_factor, + boolean force_baseline)); +EXTERN(void) jpeg_default_qtables JPP((j_compress_ptr cinfo, + boolean force_baseline)); +EXTERN(void) jpeg_add_quant_table JPP((j_compress_ptr cinfo, int which_tbl, + const unsigned int *basic_table, + int scale_factor, + boolean force_baseline)); +EXTERN(int) jpeg_quality_scaling JPP((int quality)); +EXTERN(void) jpeg_simple_progression JPP((j_compress_ptr cinfo)); +EXTERN(void) jpeg_suppress_tables JPP((j_compress_ptr cinfo, + boolean suppress)); +EXTERN(JQUANT_TBL *) jpeg_alloc_quant_table JPP((j_common_ptr cinfo)); +EXTERN(JHUFF_TBL *) jpeg_alloc_huff_table JPP((j_common_ptr cinfo)); + +/* Main entry points for compression */ +EXTERN(void) jpeg_start_compress JPP((j_compress_ptr cinfo, + boolean write_all_tables)); +EXTERN(JDIMENSION) jpeg_write_scanlines JPP((j_compress_ptr cinfo, + JSAMPARRAY scanlines, + JDIMENSION num_lines)); +EXTERN(void) jpeg_finish_compress JPP((j_compress_ptr cinfo)); + +/* Precalculate JPEG dimensions for current compression parameters. */ +EXTERN(void) jpeg_calc_jpeg_dimensions JPP((j_compress_ptr cinfo)); + +/* Replaces jpeg_write_scanlines when writing raw downsampled data. */ +EXTERN(JDIMENSION) jpeg_write_raw_data JPP((j_compress_ptr cinfo, + JSAMPIMAGE data, + JDIMENSION num_lines)); + +/* Write a special marker. See libjpeg.txt concerning safe usage. */ +EXTERN(void) jpeg_write_marker + JPP((j_compress_ptr cinfo, int marker, + const JOCTET * dataptr, unsigned int datalen)); +/* Same, but piecemeal. */ +EXTERN(void) jpeg_write_m_header + JPP((j_compress_ptr cinfo, int marker, unsigned int datalen)); +EXTERN(void) jpeg_write_m_byte + JPP((j_compress_ptr cinfo, int val)); + +/* Alternate compression function: just write an abbreviated table file */ +EXTERN(void) jpeg_write_tables JPP((j_compress_ptr cinfo)); + +/* Decompression startup: read start of JPEG datastream to see what's there */ +EXTERN(int) jpeg_read_header JPP((j_decompress_ptr cinfo, + boolean require_image)); +/* Return value is one of: */ +#define JPEG_SUSPENDED 0 /* Suspended due to lack of input data */ +#define JPEG_HEADER_OK 1 /* Found valid image datastream */ +#define JPEG_HEADER_TABLES_ONLY 2 /* Found valid table-specs-only datastream */ +/* If you pass require_image = TRUE (normal case), you need not check for + * a TABLES_ONLY return code; an abbreviated file will cause an error exit. + * JPEG_SUSPENDED is only possible if you use a data source module that can + * give a suspension return (the stdio source module doesn't). + */ + +/* Main entry points for decompression */ +EXTERN(boolean) jpeg_start_decompress JPP((j_decompress_ptr cinfo)); +EXTERN(JDIMENSION) jpeg_read_scanlines JPP((j_decompress_ptr cinfo, + JSAMPARRAY scanlines, + JDIMENSION max_lines)); +EXTERN(boolean) jpeg_finish_decompress JPP((j_decompress_ptr cinfo)); + +/* Replaces jpeg_read_scanlines when reading raw downsampled data. */ +EXTERN(JDIMENSION) jpeg_read_raw_data JPP((j_decompress_ptr cinfo, + JSAMPIMAGE data, + JDIMENSION max_lines)); + +/* Additional entry points for buffered-image mode. */ +EXTERN(boolean) jpeg_has_multiple_scans JPP((j_decompress_ptr cinfo)); +EXTERN(boolean) jpeg_start_output JPP((j_decompress_ptr cinfo, + int scan_number)); +EXTERN(boolean) jpeg_finish_output JPP((j_decompress_ptr cinfo)); +EXTERN(boolean) jpeg_input_complete JPP((j_decompress_ptr cinfo)); +EXTERN(void) jpeg_new_colormap JPP((j_decompress_ptr cinfo)); +EXTERN(int) jpeg_consume_input JPP((j_decompress_ptr cinfo)); +/* Return value is one of: */ +/* #define JPEG_SUSPENDED 0 Suspended due to lack of input data */ +#define JPEG_REACHED_SOS 1 /* Reached start of new scan */ +#define JPEG_REACHED_EOI 2 /* Reached end of image */ +#define JPEG_ROW_COMPLETED 3 /* Completed one iMCU row */ +#define JPEG_SCAN_COMPLETED 4 /* Completed last iMCU row of a scan */ + +/* Precalculate output dimensions for current decompression parameters. */ +EXTERN(void) jpeg_core_output_dimensions JPP((j_decompress_ptr cinfo)); +EXTERN(void) jpeg_calc_output_dimensions JPP((j_decompress_ptr cinfo)); + +/* Control saving of COM and APPn markers into marker_list. */ +EXTERN(void) jpeg_save_markers + JPP((j_decompress_ptr cinfo, int marker_code, + unsigned int length_limit)); + +/* Install a special processing method for COM or APPn markers. */ +EXTERN(void) jpeg_set_marker_processor + JPP((j_decompress_ptr cinfo, int marker_code, + jpeg_marker_parser_method routine)); + +/* Read or write raw DCT coefficients --- useful for lossless transcoding. */ +EXTERN(jvirt_barray_ptr *) jpeg_read_coefficients JPP((j_decompress_ptr cinfo)); +EXTERN(void) jpeg_write_coefficients JPP((j_compress_ptr cinfo, + jvirt_barray_ptr * coef_arrays)); +EXTERN(void) jpeg_copy_critical_parameters JPP((j_decompress_ptr srcinfo, + j_compress_ptr dstinfo)); + +/* If you choose to abort compression or decompression before completing + * jpeg_finish_(de)compress, then you need to clean up to release memory, + * temporary files, etc. You can just call jpeg_destroy_(de)compress + * if you're done with the JPEG object, but if you want to clean it up and + * reuse it, call this: + */ +EXTERN(void) jpeg_abort_compress JPP((j_compress_ptr cinfo)); +EXTERN(void) jpeg_abort_decompress JPP((j_decompress_ptr cinfo)); + +/* Generic versions of jpeg_abort and jpeg_destroy that work on either + * flavor of JPEG object. These may be more convenient in some places. + */ +EXTERN(void) jpeg_abort JPP((j_common_ptr cinfo)); +EXTERN(void) jpeg_destroy JPP((j_common_ptr cinfo)); + +/* Default restart-marker-resync procedure for use by data source modules */ +EXTERN(boolean) jpeg_resync_to_restart JPP((j_decompress_ptr cinfo, + int desired)); + + +/* These marker codes are exported since applications and data source modules + * are likely to want to use them. + */ + +#define JPEG_RST0 0xD0 /* RST0 marker code */ +#define JPEG_EOI 0xD9 /* EOI marker code */ +#define JPEG_APP0 0xE0 /* APP0 marker code */ +#define JPEG_COM 0xFE /* COM marker code */ + + +/* If we have a brain-damaged compiler that emits warnings (or worse, errors) + * for structure definitions that are never filled in, keep it quiet by + * supplying dummy definitions for the various substructures. + */ + +#ifdef INCOMPLETE_TYPES_BROKEN +#ifndef JPEG_INTERNALS /* will be defined in jpegint.h */ +struct jvirt_sarray_control { long dummy; }; +struct jvirt_barray_control { long dummy; }; +struct jpeg_comp_master { long dummy; }; +struct jpeg_c_main_controller { long dummy; }; +struct jpeg_c_prep_controller { long dummy; }; +struct jpeg_c_coef_controller { long dummy; }; +struct jpeg_marker_writer { long dummy; }; +struct jpeg_color_converter { long dummy; }; +struct jpeg_downsampler { long dummy; }; +struct jpeg_forward_dct { long dummy; }; +struct jpeg_entropy_encoder { long dummy; }; +struct jpeg_decomp_master { long dummy; }; +struct jpeg_d_main_controller { long dummy; }; +struct jpeg_d_coef_controller { long dummy; }; +struct jpeg_d_post_controller { long dummy; }; +struct jpeg_input_controller { long dummy; }; +struct jpeg_marker_reader { long dummy; }; +struct jpeg_entropy_decoder { long dummy; }; +struct jpeg_inverse_dct { long dummy; }; +struct jpeg_upsampler { long dummy; }; +struct jpeg_color_deconverter { long dummy; }; +struct jpeg_color_quantizer { long dummy; }; +#endif /* JPEG_INTERNALS */ +#endif /* INCOMPLETE_TYPES_BROKEN */ + + +/* + * The JPEG library modules define JPEG_INTERNALS before including this file. + * The internal structure declarations are read only when that is true. + * Applications using the library should not include jpegint.h, but may wish + * to include jerror.h. + */ + +#ifdef JPEG_INTERNALS +#include "jpegint.h" /* fetch private declarations */ +#include "jerror.h" /* fetch error codes too */ +#endif + +#ifdef __cplusplus +#ifndef DONT_USE_EXTERN_C +} +#endif +#endif + +#endif /* JPEGLIB_H */ diff --git a/ios/include/png/png.h b/ios/include/png/png.h new file mode 100755 index 00000000..997130d3 --- /dev/null +++ b/ios/include/png/png.h @@ -0,0 +1,3282 @@ + +/* png.h - header file for PNG reference library + * + * libpng version 1.6.16, December 22, 2014 + * Copyright (c) 1998-2014 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * + * This code is released under the libpng license (See LICENSE, below) + * + * Authors and maintainers: + * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat + * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger + * libpng versions 0.97, January 1998, through 1.6.16, December 22, 2014: Glenn + * See also "Contributing Authors", below. + * + * Note about libpng version numbers: + * + * Due to various miscommunications, unforeseen code incompatibilities + * and occasional factors outside the authors' control, version numbering + * on the library has not always been consistent and straightforward. + * The following table summarizes matters since version 0.89c, which was + * the first widely used release: + * + * source png.h png.h shared-lib + * version string int version + * ------- ------ ----- ---------- + * 0.89c "1.0 beta 3" 0.89 89 1.0.89 + * 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90] + * 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95] + * 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96] + * 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97] + * 0.97c 0.97 97 2.0.97 + * 0.98 0.98 98 2.0.98 + * 0.99 0.99 98 2.0.99 + * 0.99a-m 0.99 99 2.0.99 + * 1.00 1.00 100 2.1.0 [100 should be 10000] + * 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000] + * 1.0.1 png.h string is 10001 2.1.0 + * 1.0.1a-e identical to the 10002 from here on, the shared library + * 1.0.2 source version) 10002 is 2.V where V is the source code + * 1.0.2a-b 10003 version, except as noted. + * 1.0.3 10003 + * 1.0.3a-d 10004 + * 1.0.4 10004 + * 1.0.4a-f 10005 + * 1.0.5 (+ 2 patches) 10005 + * 1.0.5a-d 10006 + * 1.0.5e-r 10100 (not source compatible) + * 1.0.5s-v 10006 (not binary compatible) + * 1.0.6 (+ 3 patches) 10006 (still binary incompatible) + * 1.0.6d-f 10007 (still binary incompatible) + * 1.0.6g 10007 + * 1.0.6h 10007 10.6h (testing xy.z so-numbering) + * 1.0.6i 10007 10.6i + * 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0) + * 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible) + * 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible) + * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) + * 1.0.7 1 10007 (still compatible) + * 1.0.8beta1-4 1 10008 2.1.0.8beta1-4 + * 1.0.8rc1 1 10008 2.1.0.8rc1 + * 1.0.8 1 10008 2.1.0.8 + * 1.0.9beta1-6 1 10009 2.1.0.9beta1-6 + * 1.0.9rc1 1 10009 2.1.0.9rc1 + * 1.0.9beta7-10 1 10009 2.1.0.9beta7-10 + * 1.0.9rc2 1 10009 2.1.0.9rc2 + * 1.0.9 1 10009 2.1.0.9 + * 1.0.10beta1 1 10010 2.1.0.10beta1 + * 1.0.10rc1 1 10010 2.1.0.10rc1 + * 1.0.10 1 10010 2.1.0.10 + * 1.0.11beta1-3 1 10011 2.1.0.11beta1-3 + * 1.0.11rc1 1 10011 2.1.0.11rc1 + * 1.0.11 1 10011 2.1.0.11 + * 1.0.12beta1-2 2 10012 2.1.0.12beta1-2 + * 1.0.12rc1 2 10012 2.1.0.12rc1 + * 1.0.12 2 10012 2.1.0.12 + * 1.1.0a-f - 10100 2.1.1.0a-f (branch abandoned) + * 1.2.0beta1-2 2 10200 2.1.2.0beta1-2 + * 1.2.0beta3-5 3 10200 3.1.2.0beta3-5 + * 1.2.0rc1 3 10200 3.1.2.0rc1 + * 1.2.0 3 10200 3.1.2.0 + * 1.2.1beta1-4 3 10201 3.1.2.1beta1-4 + * 1.2.1rc1-2 3 10201 3.1.2.1rc1-2 + * 1.2.1 3 10201 3.1.2.1 + * 1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6 + * 1.0.13beta1 10 10013 10.so.0.1.0.13beta1 + * 1.0.13rc1 10 10013 10.so.0.1.0.13rc1 + * 1.2.2rc1 12 10202 12.so.0.1.2.2rc1 + * 1.0.13 10 10013 10.so.0.1.0.13 + * 1.2.2 12 10202 12.so.0.1.2.2 + * 1.2.3rc1-6 12 10203 12.so.0.1.2.3rc1-6 + * 1.2.3 12 10203 12.so.0.1.2.3 + * 1.2.4beta1-3 13 10204 12.so.0.1.2.4beta1-3 + * 1.0.14rc1 13 10014 10.so.0.1.0.14rc1 + * 1.2.4rc1 13 10204 12.so.0.1.2.4rc1 + * 1.0.14 10 10014 10.so.0.1.0.14 + * 1.2.4 13 10204 12.so.0.1.2.4 + * 1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2 + * 1.0.15rc1-3 10 10015 10.so.0.1.0.15rc1-3 + * 1.2.5rc1-3 13 10205 12.so.0.1.2.5rc1-3 + * 1.0.15 10 10015 10.so.0.1.0.15 + * 1.2.5 13 10205 12.so.0.1.2.5 + * 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4 + * 1.0.16 10 10016 10.so.0.1.0.16 + * 1.2.6 13 10206 12.so.0.1.2.6 + * 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2 + * 1.0.17rc1 10 10017 12.so.0.1.0.17rc1 + * 1.2.7rc1 13 10207 12.so.0.1.2.7rc1 + * 1.0.17 10 10017 12.so.0.1.0.17 + * 1.2.7 13 10207 12.so.0.1.2.7 + * 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5 + * 1.0.18rc1-5 10 10018 12.so.0.1.0.18rc1-5 + * 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5 + * 1.0.18 10 10018 12.so.0.1.0.18 + * 1.2.8 13 10208 12.so.0.1.2.8 + * 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3 + * 1.2.9beta4-11 13 10209 12.so.0.9[.0] + * 1.2.9rc1 13 10209 12.so.0.9[.0] + * 1.2.9 13 10209 12.so.0.9[.0] + * 1.2.10beta1-7 13 10210 12.so.0.10[.0] + * 1.2.10rc1-2 13 10210 12.so.0.10[.0] + * 1.2.10 13 10210 12.so.0.10[.0] + * 1.4.0beta1-5 14 10400 14.so.0.0[.0] + * 1.2.11beta1-4 13 10211 12.so.0.11[.0] + * 1.4.0beta7-8 14 10400 14.so.0.0[.0] + * 1.2.11 13 10211 12.so.0.11[.0] + * 1.2.12 13 10212 12.so.0.12[.0] + * 1.4.0beta9-14 14 10400 14.so.0.0[.0] + * 1.2.13 13 10213 12.so.0.13[.0] + * 1.4.0beta15-36 14 10400 14.so.0.0[.0] + * 1.4.0beta37-87 14 10400 14.so.14.0[.0] + * 1.4.0rc01 14 10400 14.so.14.0[.0] + * 1.4.0beta88-109 14 10400 14.so.14.0[.0] + * 1.4.0rc02-08 14 10400 14.so.14.0[.0] + * 1.4.0 14 10400 14.so.14.0[.0] + * 1.4.1beta01-03 14 10401 14.so.14.1[.0] + * 1.4.1rc01 14 10401 14.so.14.1[.0] + * 1.4.1beta04-12 14 10401 14.so.14.1[.0] + * 1.4.1 14 10401 14.so.14.1[.0] + * 1.4.2 14 10402 14.so.14.2[.0] + * 1.4.3 14 10403 14.so.14.3[.0] + * 1.4.4 14 10404 14.so.14.4[.0] + * 1.5.0beta01-58 15 10500 15.so.15.0[.0] + * 1.5.0rc01-07 15 10500 15.so.15.0[.0] + * 1.5.0 15 10500 15.so.15.0[.0] + * 1.5.1beta01-11 15 10501 15.so.15.1[.0] + * 1.5.1rc01-02 15 10501 15.so.15.1[.0] + * 1.5.1 15 10501 15.so.15.1[.0] + * 1.5.2beta01-03 15 10502 15.so.15.2[.0] + * 1.5.2rc01-03 15 10502 15.so.15.2[.0] + * 1.5.2 15 10502 15.so.15.2[.0] + * 1.5.3beta01-10 15 10503 15.so.15.3[.0] + * 1.5.3rc01-02 15 10503 15.so.15.3[.0] + * 1.5.3beta11 15 10503 15.so.15.3[.0] + * 1.5.3 [omitted] + * 1.5.4beta01-08 15 10504 15.so.15.4[.0] + * 1.5.4rc01 15 10504 15.so.15.4[.0] + * 1.5.4 15 10504 15.so.15.4[.0] + * 1.5.5beta01-08 15 10505 15.so.15.5[.0] + * 1.5.5rc01 15 10505 15.so.15.5[.0] + * 1.5.5 15 10505 15.so.15.5[.0] + * 1.5.6beta01-07 15 10506 15.so.15.6[.0] + * 1.5.6rc01-03 15 10506 15.so.15.6[.0] + * 1.5.6 15 10506 15.so.15.6[.0] + * 1.5.7beta01-05 15 10507 15.so.15.7[.0] + * 1.5.7rc01-03 15 10507 15.so.15.7[.0] + * 1.5.7 15 10507 15.so.15.7[.0] + * 1.6.0beta01-40 16 10600 16.so.16.0[.0] + * 1.6.0rc01-08 16 10600 16.so.16.0[.0] + * 1.6.0 16 10600 16.so.16.0[.0] + * 1.6.1beta01-09 16 10601 16.so.16.1[.0] + * 1.6.1rc01 16 10601 16.so.16.1[.0] + * 1.6.1 16 10601 16.so.16.1[.0] + * 1.6.2beta01 16 10602 16.so.16.2[.0] + * 1.6.2rc01-06 16 10602 16.so.16.2[.0] + * 1.6.2 16 10602 16.so.16.2[.0] + * 1.6.3beta01-11 16 10603 16.so.16.3[.0] + * 1.6.3rc01 16 10603 16.so.16.3[.0] + * 1.6.3 16 10603 16.so.16.3[.0] + * 1.6.4beta01-02 16 10604 16.so.16.4[.0] + * 1.6.4rc01 16 10604 16.so.16.4[.0] + * 1.6.4 16 10604 16.so.16.4[.0] + * 1.6.5 16 10605 16.so.16.5[.0] + * 1.6.6 16 10606 16.so.16.6[.0] + * 1.6.7beta01-04 16 10607 16.so.16.7[.0] + * 1.6.7rc01-03 16 10607 16.so.16.7[.0] + * 1.6.7 16 10607 16.so.16.7[.0] + * 1.6.8beta01-02 16 10608 16.so.16.8[.0] + * 1.6.8rc01-02 16 10608 16.so.16.8[.0] + * 1.6.8 16 10608 16.so.16.8[.0] + * 1.6.9beta01-04 16 10609 16.so.16.9[.0] + * 1.6.9rc01-02 16 10609 16.so.16.9[.0] + * 1.6.9 16 10609 16.so.16.9[.0] + * 1.6.10beta01-03 16 10610 16.so.16.10[.0] + * 1.6.10rc01-03 16 10610 16.so.16.10[.0] + * 1.6.10 16 10610 16.so.16.10[.0] + * 1.6.11beta01-06 16 10611 16.so.16.11[.0] + * 1.6.11rc01-02 16 10611 16.so.16.11[.0] + * 1.6.11 16 10611 16.so.16.11[.0] + * 1.6.12rc01-03 16 10612 16.so.16.12[.0] + * 1.6.12 16 10612 16.so.16.12[.0] + * 1.6.13beta01-04 16 10613 16.so.16.13[.0] + * 1.6.13rc01-02 16 10613 16.so.16.13[.0] + * 1.6.13 16 10613 16.so.16.13[.0] + * 1.6.14beta01-07 16 10614 16.so.16.14[.0] + * 1.6.14rc01-02 16 10614 16.so.16.14[.0] + * 1.6.14 16 10614 16.so.16.14[.0] + * 1.6.15beta01-08 16 10615 16.so.16.15[.0] + * 1.6.15rc01-03 16 10615 16.so.16.15[.0] + * 1.6.15 16 10615 16.so.16.15[.0] + * 1.6.16beta01-03 16 10616 16.so.16.16[.0] + * 1.6.16rc01-02 16 10616 16.so.16.16[.0] + * 1.6.16 16 10616 16.so.16.16[.0] + * + * Henceforth the source version will match the shared-library major + * and minor numbers; the shared-library major version number will be + * used for changes in backward compatibility, as it is intended. The + * PNG_LIBPNG_VER macro, which is not used within libpng but is available + * for applications, is an unsigned integer of the form xyyzz corresponding + * to the source version x.y.z (leading zeros in y and z). Beta versions + * were given the previous public release number plus a letter, until + * version 1.0.6j; from then on they were given the upcoming public + * release number plus "betaNN" or "rcNN". + * + * Binary incompatibility exists only when applications make direct access + * to the info_ptr or png_ptr members through png.h, and the compiled + * application is loaded with a different version of the library. + * + * DLLNUM will change each time there are forward or backward changes + * in binary compatibility (e.g., when a new feature is added). + * + * See libpng-manual.txt or libpng.3 for more information. The PNG + * specification is available as a W3C Recommendation and as an ISO + * Specification, + * + * If you just need to read a PNG file and don't want to read the documentation + * skip to the end of this file and read the section entitled 'simplified API'. + */ + +/* Version information for png.h - this should match the version in png.c */ +#define PNG_LIBPNG_VER_STRING "1.6.16" +#define PNG_HEADER_VERSION_STRING \ + " libpng version 1.6.16 - December 22, 2014\n" + +#define PNG_LIBPNG_VER_SONUM 16 +#define PNG_LIBPNG_VER_DLLNUM 16 + +/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ +#define PNG_LIBPNG_VER_MAJOR 1 +#define PNG_LIBPNG_VER_MINOR 6 +#define PNG_LIBPNG_VER_RELEASE 16 + +/* This should match the numeric part of the final component of + * PNG_LIBPNG_VER_STRING, omitting any leading zero: + */ + +#define PNG_LIBPNG_VER_BUILD 0 + +/* Release Status */ +#define PNG_LIBPNG_BUILD_ALPHA 1 +#define PNG_LIBPNG_BUILD_BETA 2 +#define PNG_LIBPNG_BUILD_RC 3 +#define PNG_LIBPNG_BUILD_STABLE 4 +#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7 + +/* Release-Specific Flags */ +#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with + PNG_LIBPNG_BUILD_STABLE only */ +#define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with + PNG_LIBPNG_BUILD_SPECIAL */ +#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with + PNG_LIBPNG_BUILD_PRIVATE */ + +#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE + +/* Careful here. At one time, Guy wanted to use 082, but that would be octal. + * We must not include leading zeros. + * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only + * version 1.0.0 was mis-numbered 100 instead of 10000). From + * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release + */ +#define PNG_LIBPNG_VER 10616 /* 1.6.16 */ + +/* Library configuration: these options cannot be changed after + * the library has been built. + */ +#ifndef PNGLCONF_H + /* If pnglibconf.h is missing, you can + * copy scripts/pnglibconf.h.prebuilt to pnglibconf.h + */ +# include "pnglibconf.h" +#endif + +#ifndef PNG_VERSION_INFO_ONLY + /* Machine specific configuration. */ +# include "pngconf.h" +#endif + +/* + * Added at libpng-1.2.8 + * + * Ref MSDN: Private as priority over Special + * VS_FF_PRIVATEBUILD File *was not* built using standard release + * procedures. If this value is given, the StringFileInfo block must + * contain a PrivateBuild string. + * + * VS_FF_SPECIALBUILD File *was* built by the original company using + * standard release procedures but is a variation of the standard + * file of the same version number. If this value is given, the + * StringFileInfo block must contain a SpecialBuild string. + */ + +#ifdef PNG_USER_PRIVATEBUILD /* From pnglibconf.h */ +# define PNG_LIBPNG_BUILD_TYPE \ + (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE) +#else +# ifdef PNG_LIBPNG_SPECIALBUILD +# define PNG_LIBPNG_BUILD_TYPE \ + (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL) +# else +# define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE) +# endif +#endif + +#ifndef PNG_VERSION_INFO_ONLY + +/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* Version information for C files, stored in png.c. This had better match + * the version above. + */ +#define png_libpng_ver png_get_header_ver(NULL) + +/* This file is arranged in several sections: + * + * 1. Any configuration options that can be specified by for the application + * code when it is built. (Build time configuration is in pnglibconf.h) + * 2. Type definitions (base types are defined in pngconf.h), structure + * definitions. + * 3. Exported library functions. + * 4. Simplified API. + * + * The library source code has additional files (principally pngpriv.h) that + * allow configuration of the library. + */ +/* Section 1: run time configuration + * See pnglibconf.h for build time configuration + * + * Run time configuration allows the application to choose between + * implementations of certain arithmetic APIs. The default is set + * at build time and recorded in pnglibconf.h, but it is safe to + * override these (and only these) settings. Note that this won't + * change what the library does, only application code, and the + * settings can (and probably should) be made on a per-file basis + * by setting the #defines before including png.h + * + * Use macros to read integers from PNG data or use the exported + * functions? + * PNG_USE_READ_MACROS: use the macros (see below) Note that + * the macros evaluate their argument multiple times. + * PNG_NO_USE_READ_MACROS: call the relevant library function. + * + * Use the alternative algorithm for compositing alpha samples that + * does not use division? + * PNG_READ_COMPOSITE_NODIV_SUPPORTED: use the 'no division' + * algorithm. + * PNG_NO_READ_COMPOSITE_NODIV: use the 'division' algorithm. + * + * How to handle benign errors if PNG_ALLOW_BENIGN_ERRORS is + * false? + * PNG_ALLOW_BENIGN_ERRORS: map calls to the benign error + * APIs to png_warning. + * Otherwise the calls are mapped to png_error. + */ + +/* Section 2: type definitions, including structures and compile time + * constants. + * See pngconf.h for base types that vary by machine/system + */ + +/* This triggers a compiler error in png.c, if png.c and png.h + * do not agree upon the version number. + */ +typedef char* png_libpng_version_1_6_16; + +/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. + * + * png_struct is the cache of information used while reading or writing a single + * PNG file. One of these is always required, although the simplified API + * (below) hides the creation and destruction of it. + */ +typedef struct png_struct_def png_struct; +typedef const png_struct * png_const_structp; +typedef png_struct * png_structp; +typedef png_struct * * png_structpp; + +/* png_info contains information read from or to be written to a PNG file. One + * or more of these must exist while reading or creating a PNG file. The + * information is not used by libpng during read but is used to control what + * gets written when a PNG file is created. "png_get_" function calls read + * information during read and "png_set_" functions calls write information + * when creating a PNG. + * been moved into a separate header file that is not accessible to + * applications. Read libpng-manual.txt or libpng.3 for more info. + */ +typedef struct png_info_def png_info; +typedef png_info * png_infop; +typedef const png_info * png_const_infop; +typedef png_info * * png_infopp; + +/* Types with names ending 'p' are pointer types. The corresponding types with + * names ending 'rp' are identical pointer types except that the pointer is + * marked 'restrict', which means that it is the only pointer to the object + * passed to the function. Applications should not use the 'restrict' types; + * it is always valid to pass 'p' to a pointer with a function argument of the + * corresponding 'rp' type. Different compilers have different rules with + * regard to type matching in the presence of 'restrict'. For backward + * compatibility libpng callbacks never have 'restrict' in their parameters and, + * consequentially, writing portable application code is extremely difficult if + * an attempt is made to use 'restrict'. + */ +typedef png_struct * PNG_RESTRICT png_structrp; +typedef const png_struct * PNG_RESTRICT png_const_structrp; +typedef png_info * PNG_RESTRICT png_inforp; +typedef const png_info * PNG_RESTRICT png_const_inforp; + +/* Three color definitions. The order of the red, green, and blue, (and the + * exact size) is not important, although the size of the fields need to + * be png_byte or png_uint_16 (as defined below). + */ +typedef struct png_color_struct +{ + png_byte red; + png_byte green; + png_byte blue; +} png_color; +typedef png_color * png_colorp; +typedef const png_color * png_const_colorp; +typedef png_color * * png_colorpp; + +typedef struct png_color_16_struct +{ + png_byte index; /* used for palette files */ + png_uint_16 red; /* for use in red green blue files */ + png_uint_16 green; + png_uint_16 blue; + png_uint_16 gray; /* for use in grayscale files */ +} png_color_16; +typedef png_color_16 * png_color_16p; +typedef const png_color_16 * png_const_color_16p; +typedef png_color_16 * * png_color_16pp; + +typedef struct png_color_8_struct +{ + png_byte red; /* for use in red green blue files */ + png_byte green; + png_byte blue; + png_byte gray; /* for use in grayscale files */ + png_byte alpha; /* for alpha channel files */ +} png_color_8; +typedef png_color_8 * png_color_8p; +typedef const png_color_8 * png_const_color_8p; +typedef png_color_8 * * png_color_8pp; + +/* + * The following two structures are used for the in-core representation + * of sPLT chunks. + */ +typedef struct png_sPLT_entry_struct +{ + png_uint_16 red; + png_uint_16 green; + png_uint_16 blue; + png_uint_16 alpha; + png_uint_16 frequency; +} png_sPLT_entry; +typedef png_sPLT_entry * png_sPLT_entryp; +typedef const png_sPLT_entry * png_const_sPLT_entryp; +typedef png_sPLT_entry * * png_sPLT_entrypp; + +/* When the depth of the sPLT palette is 8 bits, the color and alpha samples + * occupy the LSB of their respective members, and the MSB of each member + * is zero-filled. The frequency member always occupies the full 16 bits. + */ + +typedef struct png_sPLT_struct +{ + png_charp name; /* palette name */ + png_byte depth; /* depth of palette samples */ + png_sPLT_entryp entries; /* palette entries */ + png_int_32 nentries; /* number of palette entries */ +} png_sPLT_t; +typedef png_sPLT_t * png_sPLT_tp; +typedef const png_sPLT_t * png_const_sPLT_tp; +typedef png_sPLT_t * * png_sPLT_tpp; + +#ifdef PNG_TEXT_SUPPORTED +/* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file, + * and whether that contents is compressed or not. The "key" field + * points to a regular zero-terminated C string. The "text" fields can be a + * regular C string, an empty string, or a NULL pointer. + * However, the structure returned by png_get_text() will always contain + * the "text" field as a regular zero-terminated C string (possibly + * empty), never a NULL pointer, so it can be safely used in printf() and + * other string-handling functions. Note that the "itxt_length", "lang", and + * "lang_key" members of the structure only exist when the library is built + * with iTXt chunk support. Prior to libpng-1.4.0 the library was built by + * default without iTXt support. Also note that when iTXt *is* supported, + * the "lang" and "lang_key" fields contain NULL pointers when the + * "compression" field contains * PNG_TEXT_COMPRESSION_NONE or + * PNG_TEXT_COMPRESSION_zTXt. Note that the "compression value" is not the + * same as what appears in the PNG tEXt/zTXt/iTXt chunk's "compression flag" + * which is always 0 or 1, or its "compression method" which is always 0. + */ +typedef struct png_text_struct +{ + int compression; /* compression value: + -1: tEXt, none + 0: zTXt, deflate + 1: iTXt, none + 2: iTXt, deflate */ + png_charp key; /* keyword, 1-79 character description of "text" */ + png_charp text; /* comment, may be an empty string (ie "") + or a NULL pointer */ + png_size_t text_length; /* length of the text string */ + png_size_t itxt_length; /* length of the itxt string */ + png_charp lang; /* language code, 0-79 characters + or a NULL pointer */ + png_charp lang_key; /* keyword translated UTF-8 string, 0 or more + chars or a NULL pointer */ +} png_text; +typedef png_text * png_textp; +typedef const png_text * png_const_textp; +typedef png_text * * png_textpp; +#endif + +/* Supported compression types for text in PNG files (tEXt, and zTXt). + * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. */ +#define PNG_TEXT_COMPRESSION_NONE_WR -3 +#define PNG_TEXT_COMPRESSION_zTXt_WR -2 +#define PNG_TEXT_COMPRESSION_NONE -1 +#define PNG_TEXT_COMPRESSION_zTXt 0 +#define PNG_ITXT_COMPRESSION_NONE 1 +#define PNG_ITXT_COMPRESSION_zTXt 2 +#define PNG_TEXT_COMPRESSION_LAST 3 /* Not a valid value */ + +/* png_time is a way to hold the time in an machine independent way. + * Two conversions are provided, both from time_t and struct tm. There + * is no portable way to convert to either of these structures, as far + * as I know. If you know of a portable way, send it to me. As a side + * note - PNG has always been Year 2000 compliant! + */ +typedef struct png_time_struct +{ + png_uint_16 year; /* full year, as in, 1995 */ + png_byte month; /* month of year, 1 - 12 */ + png_byte day; /* day of month, 1 - 31 */ + png_byte hour; /* hour of day, 0 - 23 */ + png_byte minute; /* minute of hour, 0 - 59 */ + png_byte second; /* second of minute, 0 - 60 (for leap seconds) */ +} png_time; +typedef png_time * png_timep; +typedef const png_time * png_const_timep; +typedef png_time * * png_timepp; + +#if defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) ||\ + defined(PNG_USER_CHUNKS_SUPPORTED) +/* png_unknown_chunk is a structure to hold queued chunks for which there is + * no specific support. The idea is that we can use this to queue + * up private chunks for output even though the library doesn't actually + * know about their semantics. + * + * The data in the structure is set by libpng on read and used on write. + */ +typedef struct png_unknown_chunk_t +{ + png_byte name[5]; /* Textual chunk name with '\0' terminator */ + png_byte *data; /* Data, should not be modified on read! */ + png_size_t size; + + /* On write 'location' must be set using the flag values listed below. + * Notice that on read it is set by libpng however the values stored have + * more bits set than are listed below. Always treat the value as a + * bitmask. On write set only one bit - setting multiple bits may cause the + * chunk to be written in multiple places. + */ + png_byte location; /* mode of operation at read time */ +} +png_unknown_chunk; + +typedef png_unknown_chunk * png_unknown_chunkp; +typedef const png_unknown_chunk * png_const_unknown_chunkp; +typedef png_unknown_chunk * * png_unknown_chunkpp; +#endif + +/* Flag values for the unknown chunk location byte. */ +#define PNG_HAVE_IHDR 0x01 +#define PNG_HAVE_PLTE 0x02 +#define PNG_AFTER_IDAT 0x08 + +/* Maximum positive integer used in PNG is (2^31)-1 */ +#define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL) +#define PNG_UINT_32_MAX ((png_uint_32)(-1)) +#define PNG_SIZE_MAX ((png_size_t)(-1)) + +/* These are constants for fixed point values encoded in the + * PNG specification manner (x100000) + */ +#define PNG_FP_1 100000 +#define PNG_FP_HALF 50000 +#define PNG_FP_MAX ((png_fixed_point)0x7fffffffL) +#define PNG_FP_MIN (-PNG_FP_MAX) + +/* These describe the color_type field in png_info. */ +/* color type masks */ +#define PNG_COLOR_MASK_PALETTE 1 +#define PNG_COLOR_MASK_COLOR 2 +#define PNG_COLOR_MASK_ALPHA 4 + +/* color types. Note that not all combinations are legal */ +#define PNG_COLOR_TYPE_GRAY 0 +#define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE) +#define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR) +#define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA) +#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA) +/* aliases */ +#define PNG_COLOR_TYPE_RGBA PNG_COLOR_TYPE_RGB_ALPHA +#define PNG_COLOR_TYPE_GA PNG_COLOR_TYPE_GRAY_ALPHA + +/* This is for compression type. PNG 1.0-1.2 only define the single type. */ +#define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */ +#define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE + +/* This is for filter type. PNG 1.0-1.2 only define the single type. */ +#define PNG_FILTER_TYPE_BASE 0 /* Single row per-byte filtering */ +#define PNG_INTRAPIXEL_DIFFERENCING 64 /* Used only in MNG datastreams */ +#define PNG_FILTER_TYPE_DEFAULT PNG_FILTER_TYPE_BASE + +/* These are for the interlacing type. These values should NOT be changed. */ +#define PNG_INTERLACE_NONE 0 /* Non-interlaced image */ +#define PNG_INTERLACE_ADAM7 1 /* Adam7 interlacing */ +#define PNG_INTERLACE_LAST 2 /* Not a valid value */ + +/* These are for the oFFs chunk. These values should NOT be changed. */ +#define PNG_OFFSET_PIXEL 0 /* Offset in pixels */ +#define PNG_OFFSET_MICROMETER 1 /* Offset in micrometers (1/10^6 meter) */ +#define PNG_OFFSET_LAST 2 /* Not a valid value */ + +/* These are for the pCAL chunk. These values should NOT be changed. */ +#define PNG_EQUATION_LINEAR 0 /* Linear transformation */ +#define PNG_EQUATION_BASE_E 1 /* Exponential base e transform */ +#define PNG_EQUATION_ARBITRARY 2 /* Arbitrary base exponential transform */ +#define PNG_EQUATION_HYPERBOLIC 3 /* Hyperbolic sine transformation */ +#define PNG_EQUATION_LAST 4 /* Not a valid value */ + +/* These are for the sCAL chunk. These values should NOT be changed. */ +#define PNG_SCALE_UNKNOWN 0 /* unknown unit (image scale) */ +#define PNG_SCALE_METER 1 /* meters per pixel */ +#define PNG_SCALE_RADIAN 2 /* radians per pixel */ +#define PNG_SCALE_LAST 3 /* Not a valid value */ + +/* These are for the pHYs chunk. These values should NOT be changed. */ +#define PNG_RESOLUTION_UNKNOWN 0 /* pixels/unknown unit (aspect ratio) */ +#define PNG_RESOLUTION_METER 1 /* pixels/meter */ +#define PNG_RESOLUTION_LAST 2 /* Not a valid value */ + +/* These are for the sRGB chunk. These values should NOT be changed. */ +#define PNG_sRGB_INTENT_PERCEPTUAL 0 +#define PNG_sRGB_INTENT_RELATIVE 1 +#define PNG_sRGB_INTENT_SATURATION 2 +#define PNG_sRGB_INTENT_ABSOLUTE 3 +#define PNG_sRGB_INTENT_LAST 4 /* Not a valid value */ + +/* This is for text chunks */ +#define PNG_KEYWORD_MAX_LENGTH 79 + +/* Maximum number of entries in PLTE/sPLT/tRNS arrays */ +#define PNG_MAX_PALETTE_LENGTH 256 + +/* These determine if an ancillary chunk's data has been successfully read + * from the PNG header, or if the application has filled in the corresponding + * data in the info_struct to be written into the output file. The values + * of the PNG_INFO_ defines should NOT be changed. + */ +#define PNG_INFO_gAMA 0x0001 +#define PNG_INFO_sBIT 0x0002 +#define PNG_INFO_cHRM 0x0004 +#define PNG_INFO_PLTE 0x0008 +#define PNG_INFO_tRNS 0x0010 +#define PNG_INFO_bKGD 0x0020 +#define PNG_INFO_hIST 0x0040 +#define PNG_INFO_pHYs 0x0080 +#define PNG_INFO_oFFs 0x0100 +#define PNG_INFO_tIME 0x0200 +#define PNG_INFO_pCAL 0x0400 +#define PNG_INFO_sRGB 0x0800 /* GR-P, 0.96a */ +#define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */ +#define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ +#define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ +#define PNG_INFO_IDAT 0x8000 /* ESR, 1.0.6 */ + +/* This is used for the transformation routines, as some of them + * change these values for the row. It also should enable using + * the routines for other purposes. + */ +typedef struct png_row_info_struct +{ + png_uint_32 width; /* width of row */ + png_size_t rowbytes; /* number of bytes in row */ + png_byte color_type; /* color type of row */ + png_byte bit_depth; /* bit depth of row */ + png_byte channels; /* number of channels (1, 2, 3, or 4) */ + png_byte pixel_depth; /* bits per pixel (depth * channels) */ +} png_row_info; + +typedef png_row_info * png_row_infop; +typedef png_row_info * * png_row_infopp; + +/* These are the function types for the I/O functions and for the functions + * that allow the user to override the default I/O functions with his or her + * own. The png_error_ptr type should match that of user-supplied warning + * and error functions, while the png_rw_ptr type should match that of the + * user read/write data functions. Note that the 'write' function must not + * modify the buffer it is passed. The 'read' function, on the other hand, is + * expected to return the read data in the buffer. + */ +typedef PNG_CALLBACK(void, *png_error_ptr, (png_structp, png_const_charp)); +typedef PNG_CALLBACK(void, *png_rw_ptr, (png_structp, png_bytep, png_size_t)); +typedef PNG_CALLBACK(void, *png_flush_ptr, (png_structp)); +typedef PNG_CALLBACK(void, *png_read_status_ptr, (png_structp, png_uint_32, + int)); +typedef PNG_CALLBACK(void, *png_write_status_ptr, (png_structp, png_uint_32, + int)); + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop)); +typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop)); + +/* The following callback receives png_uint_32 row_number, int pass for the + * png_bytep data of the row. When transforming an interlaced image the + * row number is the row number within the sub-image of the interlace pass, so + * the value will increase to the height of the sub-image (not the full image) + * then reset to 0 for the next pass. + * + * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to + * find the output pixel (x,y) given an interlaced sub-image pixel + * (row,col,pass). (See below for these macros.) + */ +typedef PNG_CALLBACK(void, *png_progressive_row_ptr, (png_structp, png_bytep, + png_uint_32, int)); +#endif + +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) +typedef PNG_CALLBACK(void, *png_user_transform_ptr, (png_structp, png_row_infop, + png_bytep)); +#endif + +#ifdef PNG_USER_CHUNKS_SUPPORTED +typedef PNG_CALLBACK(int, *png_user_chunk_ptr, (png_structp, + png_unknown_chunkp)); +#endif +#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED +/* not used anywhere */ +/* typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp)); */ +#endif + +#ifdef PNG_SETJMP_SUPPORTED +/* This must match the function definition in , and the application + * must include this before png.h to obtain the definition of jmp_buf. The + * function is required to be PNG_NORETURN, but this is not checked. If the + * function does return the application will crash via an abort() or similar + * system level call. + * + * If you get a warning here while building the library you may need to make + * changes to ensure that pnglibconf.h records the calling convention used by + * your compiler. This may be very difficult - try using a different compiler + * to build the library! + */ +PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), typedef); +#endif + +/* Transform masks for the high-level interface */ +#define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ +#define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ +#define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ +#define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ +#define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ +#define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ +#define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ +#define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ +#define PNG_TRANSFORM_BGR 0x0080 /* read and write */ +#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ +#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ +#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ +#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only */ +/* Added to libpng-1.2.34 */ +#define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER +#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ +/* Added to libpng-1.4.0 */ +#define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ +/* Added to libpng-1.5.4 */ +#define PNG_TRANSFORM_EXPAND_16 0x4000 /* read only */ +#define PNG_TRANSFORM_SCALE_16 0x8000 /* read only */ + +/* Flags for MNG supported features */ +#define PNG_FLAG_MNG_EMPTY_PLTE 0x01 +#define PNG_FLAG_MNG_FILTER_64 0x04 +#define PNG_ALL_MNG_FEATURES 0x05 + +/* NOTE: prior to 1.5 these functions had no 'API' style declaration, + * this allowed the zlib default functions to be used on Windows + * platforms. In 1.5 the zlib default malloc (which just calls malloc and + * ignores the first argument) should be completely compatible with the + * following. + */ +typedef PNG_CALLBACK(png_voidp, *png_malloc_ptr, (png_structp, + png_alloc_size_t)); +typedef PNG_CALLBACK(void, *png_free_ptr, (png_structp, png_voidp)); + +/* Section 3: exported functions + * Here are the function definitions most commonly used. This is not + * the place to find out how to use libpng. See libpng-manual.txt for the + * full explanation, see example.c for the summary. This just provides + * a simple one line description of the use of each function. + * + * The PNG_EXPORT() and PNG_EXPORTA() macros used below are defined in + * pngconf.h and in the *.dfn files in the scripts directory. + * + * PNG_EXPORT(ordinal, type, name, (args)); + * + * ordinal: ordinal that is used while building + * *.def files. The ordinal value is only + * relevant when preprocessing png.h with + * the *.dfn files for building symbol table + * entries, and are removed by pngconf.h. + * type: return type of the function + * name: function name + * args: function arguments, with types + * + * When we wish to append attributes to a function prototype we use + * the PNG_EXPORTA() macro instead. + * + * PNG_EXPORTA(ordinal, type, name, (args), attributes); + * + * ordinal, type, name, and args: same as in PNG_EXPORT(). + * attributes: function attributes + */ + +/* Returns the version number of the library */ +PNG_EXPORT(1, png_uint_32, png_access_version_number, (void)); + +/* Tell lib we have already handled the first magic bytes. + * Handling more than 8 bytes from the beginning of the file is an error. + */ +PNG_EXPORT(2, void, png_set_sig_bytes, (png_structrp png_ptr, int num_bytes)); + +/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a + * PNG file. Returns zero if the supplied bytes match the 8-byte PNG + * signature, and non-zero otherwise. Having num_to_check == 0 or + * start > 7 will always fail (ie return non-zero). + */ +PNG_EXPORT(3, int, png_sig_cmp, (png_const_bytep sig, png_size_t start, + png_size_t num_to_check)); + +/* Simple signature checking function. This is the same as calling + * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). + */ +#define png_check_sig(sig, n) !png_sig_cmp((sig), 0, (n)) + +/* Allocate and initialize png_ptr struct for reading, and any other memory. */ +PNG_EXPORTA(4, png_structp, png_create_read_struct, + (png_const_charp user_png_ver, png_voidp error_ptr, + png_error_ptr error_fn, png_error_ptr warn_fn), + PNG_ALLOCATED); + +/* Allocate and initialize png_ptr struct for writing, and any other memory */ +PNG_EXPORTA(5, png_structp, png_create_write_struct, + (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, + png_error_ptr warn_fn), + PNG_ALLOCATED); + +PNG_EXPORT(6, png_size_t, png_get_compression_buffer_size, + (png_const_structrp png_ptr)); + +PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structrp png_ptr, + png_size_t size)); + +/* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp + * match up. + */ +#ifdef PNG_SETJMP_SUPPORTED +/* This function returns the jmp_buf built in to *png_ptr. It must be + * supplied with an appropriate 'longjmp' function to use on that jmp_buf + * unless the default error function is overridden in which case NULL is + * acceptable. The size of the jmp_buf is checked against the actual size + * allocated by the library - the call will return NULL on a mismatch + * indicating an ABI mismatch. + */ +PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structrp png_ptr, + png_longjmp_ptr longjmp_fn, size_t jmp_buf_size)); +# define png_jmpbuf(png_ptr) \ + (*png_set_longjmp_fn((png_ptr), longjmp, (sizeof (jmp_buf)))) +#else +# define png_jmpbuf(png_ptr) \ + (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP) +#endif +/* This function should be used by libpng applications in place of + * longjmp(png_ptr->jmpbuf, val). If longjmp_fn() has been set, it + * will use it; otherwise it will call PNG_ABORT(). This function was + * added in libpng-1.5.0. + */ +PNG_EXPORTA(9, void, png_longjmp, (png_const_structrp png_ptr, int val), + PNG_NORETURN); + +#ifdef PNG_READ_SUPPORTED +/* Reset the compression stream */ +PNG_EXPORTA(10, int, png_reset_zstream, (png_structrp png_ptr), PNG_DEPRECATED); +#endif + +/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ +#ifdef PNG_USER_MEM_SUPPORTED +PNG_EXPORTA(11, png_structp, png_create_read_struct_2, + (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, + png_error_ptr warn_fn, + png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), + PNG_ALLOCATED); +PNG_EXPORTA(12, png_structp, png_create_write_struct_2, + (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, + png_error_ptr warn_fn, + png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), + PNG_ALLOCATED); +#endif + +/* Write the PNG file signature. */ +PNG_EXPORT(13, void, png_write_sig, (png_structrp png_ptr)); + +/* Write a PNG chunk - size, type, (optional) data, CRC. */ +PNG_EXPORT(14, void, png_write_chunk, (png_structrp png_ptr, png_const_bytep + chunk_name, png_const_bytep data, png_size_t length)); + +/* Write the start of a PNG chunk - length and chunk name. */ +PNG_EXPORT(15, void, png_write_chunk_start, (png_structrp png_ptr, + png_const_bytep chunk_name, png_uint_32 length)); + +/* Write the data of a PNG chunk started with png_write_chunk_start(). */ +PNG_EXPORT(16, void, png_write_chunk_data, (png_structrp png_ptr, + png_const_bytep data, png_size_t length)); + +/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ +PNG_EXPORT(17, void, png_write_chunk_end, (png_structrp png_ptr)); + +/* Allocate and initialize the info structure */ +PNG_EXPORTA(18, png_infop, png_create_info_struct, (png_const_structrp png_ptr), + PNG_ALLOCATED); + +/* DEPRECATED: this function allowed init structures to be created using the + * default allocation method (typically malloc). Use is deprecated in 1.6.0 and + * the API will be removed in the future. + */ +PNG_EXPORTA(19, void, png_info_init_3, (png_infopp info_ptr, + png_size_t png_info_struct_size), PNG_DEPRECATED); + +/* Writes all the PNG information before the image. */ +PNG_EXPORT(20, void, png_write_info_before_PLTE, + (png_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(21, void, png_write_info, + (png_structrp png_ptr, png_const_inforp info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the information before the actual image data. */ +PNG_EXPORT(22, void, png_read_info, + (png_structrp png_ptr, png_inforp info_ptr)); +#endif + +#ifdef PNG_TIME_RFC1123_SUPPORTED + /* Convert to a US string format: there is no localization support in this + * routine. The original implementation used a 29 character buffer in + * png_struct, this will be removed in future versions. + */ +#if PNG_LIBPNG_VER < 10700 +/* To do: remove this from libpng17 (and from libpng17/png.c and pngstruct.h) */ +PNG_EXPORTA(23, png_const_charp, png_convert_to_rfc1123, (png_structrp png_ptr, + png_const_timep ptime),PNG_DEPRECATED); +#endif +PNG_EXPORT(241, int, png_convert_to_rfc1123_buffer, (char out[29], + png_const_timep ptime)); +#endif + +#ifdef PNG_CONVERT_tIME_SUPPORTED +/* Convert from a struct tm to png_time */ +PNG_EXPORT(24, void, png_convert_from_struct_tm, (png_timep ptime, + const struct tm * ttime)); + +/* Convert from time_t to png_time. Uses gmtime() */ +PNG_EXPORT(25, void, png_convert_from_time_t, (png_timep ptime, time_t ttime)); +#endif /* CONVERT_tIME */ + +#ifdef PNG_READ_EXPAND_SUPPORTED +/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ +PNG_EXPORT(26, void, png_set_expand, (png_structrp png_ptr)); +PNG_EXPORT(27, void, png_set_expand_gray_1_2_4_to_8, (png_structrp png_ptr)); +PNG_EXPORT(28, void, png_set_palette_to_rgb, (png_structrp png_ptr)); +PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_EXPAND_16_SUPPORTED +/* Expand to 16-bit channels, forces conversion of palette to RGB and expansion + * of a tRNS chunk if present. + */ +PNG_EXPORT(221, void, png_set_expand_16, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) +/* Use blue, green, red order for pixels. */ +PNG_EXPORT(30, void, png_set_bgr, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED +/* Expand the grayscale to 24-bit RGB if necessary. */ +PNG_EXPORT(31, void, png_set_gray_to_rgb, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED +/* Reduce RGB to grayscale. */ +#define PNG_ERROR_ACTION_NONE 1 +#define PNG_ERROR_ACTION_WARN 2 +#define PNG_ERROR_ACTION_ERROR 3 +#define PNG_RGB_TO_GRAY_DEFAULT (-1)/*for red/green coefficients*/ + +PNG_FP_EXPORT(32, void, png_set_rgb_to_gray, (png_structrp png_ptr, + int error_action, double red, double green)) +PNG_FIXED_EXPORT(33, void, png_set_rgb_to_gray_fixed, (png_structrp png_ptr, + int error_action, png_fixed_point red, png_fixed_point green)) + +PNG_EXPORT(34, png_byte, png_get_rgb_to_gray_status, (png_const_structrp + png_ptr)); +#endif + +#ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED +PNG_EXPORT(35, void, png_build_grayscale_palette, (int bit_depth, + png_colorp palette)); +#endif + +#ifdef PNG_READ_ALPHA_MODE_SUPPORTED +/* How the alpha channel is interpreted - this affects how the color channels + * of a PNG file are returned to the calling application when an alpha channel, + * or a tRNS chunk in a palette file, is present. + * + * This has no effect on the way pixels are written into a PNG output + * datastream. The color samples in a PNG datastream are never premultiplied + * with the alpha samples. + * + * The default is to return data according to the PNG specification: the alpha + * channel is a linear measure of the contribution of the pixel to the + * corresponding composited pixel, and the color channels are unassociated + * (not premultiplied). The gamma encoded color channels must be scaled + * according to the contribution and to do this it is necessary to undo + * the encoding, scale the color values, perform the composition and reencode + * the values. This is the 'PNG' mode. + * + * The alternative is to 'associate' the alpha with the color information by + * storing color channel values that have been scaled by the alpha. + * image. These are the 'STANDARD', 'ASSOCIATED' or 'PREMULTIPLIED' modes + * (the latter being the two common names for associated alpha color channels). + * + * For the 'OPTIMIZED' mode, a pixel is treated as opaque only if the alpha + * value is equal to the maximum value. + * + * The final choice is to gamma encode the alpha channel as well. This is + * broken because, in practice, no implementation that uses this choice + * correctly undoes the encoding before handling alpha composition. Use this + * choice only if other serious errors in the software or hardware you use + * mandate it; the typical serious error is for dark halos to appear around + * opaque areas of the composited PNG image because of arithmetic overflow. + * + * The API function png_set_alpha_mode specifies which of these choices to use + * with an enumerated 'mode' value and the gamma of the required output: + */ +#define PNG_ALPHA_PNG 0 /* according to the PNG standard */ +#define PNG_ALPHA_STANDARD 1 /* according to Porter/Duff */ +#define PNG_ALPHA_ASSOCIATED 1 /* as above; this is the normal practice */ +#define PNG_ALPHA_PREMULTIPLIED 1 /* as above */ +#define PNG_ALPHA_OPTIMIZED 2 /* 'PNG' for opaque pixels, else 'STANDARD' */ +#define PNG_ALPHA_BROKEN 3 /* the alpha channel is gamma encoded */ + +PNG_FP_EXPORT(227, void, png_set_alpha_mode, (png_structrp png_ptr, int mode, + double output_gamma)) +PNG_FIXED_EXPORT(228, void, png_set_alpha_mode_fixed, (png_structrp png_ptr, + int mode, png_fixed_point output_gamma)) +#endif + +#if defined(PNG_GAMMA_SUPPORTED) || defined(PNG_READ_ALPHA_MODE_SUPPORTED) +/* The output_gamma value is a screen gamma in libpng terminology: it expresses + * how to decode the output values, not how they are encoded. + */ +#define PNG_DEFAULT_sRGB -1 /* sRGB gamma and color space */ +#define PNG_GAMMA_MAC_18 -2 /* Old Mac '1.8' gamma and color space */ +#define PNG_GAMMA_sRGB 220000 /* Television standards--matches sRGB gamma */ +#define PNG_GAMMA_LINEAR PNG_FP_1 /* Linear */ +#endif + +/* The following are examples of calls to png_set_alpha_mode to achieve the + * required overall gamma correction and, where necessary, alpha + * premultiplication. + * + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); + * This is the default libpng handling of the alpha channel - it is not + * pre-multiplied into the color components. In addition the call states + * that the output is for a sRGB system and causes all PNG files without gAMA + * chunks to be assumed to be encoded using sRGB. + * + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); + * In this case the output is assumed to be something like an sRGB conformant + * display preceeded by a power-law lookup table of power 1.45. This is how + * early Mac systems behaved. + * + * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_GAMMA_LINEAR); + * This is the classic Jim Blinn approach and will work in academic + * environments where everything is done by the book. It has the shortcoming + * of assuming that input PNG data with no gamma information is linear - this + * is unlikely to be correct unless the PNG files where generated locally. + * Most of the time the output precision will be so low as to show + * significant banding in dark areas of the image. + * + * png_set_expand_16(pp); + * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_DEFAULT_sRGB); + * This is a somewhat more realistic Jim Blinn inspired approach. PNG files + * are assumed to have the sRGB encoding if not marked with a gamma value and + * the output is always 16 bits per component. This permits accurate scaling + * and processing of the data. If you know that your input PNG files were + * generated locally you might need to replace PNG_DEFAULT_sRGB with the + * correct value for your system. + * + * png_set_alpha_mode(pp, PNG_ALPHA_OPTIMIZED, PNG_DEFAULT_sRGB); + * If you just need to composite the PNG image onto an existing background + * and if you control the code that does this you can use the optimization + * setting. In this case you just copy completely opaque pixels to the + * output. For pixels that are not completely transparent (you just skip + * those) you do the composition math using png_composite or png_composite_16 + * below then encode the resultant 8-bit or 16-bit values to match the output + * encoding. + * + * Other cases + * If neither the PNG nor the standard linear encoding work for you because + * of the software or hardware you use then you have a big problem. The PNG + * case will probably result in halos around the image. The linear encoding + * will probably result in a washed out, too bright, image (it's actually too + * contrasty.) Try the ALPHA_OPTIMIZED mode above - this will probably + * substantially reduce the halos. Alternatively try: + * + * png_set_alpha_mode(pp, PNG_ALPHA_BROKEN, PNG_DEFAULT_sRGB); + * This option will also reduce the halos, but there will be slight dark + * halos round the opaque parts of the image where the background is light. + * In the OPTIMIZED mode the halos will be light halos where the background + * is dark. Take your pick - the halos are unavoidable unless you can get + * your hardware/software fixed! (The OPTIMIZED approach is slightly + * faster.) + * + * When the default gamma of PNG files doesn't match the output gamma. + * If you have PNG files with no gamma information png_set_alpha_mode allows + * you to provide a default gamma, but it also sets the ouput gamma to the + * matching value. If you know your PNG files have a gamma that doesn't + * match the output you can take advantage of the fact that + * png_set_alpha_mode always sets the output gamma but only sets the PNG + * default if it is not already set: + * + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); + * The first call sets both the default and the output gamma values, the + * second call overrides the output gamma without changing the default. This + * is easier than achieving the same effect with png_set_gamma. You must use + * PNG_ALPHA_PNG for the first call - internal checking in png_set_alpha will + * fire if more than one call to png_set_alpha_mode and png_set_background is + * made in the same read operation, however multiple calls with PNG_ALPHA_PNG + * are ignored. + */ + +#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED +PNG_EXPORT(36, void, png_set_strip_alpha, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ + defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) +PNG_EXPORT(37, void, png_set_swap_alpha, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ + defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) +PNG_EXPORT(38, void, png_set_invert_alpha, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) +/* Add a filler byte to 8-bit Gray or 24-bit RGB images. */ +PNG_EXPORT(39, void, png_set_filler, (png_structrp png_ptr, png_uint_32 filler, + int flags)); +/* The values of the PNG_FILLER_ defines should NOT be changed */ +# define PNG_FILLER_BEFORE 0 +# define PNG_FILLER_AFTER 1 +/* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ +PNG_EXPORT(40, void, png_set_add_alpha, (png_structrp png_ptr, + png_uint_32 filler, int flags)); +#endif /* READ_FILLER || WRITE_FILLER */ + +#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) +/* Swap bytes in 16-bit depth files. */ +PNG_EXPORT(41, void, png_set_swap, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) +/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ +PNG_EXPORT(42, void, png_set_packing, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ + defined(PNG_WRITE_PACKSWAP_SUPPORTED) +/* Swap packing order of pixels in bytes. */ +PNG_EXPORT(43, void, png_set_packswap, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) +/* Converts files to legal bit depths. */ +PNG_EXPORT(44, void, png_set_shift, (png_structrp png_ptr, png_const_color_8p + true_bits)); +#endif + +#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ + defined(PNG_WRITE_INTERLACING_SUPPORTED) +/* Have the code handle the interlacing. Returns the number of passes. + * MUST be called before png_read_update_info or png_start_read_image, + * otherwise it will not have the desired effect. Note that it is still + * necessary to call png_read_row or png_read_rows png_get_image_height + * times for each pass. +*/ +PNG_EXPORT(45, int, png_set_interlace_handling, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) +/* Invert monochrome files */ +PNG_EXPORT(46, void, png_set_invert_mono, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_BACKGROUND_SUPPORTED +/* Handle alpha and tRNS by replacing with a background color. Prior to + * libpng-1.5.4 this API must not be called before the PNG file header has been + * read. Doing so will result in unexpected behavior and possible warnings or + * errors if the PNG file contains a bKGD chunk. + */ +PNG_FP_EXPORT(47, void, png_set_background, (png_structrp png_ptr, + png_const_color_16p background_color, int background_gamma_code, + int need_expand, double background_gamma)) +PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structrp png_ptr, + png_const_color_16p background_color, int background_gamma_code, + int need_expand, png_fixed_point background_gamma)) +#endif +#ifdef PNG_READ_BACKGROUND_SUPPORTED +# define PNG_BACKGROUND_GAMMA_UNKNOWN 0 +# define PNG_BACKGROUND_GAMMA_SCREEN 1 +# define PNG_BACKGROUND_GAMMA_FILE 2 +# define PNG_BACKGROUND_GAMMA_UNIQUE 3 +#endif + +#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED +/* Scale a 16-bit depth file down to 8-bit, accurately. */ +PNG_EXPORT(229, void, png_set_scale_16, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED +#define PNG_READ_16_TO_8 SUPPORTED /* Name prior to 1.5.4 */ +/* Strip the second byte of information from a 16-bit depth file. */ +PNG_EXPORT(48, void, png_set_strip_16, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_QUANTIZE_SUPPORTED +/* Turn on quantizing, and reduce the palette to the number of colors + * available. + */ +PNG_EXPORT(49, void, png_set_quantize, (png_structrp png_ptr, + png_colorp palette, int num_palette, int maximum_colors, + png_const_uint_16p histogram, int full_quantize)); +#endif + +#ifdef PNG_READ_GAMMA_SUPPORTED +/* The threshold on gamma processing is configurable but hard-wired into the + * library. The following is the floating point variant. + */ +#define PNG_GAMMA_THRESHOLD (PNG_GAMMA_THRESHOLD_FIXED*.00001) + +/* Handle gamma correction. Screen_gamma=(display_exponent). + * NOTE: this API simply sets the screen and file gamma values. It will + * therefore override the value for gamma in a PNG file if it is called after + * the file header has been read - use with care - call before reading the PNG + * file for best results! + * + * These routines accept the same gamma values as png_set_alpha_mode (described + * above). The PNG_GAMMA_ defines and PNG_DEFAULT_sRGB can be passed to either + * API (floating point or fixed.) Notice, however, that the 'file_gamma' value + * is the inverse of a 'screen gamma' value. + */ +PNG_FP_EXPORT(50, void, png_set_gamma, (png_structrp png_ptr, + double screen_gamma, double override_file_gamma)) +PNG_FIXED_EXPORT(208, void, png_set_gamma_fixed, (png_structrp png_ptr, + png_fixed_point screen_gamma, png_fixed_point override_file_gamma)) +#endif + +#ifdef PNG_WRITE_FLUSH_SUPPORTED +/* Set how many lines between output flushes - 0 for no flushing */ +PNG_EXPORT(51, void, png_set_flush, (png_structrp png_ptr, int nrows)); +/* Flush the current PNG output buffer */ +PNG_EXPORT(52, void, png_write_flush, (png_structrp png_ptr)); +#endif + +/* Optional update palette with requested transformations */ +PNG_EXPORT(53, void, png_start_read_image, (png_structrp png_ptr)); + +/* Optional call to update the users info structure */ +PNG_EXPORT(54, void, png_read_update_info, (png_structrp png_ptr, + png_inforp info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read one or more rows of image data. */ +PNG_EXPORT(55, void, png_read_rows, (png_structrp png_ptr, png_bytepp row, + png_bytepp display_row, png_uint_32 num_rows)); +#endif + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read a row of data. */ +PNG_EXPORT(56, void, png_read_row, (png_structrp png_ptr, png_bytep row, + png_bytep display_row)); +#endif + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the whole image into memory at once. */ +PNG_EXPORT(57, void, png_read_image, (png_structrp png_ptr, png_bytepp image)); +#endif + +/* Write a row of image data */ +PNG_EXPORT(58, void, png_write_row, (png_structrp png_ptr, + png_const_bytep row)); + +/* Write a few rows of image data: (*row) is not written; however, the type + * is declared as writeable to maintain compatibility with previous versions + * of libpng and to allow the 'display_row' array from read_rows to be passed + * unchanged to write_rows. + */ +PNG_EXPORT(59, void, png_write_rows, (png_structrp png_ptr, png_bytepp row, + png_uint_32 num_rows)); + +/* Write the image data */ +PNG_EXPORT(60, void, png_write_image, (png_structrp png_ptr, png_bytepp image)); + +/* Write the end of the PNG file. */ +PNG_EXPORT(61, void, png_write_end, (png_structrp png_ptr, + png_inforp info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the end of the PNG file. */ +PNG_EXPORT(62, void, png_read_end, (png_structrp png_ptr, png_inforp info_ptr)); +#endif + +/* Free any memory associated with the png_info_struct */ +PNG_EXPORT(63, void, png_destroy_info_struct, (png_const_structrp png_ptr, + png_infopp info_ptr_ptr)); + +/* Free any memory associated with the png_struct and the png_info_structs */ +PNG_EXPORT(64, void, png_destroy_read_struct, (png_structpp png_ptr_ptr, + png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); + +/* Free any memory associated with the png_struct and the png_info_structs */ +PNG_EXPORT(65, void, png_destroy_write_struct, (png_structpp png_ptr_ptr, + png_infopp info_ptr_ptr)); + +/* Set the libpng method of handling chunk CRC errors */ +PNG_EXPORT(66, void, png_set_crc_action, (png_structrp png_ptr, int crit_action, + int ancil_action)); + +/* Values for png_set_crc_action() say how to handle CRC errors in + * ancillary and critical chunks, and whether to use the data contained + * therein. Note that it is impossible to "discard" data in a critical + * chunk. For versions prior to 0.90, the action was always error/quit, + * whereas in version 0.90 and later, the action for CRC errors in ancillary + * chunks is warn/discard. These values should NOT be changed. + * + * value action:critical action:ancillary + */ +#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ +#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ +#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ +#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ +#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ +#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ + +/* These functions give the user control over the scan-line filtering in + * libpng and the compression methods used by zlib. These functions are + * mainly useful for testing, as the defaults should work with most users. + * Those users who are tight on memory or want faster performance at the + * expense of compression can modify them. See the compression library + * header file (zlib.h) for an explination of the compression functions. + */ + +/* Set the filtering method(s) used by libpng. Currently, the only valid + * value for "method" is 0. + */ +PNG_EXPORT(67, void, png_set_filter, (png_structrp png_ptr, int method, + int filters)); + +/* Flags for png_set_filter() to say which filters to use. The flags + * are chosen so that they don't conflict with real filter types + * below, in case they are supplied instead of the #defined constants. + * These values should NOT be changed. + */ +#define PNG_NO_FILTERS 0x00 +#define PNG_FILTER_NONE 0x08 +#define PNG_FILTER_SUB 0x10 +#define PNG_FILTER_UP 0x20 +#define PNG_FILTER_AVG 0x40 +#define PNG_FILTER_PAETH 0x80 +#define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \ + PNG_FILTER_AVG | PNG_FILTER_PAETH) + +/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. + * These defines should NOT be changed. + */ +#define PNG_FILTER_VALUE_NONE 0 +#define PNG_FILTER_VALUE_SUB 1 +#define PNG_FILTER_VALUE_UP 2 +#define PNG_FILTER_VALUE_AVG 3 +#define PNG_FILTER_VALUE_PAETH 4 +#define PNG_FILTER_VALUE_LAST 5 + +#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* EXPERIMENTAL */ +/* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_ + * defines, either the default (minimum-sum-of-absolute-differences), or + * the experimental method (weighted-minimum-sum-of-absolute-differences). + * + * Weights are factors >= 1.0, indicating how important it is to keep the + * filter type consistent between rows. Larger numbers mean the current + * filter is that many times as likely to be the same as the "num_weights" + * previous filters. This is cumulative for each previous row with a weight. + * There needs to be "num_weights" values in "filter_weights", or it can be + * NULL if the weights aren't being specified. Weights have no influence on + * the selection of the first row filter. Well chosen weights can (in theory) + * improve the compression for a given image. + * + * Costs are factors >= 1.0 indicating the relative decoding costs of a + * filter type. Higher costs indicate more decoding expense, and are + * therefore less likely to be selected over a filter with lower computational + * costs. There needs to be a value in "filter_costs" for each valid filter + * type (given by PNG_FILTER_VALUE_LAST), or it can be NULL if you aren't + * setting the costs. Costs try to improve the speed of decompression without + * unduly increasing the compressed image size. + * + * A negative weight or cost indicates the default value is to be used, and + * values in the range [0.0, 1.0) indicate the value is to remain unchanged. + * The default values for both weights and costs are currently 1.0, but may + * change if good general weighting/cost heuristics can be found. If both + * the weights and costs are set to 1.0, this degenerates the WEIGHTED method + * to the UNWEIGHTED method, but with added encoding time/computation. + */ +PNG_FP_EXPORT(68, void, png_set_filter_heuristics, (png_structrp png_ptr, + int heuristic_method, int num_weights, png_const_doublep filter_weights, + png_const_doublep filter_costs)) +PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, + (png_structrp png_ptr, int heuristic_method, int num_weights, + png_const_fixed_point_p filter_weights, + png_const_fixed_point_p filter_costs)) +#endif /* WRITE_WEIGHTED_FILTER */ + +/* Heuristic used for row filter selection. These defines should NOT be + * changed. + */ +#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ +#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ +#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ +#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ + +#ifdef PNG_WRITE_SUPPORTED +/* Set the library compression level. Currently, valid values range from + * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 + * (0 - no compression, 9 - "maximal" compression). Note that tests have + * shown that zlib compression levels 3-6 usually perform as well as level 9 + * for PNG images, and do considerably fewer caclulations. In the future, + * these values may not correspond directly to the zlib compression levels. + */ +PNG_EXPORT(69, void, png_set_compression_level, (png_structrp png_ptr, + int level)); + +PNG_EXPORT(70, void, png_set_compression_mem_level, (png_structrp png_ptr, + int mem_level)); + +PNG_EXPORT(71, void, png_set_compression_strategy, (png_structrp png_ptr, + int strategy)); + +/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a + * smaller value of window_bits if it can do so safely. + */ +PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structrp png_ptr, + int window_bits)); + +PNG_EXPORT(73, void, png_set_compression_method, (png_structrp png_ptr, + int method)); +#endif + +#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED +/* Also set zlib parameters for compressing non-IDAT chunks */ +PNG_EXPORT(222, void, png_set_text_compression_level, (png_structrp png_ptr, + int level)); + +PNG_EXPORT(223, void, png_set_text_compression_mem_level, (png_structrp png_ptr, + int mem_level)); + +PNG_EXPORT(224, void, png_set_text_compression_strategy, (png_structrp png_ptr, + int strategy)); + +/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a + * smaller value of window_bits if it can do so safely. + */ +PNG_EXPORT(225, void, png_set_text_compression_window_bits, + (png_structrp png_ptr, int window_bits)); + +PNG_EXPORT(226, void, png_set_text_compression_method, (png_structrp png_ptr, + int method)); +#endif /* WRITE_CUSTOMIZE_ZTXT_COMPRESSION */ + +/* These next functions are called for input/output, memory, and error + * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, + * and call standard C I/O routines such as fread(), fwrite(), and + * fprintf(). These functions can be made to use other I/O routines + * at run time for those applications that need to handle I/O in a + * different manner by calling png_set_???_fn(). See libpng-manual.txt for + * more information. + */ + +#ifdef PNG_STDIO_SUPPORTED +/* Initialize the input/output for the PNG file to the default functions. */ +PNG_EXPORT(74, void, png_init_io, (png_structrp png_ptr, png_FILE_p fp)); +#endif + +/* Replace the (error and abort), and warning functions with user + * supplied functions. If no messages are to be printed you must still + * write and use replacement functions. The replacement error_fn should + * still do a longjmp to the last setjmp location if you are using this + * method of error handling. If error_fn or warning_fn is NULL, the + * default function will be used. + */ + +PNG_EXPORT(75, void, png_set_error_fn, (png_structrp png_ptr, + png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)); + +/* Return the user pointer associated with the error functions */ +PNG_EXPORT(76, png_voidp, png_get_error_ptr, (png_const_structrp png_ptr)); + +/* Replace the default data output functions with a user supplied one(s). + * If buffered output is not used, then output_flush_fn can be set to NULL. + * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time + * output_flush_fn will be ignored (and thus can be NULL). + * It is probably a mistake to use NULL for output_flush_fn if + * write_data_fn is not also NULL unless you have built libpng with + * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's + * default flush function, which uses the standard *FILE structure, will + * be used. + */ +PNG_EXPORT(77, void, png_set_write_fn, (png_structrp png_ptr, png_voidp io_ptr, + png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); + +/* Replace the default data input function with a user supplied one. */ +PNG_EXPORT(78, void, png_set_read_fn, (png_structrp png_ptr, png_voidp io_ptr, + png_rw_ptr read_data_fn)); + +/* Return the user pointer associated with the I/O functions */ +PNG_EXPORT(79, png_voidp, png_get_io_ptr, (png_const_structrp png_ptr)); + +PNG_EXPORT(80, void, png_set_read_status_fn, (png_structrp png_ptr, + png_read_status_ptr read_row_fn)); + +PNG_EXPORT(81, void, png_set_write_status_fn, (png_structrp png_ptr, + png_write_status_ptr write_row_fn)); + +#ifdef PNG_USER_MEM_SUPPORTED +/* Replace the default memory allocation functions with user supplied one(s). */ +PNG_EXPORT(82, void, png_set_mem_fn, (png_structrp png_ptr, png_voidp mem_ptr, + png_malloc_ptr malloc_fn, png_free_ptr free_fn)); +/* Return the user pointer associated with the memory functions */ +PNG_EXPORT(83, png_voidp, png_get_mem_ptr, (png_const_structrp png_ptr)); +#endif + +#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED +PNG_EXPORT(84, void, png_set_read_user_transform_fn, (png_structrp png_ptr, + png_user_transform_ptr read_user_transform_fn)); +#endif + +#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED +PNG_EXPORT(85, void, png_set_write_user_transform_fn, (png_structrp png_ptr, + png_user_transform_ptr write_user_transform_fn)); +#endif + +#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED +PNG_EXPORT(86, void, png_set_user_transform_info, (png_structrp png_ptr, + png_voidp user_transform_ptr, int user_transform_depth, + int user_transform_channels)); +/* Return the user pointer associated with the user transform functions */ +PNG_EXPORT(87, png_voidp, png_get_user_transform_ptr, + (png_const_structrp png_ptr)); +#endif + +#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED +/* Return information about the row currently being processed. Note that these + * APIs do not fail but will return unexpected results if called outside a user + * transform callback. Also note that when transforming an interlaced image the + * row number is the row number within the sub-image of the interlace pass, so + * the value will increase to the height of the sub-image (not the full image) + * then reset to 0 for the next pass. + * + * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to + * find the output pixel (x,y) given an interlaced sub-image pixel + * (row,col,pass). (See below for these macros.) + */ +PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structrp)); +PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structrp)); +#endif + +#ifdef PNG_READ_USER_CHUNKS_SUPPORTED +/* This callback is called only for *unknown* chunks. If + * PNG_HANDLE_AS_UNKNOWN_SUPPORTED is set then it is possible to set known + * chunks to be treated as unknown, however in this case the callback must do + * any processing required by the chunk (e.g. by calling the appropriate + * png_set_ APIs.) + * + * There is no write support - on write, by default, all the chunks in the + * 'unknown' list are written in the specified position. + * + * The integer return from the callback function is interpreted thus: + * + * negative: An error occured, png_chunk_error will be called. + * zero: The chunk was not handled, the chunk will be saved. A critical + * chunk will cause an error at this point unless it is to be saved. + * positive: The chunk was handled, libpng will ignore/discard it. + * + * See "INTERACTION WTIH USER CHUNK CALLBACKS" below for important notes about + * how this behavior will change in libpng 1.7 + */ +PNG_EXPORT(88, void, png_set_read_user_chunk_fn, (png_structrp png_ptr, + png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); +#endif + +#ifdef PNG_USER_CHUNKS_SUPPORTED +PNG_EXPORT(89, png_voidp, png_get_user_chunk_ptr, (png_const_structrp png_ptr)); +#endif + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +/* Sets the function callbacks for the push reader, and a pointer to a + * user-defined structure available to the callback functions. + */ +PNG_EXPORT(90, void, png_set_progressive_read_fn, (png_structrp png_ptr, + png_voidp progressive_ptr, png_progressive_info_ptr info_fn, + png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn)); + +/* Returns the user pointer associated with the push read functions */ +PNG_EXPORT(91, png_voidp, png_get_progressive_ptr, + (png_const_structrp png_ptr)); + +/* Function to be called when data becomes available */ +PNG_EXPORT(92, void, png_process_data, (png_structrp png_ptr, + png_inforp info_ptr, png_bytep buffer, png_size_t buffer_size)); + +/* A function which may be called *only* within png_process_data to stop the + * processing of any more data. The function returns the number of bytes + * remaining, excluding any that libpng has cached internally. A subsequent + * call to png_process_data must supply these bytes again. If the argument + * 'save' is set to true the routine will first save all the pending data and + * will always return 0. + */ +PNG_EXPORT(219, png_size_t, png_process_data_pause, (png_structrp, int save)); + +/* A function which may be called *only* outside (after) a call to + * png_process_data. It returns the number of bytes of data to skip in the + * input. Normally it will return 0, but if it returns a non-zero value the + * application must skip than number of bytes of input data and pass the + * following data to the next call to png_process_data. + */ +PNG_EXPORT(220, png_uint_32, png_process_data_skip, (png_structrp)); + +/* Function that combines rows. 'new_row' is a flag that should come from + * the callback and be non-NULL if anything needs to be done; the library + * stores its own version of the new data internally and ignores the passed + * in value. + */ +PNG_EXPORT(93, void, png_progressive_combine_row, (png_const_structrp png_ptr, + png_bytep old_row, png_const_bytep new_row)); +#endif /* PROGRESSIVE_READ */ + +PNG_EXPORTA(94, png_voidp, png_malloc, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED); +/* Added at libpng version 1.4.0 */ +PNG_EXPORTA(95, png_voidp, png_calloc, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED); + +/* Added at libpng version 1.2.4 */ +PNG_EXPORTA(96, png_voidp, png_malloc_warn, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED); + +/* Frees a pointer allocated by png_malloc() */ +PNG_EXPORT(97, void, png_free, (png_const_structrp png_ptr, png_voidp ptr)); + +/* Free data that was allocated internally */ +PNG_EXPORT(98, void, png_free_data, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_32 free_me, int num)); + +/* Reassign responsibility for freeing existing data, whether allocated + * by libpng or by the application; this works on the png_info structure passed + * in, it does not change the state for other png_info structures. + * + * It is unlikely that this function works correctly as of 1.6.0 and using it + * may result either in memory leaks or double free of allocated data. + */ +PNG_EXPORT(99, void, png_data_freer, (png_const_structrp png_ptr, + png_inforp info_ptr, int freer, png_uint_32 mask)); + +/* Assignments for png_data_freer */ +#define PNG_DESTROY_WILL_FREE_DATA 1 +#define PNG_SET_WILL_FREE_DATA 1 +#define PNG_USER_WILL_FREE_DATA 2 +/* Flags for png_ptr->free_me and info_ptr->free_me */ +#define PNG_FREE_HIST 0x0008 +#define PNG_FREE_ICCP 0x0010 +#define PNG_FREE_SPLT 0x0020 +#define PNG_FREE_ROWS 0x0040 +#define PNG_FREE_PCAL 0x0080 +#define PNG_FREE_SCAL 0x0100 +#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +# define PNG_FREE_UNKN 0x0200 +#endif +/* PNG_FREE_LIST 0x0400 removed in 1.6.0 because it is ignored */ +#define PNG_FREE_PLTE 0x1000 +#define PNG_FREE_TRNS 0x2000 +#define PNG_FREE_TEXT 0x4000 +#define PNG_FREE_ALL 0x7fff +#define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ + +#ifdef PNG_USER_MEM_SUPPORTED +PNG_EXPORTA(100, png_voidp, png_malloc_default, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED PNG_DEPRECATED); +PNG_EXPORTA(101, void, png_free_default, (png_const_structrp png_ptr, + png_voidp ptr), PNG_DEPRECATED); +#endif + +#ifdef PNG_ERROR_TEXT_SUPPORTED +/* Fatal error in PNG image of libpng - can't continue */ +PNG_EXPORTA(102, void, png_error, (png_const_structrp png_ptr, + png_const_charp error_message), PNG_NORETURN); + +/* The same, but the chunk name is prepended to the error string. */ +PNG_EXPORTA(103, void, png_chunk_error, (png_const_structrp png_ptr, + png_const_charp error_message), PNG_NORETURN); + +#else +/* Fatal error in PNG image of libpng - can't continue */ +PNG_EXPORTA(104, void, png_err, (png_const_structrp png_ptr), PNG_NORETURN); +# define png_error(s1,s2) png_err(s1) +# define png_chunk_error(s1,s2) png_err(s1) +#endif + +#ifdef PNG_WARNINGS_SUPPORTED +/* Non-fatal error in libpng. Can continue, but may have a problem. */ +PNG_EXPORT(105, void, png_warning, (png_const_structrp png_ptr, + png_const_charp warning_message)); + +/* Non-fatal error in libpng, chunk name is prepended to message. */ +PNG_EXPORT(106, void, png_chunk_warning, (png_const_structrp png_ptr, + png_const_charp warning_message)); +#else +# define png_warning(s1,s2) ((void)(s1)) +# define png_chunk_warning(s1,s2) ((void)(s1)) +#endif + +#ifdef PNG_BENIGN_ERRORS_SUPPORTED +/* Benign error in libpng. Can continue, but may have a problem. + * User can choose whether to handle as a fatal error or as a warning. */ +PNG_EXPORT(107, void, png_benign_error, (png_const_structrp png_ptr, + png_const_charp warning_message)); + +#ifdef PNG_READ_SUPPORTED +/* Same, chunk name is prepended to message (only during read) */ +PNG_EXPORT(108, void, png_chunk_benign_error, (png_const_structrp png_ptr, + png_const_charp warning_message)); +#endif + +PNG_EXPORT(109, void, png_set_benign_errors, + (png_structrp png_ptr, int allowed)); +#else +# ifdef PNG_ALLOW_BENIGN_ERRORS +# define png_benign_error png_warning +# define png_chunk_benign_error png_chunk_warning +# else +# define png_benign_error png_error +# define png_chunk_benign_error png_chunk_error +# endif +#endif + +/* The png_set_ functions are for storing values in the png_info_struct. + * Similarly, the png_get_ calls are used to read values from the + * png_info_struct, either storing the parameters in the passed variables, or + * setting pointers into the png_info_struct where the data is stored. The + * png_get_ functions return a non-zero value if the data was available + * in info_ptr, or return zero and do not change any of the parameters if the + * data was not available. + * + * These functions should be used instead of directly accessing png_info + * to avoid problems with future changes in the size and internal layout of + * png_info_struct. + */ +/* Returns "flag" if chunk data is valid in info_ptr. */ +PNG_EXPORT(110, png_uint_32, png_get_valid, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 flag)); + +/* Returns number of bytes needed to hold a transformed row. */ +PNG_EXPORT(111, png_size_t, png_get_rowbytes, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +#ifdef PNG_INFO_IMAGE_SUPPORTED +/* Returns row_pointers, which is an array of pointers to scanlines that was + * returned from png_read_png(). + */ +PNG_EXPORT(112, png_bytepp, png_get_rows, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Set row_pointers, which is an array of pointers to scanlines for use + * by png_write_png(). + */ +PNG_EXPORT(113, void, png_set_rows, (png_const_structrp png_ptr, + png_inforp info_ptr, png_bytepp row_pointers)); +#endif + +/* Returns number of color channels in image. */ +PNG_EXPORT(114, png_byte, png_get_channels, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +#ifdef PNG_EASY_ACCESS_SUPPORTED +/* Returns image width in pixels. */ +PNG_EXPORT(115, png_uint_32, png_get_image_width, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image height in pixels. */ +PNG_EXPORT(116, png_uint_32, png_get_image_height, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image bit_depth. */ +PNG_EXPORT(117, png_byte, png_get_bit_depth, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image color_type. */ +PNG_EXPORT(118, png_byte, png_get_color_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image filter_type. */ +PNG_EXPORT(119, png_byte, png_get_filter_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image interlace_type. */ +PNG_EXPORT(120, png_byte, png_get_interlace_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image compression_type. */ +PNG_EXPORT(121, png_byte, png_get_compression_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image resolution in pixels per meter, from pHYs chunk data. */ +PNG_EXPORT(122, png_uint_32, png_get_pixels_per_meter, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(123, png_uint_32, png_get_x_pixels_per_meter, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(124, png_uint_32, png_get_y_pixels_per_meter, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +/* Returns pixel aspect ratio, computed from pHYs chunk data. */ +PNG_FP_EXPORT(125, float, png_get_pixel_aspect_ratio, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) +PNG_FIXED_EXPORT(210, png_fixed_point, png_get_pixel_aspect_ratio_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) + +/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ +PNG_EXPORT(126, png_int_32, png_get_x_offset_pixels, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(127, png_int_32, png_get_y_offset_pixels, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(128, png_int_32, png_get_x_offset_microns, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(129, png_int_32, png_get_y_offset_microns, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +#endif /* EASY_ACCESS */ + +#ifdef PNG_READ_SUPPORTED +/* Returns pointer to signature string read from PNG header */ +PNG_EXPORT(130, png_const_bytep, png_get_signature, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); +#endif + +#ifdef PNG_bKGD_SUPPORTED +PNG_EXPORT(131, png_uint_32, png_get_bKGD, (png_const_structrp png_ptr, + png_inforp info_ptr, png_color_16p *background)); +#endif + +#ifdef PNG_bKGD_SUPPORTED +PNG_EXPORT(132, void, png_set_bKGD, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_color_16p background)); +#endif + +#ifdef PNG_cHRM_SUPPORTED +PNG_FP_EXPORT(133, png_uint_32, png_get_cHRM, (png_const_structrp png_ptr, + png_const_inforp info_ptr, double *white_x, double *white_y, double *red_x, + double *red_y, double *green_x, double *green_y, double *blue_x, + double *blue_y)) +PNG_FP_EXPORT(230, png_uint_32, png_get_cHRM_XYZ, (png_const_structrp png_ptr, + png_const_inforp info_ptr, double *red_X, double *red_Y, double *red_Z, + double *green_X, double *green_Y, double *green_Z, double *blue_X, + double *blue_Y, double *blue_Z)) +PNG_FIXED_EXPORT(134, png_uint_32, png_get_cHRM_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr, + png_fixed_point *int_white_x, png_fixed_point *int_white_y, + png_fixed_point *int_red_x, png_fixed_point *int_red_y, + png_fixed_point *int_green_x, png_fixed_point *int_green_y, + png_fixed_point *int_blue_x, png_fixed_point *int_blue_y)) +PNG_FIXED_EXPORT(231, png_uint_32, png_get_cHRM_XYZ_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr, + png_fixed_point *int_red_X, png_fixed_point *int_red_Y, + png_fixed_point *int_red_Z, png_fixed_point *int_green_X, + png_fixed_point *int_green_Y, png_fixed_point *int_green_Z, + png_fixed_point *int_blue_X, png_fixed_point *int_blue_Y, + png_fixed_point *int_blue_Z)) +#endif + +#ifdef PNG_cHRM_SUPPORTED +PNG_FP_EXPORT(135, void, png_set_cHRM, (png_const_structrp png_ptr, + png_inforp info_ptr, + double white_x, double white_y, double red_x, double red_y, double green_x, + double green_y, double blue_x, double blue_y)) +PNG_FP_EXPORT(232, void, png_set_cHRM_XYZ, (png_const_structrp png_ptr, + png_inforp info_ptr, double red_X, double red_Y, double red_Z, + double green_X, double green_Y, double green_Z, double blue_X, + double blue_Y, double blue_Z)) +PNG_FIXED_EXPORT(136, void, png_set_cHRM_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, png_fixed_point int_white_x, + png_fixed_point int_white_y, png_fixed_point int_red_x, + png_fixed_point int_red_y, png_fixed_point int_green_x, + png_fixed_point int_green_y, png_fixed_point int_blue_x, + png_fixed_point int_blue_y)) +PNG_FIXED_EXPORT(233, void, png_set_cHRM_XYZ_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, png_fixed_point int_red_X, png_fixed_point int_red_Y, + png_fixed_point int_red_Z, png_fixed_point int_green_X, + png_fixed_point int_green_Y, png_fixed_point int_green_Z, + png_fixed_point int_blue_X, png_fixed_point int_blue_Y, + png_fixed_point int_blue_Z)) +#endif + +#ifdef PNG_gAMA_SUPPORTED +PNG_FP_EXPORT(137, png_uint_32, png_get_gAMA, (png_const_structrp png_ptr, + png_const_inforp info_ptr, double *file_gamma)) +PNG_FIXED_EXPORT(138, png_uint_32, png_get_gAMA_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr, + png_fixed_point *int_file_gamma)) +#endif + +#ifdef PNG_gAMA_SUPPORTED +PNG_FP_EXPORT(139, void, png_set_gAMA, (png_const_structrp png_ptr, + png_inforp info_ptr, double file_gamma)) +PNG_FIXED_EXPORT(140, void, png_set_gAMA_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, png_fixed_point int_file_gamma)) +#endif + +#ifdef PNG_hIST_SUPPORTED +PNG_EXPORT(141, png_uint_32, png_get_hIST, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_16p *hist)); +#endif + +#ifdef PNG_hIST_SUPPORTED +PNG_EXPORT(142, void, png_set_hIST, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_uint_16p hist)); +#endif + +PNG_EXPORT(143, png_uint_32, png_get_IHDR, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 *width, png_uint_32 *height, + int *bit_depth, int *color_type, int *interlace_method, + int *compression_method, int *filter_method)); + +PNG_EXPORT(144, void, png_set_IHDR, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, + int color_type, int interlace_method, int compression_method, + int filter_method)); + +#ifdef PNG_oFFs_SUPPORTED +PNG_EXPORT(145, png_uint_32, png_get_oFFs, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, + int *unit_type)); +#endif + +#ifdef PNG_oFFs_SUPPORTED +PNG_EXPORT(146, void, png_set_oFFs, (png_const_structrp png_ptr, + png_inforp info_ptr, png_int_32 offset_x, png_int_32 offset_y, + int unit_type)); +#endif + +#ifdef PNG_pCAL_SUPPORTED +PNG_EXPORT(147, png_uint_32, png_get_pCAL, (png_const_structrp png_ptr, + png_inforp info_ptr, png_charp *purpose, png_int_32 *X0, + png_int_32 *X1, int *type, int *nparams, png_charp *units, + png_charpp *params)); +#endif + +#ifdef PNG_pCAL_SUPPORTED +PNG_EXPORT(148, void, png_set_pCAL, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_charp purpose, png_int_32 X0, png_int_32 X1, + int type, int nparams, png_const_charp units, png_charpp params)); +#endif + +#ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(149, png_uint_32, png_get_pHYs, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, + int *unit_type)); +#endif + +#ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(150, void, png_set_pHYs, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); +#endif + +PNG_EXPORT(151, png_uint_32, png_get_PLTE, (png_const_structrp png_ptr, + png_inforp info_ptr, png_colorp *palette, int *num_palette)); + +PNG_EXPORT(152, void, png_set_PLTE, (png_structrp png_ptr, + png_inforp info_ptr, png_const_colorp palette, int num_palette)); + +#ifdef PNG_sBIT_SUPPORTED +PNG_EXPORT(153, png_uint_32, png_get_sBIT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_color_8p *sig_bit)); +#endif + +#ifdef PNG_sBIT_SUPPORTED +PNG_EXPORT(154, void, png_set_sBIT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_color_8p sig_bit)); +#endif + +#ifdef PNG_sRGB_SUPPORTED +PNG_EXPORT(155, png_uint_32, png_get_sRGB, (png_const_structrp png_ptr, + png_const_inforp info_ptr, int *file_srgb_intent)); +#endif + +#ifdef PNG_sRGB_SUPPORTED +PNG_EXPORT(156, void, png_set_sRGB, (png_const_structrp png_ptr, + png_inforp info_ptr, int srgb_intent)); +PNG_EXPORT(157, void, png_set_sRGB_gAMA_and_cHRM, (png_const_structrp png_ptr, + png_inforp info_ptr, int srgb_intent)); +#endif + +#ifdef PNG_iCCP_SUPPORTED +PNG_EXPORT(158, png_uint_32, png_get_iCCP, (png_const_structrp png_ptr, + png_inforp info_ptr, png_charpp name, int *compression_type, + png_bytepp profile, png_uint_32 *proflen)); +#endif + +#ifdef PNG_iCCP_SUPPORTED +PNG_EXPORT(159, void, png_set_iCCP, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_charp name, int compression_type, + png_const_bytep profile, png_uint_32 proflen)); +#endif + +#ifdef PNG_sPLT_SUPPORTED +PNG_EXPORT(160, int, png_get_sPLT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_sPLT_tpp entries)); +#endif + +#ifdef PNG_sPLT_SUPPORTED +PNG_EXPORT(161, void, png_set_sPLT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_sPLT_tp entries, int nentries)); +#endif + +#ifdef PNG_TEXT_SUPPORTED +/* png_get_text also returns the number of text chunks in *num_text */ +PNG_EXPORT(162, int, png_get_text, (png_const_structrp png_ptr, + png_inforp info_ptr, png_textp *text_ptr, int *num_text)); +#endif + +/* Note while png_set_text() will accept a structure whose text, + * language, and translated keywords are NULL pointers, the structure + * returned by png_get_text will always contain regular + * zero-terminated C strings. They might be empty strings but + * they will never be NULL pointers. + */ + +#ifdef PNG_TEXT_SUPPORTED +PNG_EXPORT(163, void, png_set_text, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_textp text_ptr, int num_text)); +#endif + +#ifdef PNG_tIME_SUPPORTED +PNG_EXPORT(164, png_uint_32, png_get_tIME, (png_const_structrp png_ptr, + png_inforp info_ptr, png_timep *mod_time)); +#endif + +#ifdef PNG_tIME_SUPPORTED +PNG_EXPORT(165, void, png_set_tIME, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_timep mod_time)); +#endif + +#ifdef PNG_tRNS_SUPPORTED +PNG_EXPORT(166, png_uint_32, png_get_tRNS, (png_const_structrp png_ptr, + png_inforp info_ptr, png_bytep *trans_alpha, int *num_trans, + png_color_16p *trans_color)); +#endif + +#ifdef PNG_tRNS_SUPPORTED +PNG_EXPORT(167, void, png_set_tRNS, (png_structrp png_ptr, + png_inforp info_ptr, png_const_bytep trans_alpha, int num_trans, + png_const_color_16p trans_color)); +#endif + +#ifdef PNG_sCAL_SUPPORTED +PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL, (png_const_structrp png_ptr, + png_const_inforp info_ptr, int *unit, double *width, double *height)) +#if defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) || \ + defined(PNG_FLOATING_POINT_SUPPORTED) +/* NOTE: this API is currently implemented using floating point arithmetic, + * consequently it can only be used on systems with floating point support. + * In any case the range of values supported by png_fixed_point is small and it + * is highly recommended that png_get_sCAL_s be used instead. + */ +PNG_FIXED_EXPORT(214, png_uint_32, png_get_sCAL_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, + png_fixed_point *width, png_fixed_point *height)) +#endif +PNG_EXPORT(169, png_uint_32, png_get_sCAL_s, + (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, + png_charpp swidth, png_charpp sheight)); + +PNG_FP_EXPORT(170, void, png_set_sCAL, (png_const_structrp png_ptr, + png_inforp info_ptr, int unit, double width, double height)) +PNG_FIXED_EXPORT(213, void, png_set_sCAL_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, int unit, png_fixed_point width, + png_fixed_point height)) +PNG_EXPORT(171, void, png_set_sCAL_s, (png_const_structrp png_ptr, + png_inforp info_ptr, int unit, + png_const_charp swidth, png_const_charp sheight)); +#endif /* sCAL */ + +#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED +/* Provide the default handling for all unknown chunks or, optionally, for + * specific unknown chunks. + * + * NOTE: prior to 1.6.0 the handling specified for particular chunks on read was + * ignored and the default was used, the per-chunk setting only had an effect on + * write. If you wish to have chunk-specific handling on read in code that must + * work on earlier versions you must use a user chunk callback to specify the + * desired handling (keep or discard.) + * + * The 'keep' parameter is a PNG_HANDLE_CHUNK_ value as listed below. The + * parameter is interpreted as follows: + * + * READ: + * PNG_HANDLE_CHUNK_AS_DEFAULT: + * Known chunks: do normal libpng processing, do not keep the chunk (but + * see the comments below about PNG_HANDLE_AS_UNKNOWN_SUPPORTED) + * Unknown chunks: for a specific chunk use the global default, when used + * as the default discard the chunk data. + * PNG_HANDLE_CHUNK_NEVER: + * Discard the chunk data. + * PNG_HANDLE_CHUNK_IF_SAFE: + * Keep the chunk data if the chunk is not critical else raise a chunk + * error. + * PNG_HANDLE_CHUNK_ALWAYS: + * Keep the chunk data. + * + * If the chunk data is saved it can be retrieved using png_get_unknown_chunks, + * below. Notice that specifying "AS_DEFAULT" as a global default is equivalent + * to specifying "NEVER", however when "AS_DEFAULT" is used for specific chunks + * it simply resets the behavior to the libpng default. + * + * INTERACTION WTIH USER CHUNK CALLBACKS: + * The per-chunk handling is always used when there is a png_user_chunk_ptr + * callback and the callback returns 0; the chunk is then always stored *unless* + * it is critical and the per-chunk setting is other than ALWAYS. Notice that + * the global default is *not* used in this case. (In effect the per-chunk + * value is incremented to at least IF_SAFE.) + * + * IMPORTANT NOTE: this behavior will change in libpng 1.7 - the global and + * per-chunk defaults will be honored. If you want to preserve the current + * behavior when your callback returns 0 you must set PNG_HANDLE_CHUNK_IF_SAFE + * as the default - if you don't do this libpng 1.6 will issue a warning. + * + * If you want unhandled unknown chunks to be discarded in libpng 1.6 and + * earlier simply return '1' (handled). + * + * PNG_HANDLE_AS_UNKNOWN_SUPPORTED: + * If this is *not* set known chunks will always be handled by libpng and + * will never be stored in the unknown chunk list. Known chunks listed to + * png_set_keep_unknown_chunks will have no effect. If it is set then known + * chunks listed with a keep other than AS_DEFAULT will *never* be processed + * by libpng, in addition critical chunks must either be processed by the + * callback or saved. + * + * The IHDR and IEND chunks must not be listed. Because this turns off the + * default handling for chunks that would otherwise be recognized the + * behavior of libpng transformations may well become incorrect! + * + * WRITE: + * When writing chunks the options only apply to the chunks specified by + * png_set_unknown_chunks (below), libpng will *always* write known chunks + * required by png_set_ calls and will always write the core critical chunks + * (as required for PLTE). + * + * Each chunk in the png_set_unknown_chunks list is looked up in the + * png_set_keep_unknown_chunks list to find the keep setting, this is then + * interpreted as follows: + * + * PNG_HANDLE_CHUNK_AS_DEFAULT: + * Write safe-to-copy chunks and write other chunks if the global + * default is set to _ALWAYS, otherwise don't write this chunk. + * PNG_HANDLE_CHUNK_NEVER: + * Do not write the chunk. + * PNG_HANDLE_CHUNK_IF_SAFE: + * Write the chunk if it is safe-to-copy, otherwise do not write it. + * PNG_HANDLE_CHUNK_ALWAYS: + * Write the chunk. + * + * Note that the default behavior is effectively the opposite of the read case - + * in read unknown chunks are not stored by default, in write they are written + * by default. Also the behavior of PNG_HANDLE_CHUNK_IF_SAFE is very different + * - on write the safe-to-copy bit is checked, on read the critical bit is + * checked and on read if the chunk is critical an error will be raised. + * + * num_chunks: + * =========== + * If num_chunks is positive, then the "keep" parameter specifies the manner + * for handling only those chunks appearing in the chunk_list array, + * otherwise the chunk list array is ignored. + * + * If num_chunks is 0 the "keep" parameter specifies the default behavior for + * unknown chunks, as described above. + * + * If num_chunks is negative, then the "keep" parameter specifies the manner + * for handling all unknown chunks plus all chunks recognized by libpng + * except for the IHDR, PLTE, tRNS, IDAT, and IEND chunks (which continue to + * be processed by libpng. + */ +PNG_EXPORT(172, void, png_set_keep_unknown_chunks, (png_structrp png_ptr, + int keep, png_const_bytep chunk_list, int num_chunks)); + +/* The "keep" PNG_HANDLE_CHUNK_ parameter for the specified chunk is returned; + * the result is therefore true (non-zero) if special handling is required, + * false for the default handling. + */ +PNG_EXPORT(173, int, png_handle_as_unknown, (png_const_structrp png_ptr, + png_const_bytep chunk_name)); +#endif + +#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +PNG_EXPORT(174, void, png_set_unknown_chunks, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_unknown_chunkp unknowns, + int num_unknowns)); + /* NOTE: prior to 1.6.0 this routine set the 'location' field of the added + * unknowns to the location currently stored in the png_struct. This is + * invariably the wrong value on write. To fix this call the following API + * for each chunk in the list with the correct location. If you know your + * code won't be compiled on earlier versions you can rely on + * png_set_unknown_chunks(write-ptr, png_get_unknown_chunks(read-ptr)) doing + * the correct thing. + */ + +PNG_EXPORT(175, void, png_set_unknown_chunk_location, + (png_const_structrp png_ptr, png_inforp info_ptr, int chunk, int location)); + +PNG_EXPORT(176, int, png_get_unknown_chunks, (png_const_structrp png_ptr, + png_inforp info_ptr, png_unknown_chunkpp entries)); +#endif + +/* Png_free_data() will turn off the "valid" flag for anything it frees. + * If you need to turn it off for a chunk that your application has freed, + * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); + */ +PNG_EXPORT(177, void, png_set_invalid, (png_const_structrp png_ptr, + png_inforp info_ptr, int mask)); + +#ifdef PNG_INFO_IMAGE_SUPPORTED +/* The "params" pointer is currently not used and is for future expansion. */ +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +PNG_EXPORT(178, void, png_read_png, (png_structrp png_ptr, png_inforp info_ptr, + int transforms, png_voidp params)); +#endif +#ifdef PNG_WRITE_SUPPORTED +PNG_EXPORT(179, void, png_write_png, (png_structrp png_ptr, png_inforp info_ptr, + int transforms, png_voidp params)); +#endif +#endif + +PNG_EXPORT(180, png_const_charp, png_get_copyright, + (png_const_structrp png_ptr)); +PNG_EXPORT(181, png_const_charp, png_get_header_ver, + (png_const_structrp png_ptr)); +PNG_EXPORT(182, png_const_charp, png_get_header_version, + (png_const_structrp png_ptr)); +PNG_EXPORT(183, png_const_charp, png_get_libpng_ver, + (png_const_structrp png_ptr)); + +#ifdef PNG_MNG_FEATURES_SUPPORTED +PNG_EXPORT(184, png_uint_32, png_permit_mng_features, (png_structrp png_ptr, + png_uint_32 mng_features_permitted)); +#endif + +/* For use in png_set_keep_unknown, added to version 1.2.6 */ +#define PNG_HANDLE_CHUNK_AS_DEFAULT 0 +#define PNG_HANDLE_CHUNK_NEVER 1 +#define PNG_HANDLE_CHUNK_IF_SAFE 2 +#define PNG_HANDLE_CHUNK_ALWAYS 3 +#define PNG_HANDLE_CHUNK_LAST 4 + +/* Strip the prepended error numbers ("#nnn ") from error and warning + * messages before passing them to the error or warning handler. + */ +#ifdef PNG_ERROR_NUMBERS_SUPPORTED +PNG_EXPORT(185, void, png_set_strip_error_numbers, (png_structrp png_ptr, + png_uint_32 strip_mode)); +#endif + +/* Added in libpng-1.2.6 */ +#ifdef PNG_SET_USER_LIMITS_SUPPORTED +PNG_EXPORT(186, void, png_set_user_limits, (png_structrp png_ptr, + png_uint_32 user_width_max, png_uint_32 user_height_max)); +PNG_EXPORT(187, png_uint_32, png_get_user_width_max, + (png_const_structrp png_ptr)); +PNG_EXPORT(188, png_uint_32, png_get_user_height_max, + (png_const_structrp png_ptr)); +/* Added in libpng-1.4.0 */ +PNG_EXPORT(189, void, png_set_chunk_cache_max, (png_structrp png_ptr, + png_uint_32 user_chunk_cache_max)); +PNG_EXPORT(190, png_uint_32, png_get_chunk_cache_max, + (png_const_structrp png_ptr)); +/* Added in libpng-1.4.1 */ +PNG_EXPORT(191, void, png_set_chunk_malloc_max, (png_structrp png_ptr, + png_alloc_size_t user_chunk_cache_max)); +PNG_EXPORT(192, png_alloc_size_t, png_get_chunk_malloc_max, + (png_const_structrp png_ptr)); +#endif + +#if defined(PNG_INCH_CONVERSIONS_SUPPORTED) +PNG_EXPORT(193, png_uint_32, png_get_pixels_per_inch, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +PNG_EXPORT(194, png_uint_32, png_get_x_pixels_per_inch, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +PNG_EXPORT(195, png_uint_32, png_get_y_pixels_per_inch, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +PNG_FP_EXPORT(196, float, png_get_x_offset_inches, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) +#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ +PNG_FIXED_EXPORT(211, png_fixed_point, png_get_x_offset_inches_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) +#endif + +PNG_FP_EXPORT(197, float, png_get_y_offset_inches, (png_const_structrp png_ptr, + png_const_inforp info_ptr)) +#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ +PNG_FIXED_EXPORT(212, png_fixed_point, png_get_y_offset_inches_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) +#endif + +# ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(198, png_uint_32, png_get_pHYs_dpi, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, + int *unit_type)); +# endif /* pHYs */ +#endif /* INCH_CONVERSIONS */ + +/* Added in libpng-1.4.0 */ +#ifdef PNG_IO_STATE_SUPPORTED +PNG_EXPORT(199, png_uint_32, png_get_io_state, (png_const_structrp png_ptr)); + +/* Removed from libpng 1.6; use png_get_io_chunk_type. */ +PNG_REMOVED(200, png_const_bytep, png_get_io_chunk_name, (png_structrp png_ptr), + PNG_DEPRECATED) + +PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, + (png_const_structrp png_ptr)); + +/* The flags returned by png_get_io_state() are the following: */ +# define PNG_IO_NONE 0x0000 /* no I/O at this moment */ +# define PNG_IO_READING 0x0001 /* currently reading */ +# define PNG_IO_WRITING 0x0002 /* currently writing */ +# define PNG_IO_SIGNATURE 0x0010 /* currently at the file signature */ +# define PNG_IO_CHUNK_HDR 0x0020 /* currently at the chunk header */ +# define PNG_IO_CHUNK_DATA 0x0040 /* currently at the chunk data */ +# define PNG_IO_CHUNK_CRC 0x0080 /* currently at the chunk crc */ +# define PNG_IO_MASK_OP 0x000f /* current operation: reading/writing */ +# define PNG_IO_MASK_LOC 0x00f0 /* current location: sig/hdr/data/crc */ +#endif /* IO_STATE */ + +/* Interlace support. The following macros are always defined so that if + * libpng interlace handling is turned off the macros may be used to handle + * interlaced images within the application. + */ +#define PNG_INTERLACE_ADAM7_PASSES 7 + +/* Two macros to return the first row and first column of the original, + * full, image which appears in a given pass. 'pass' is in the range 0 + * to 6 and the result is in the range 0 to 7. + */ +#define PNG_PASS_START_ROW(pass) (((1&~(pass))<<(3-((pass)>>1)))&7) +#define PNG_PASS_START_COL(pass) (((1& (pass))<<(3-(((pass)+1)>>1)))&7) + +/* A macro to return the offset between pixels in the output row for a pair of + * pixels in the input - effectively the inverse of the 'COL_SHIFT' macro that + * follows. Note that ROW_OFFSET is the offset from one row to the next whereas + * COL_OFFSET is from one column to the next, within a row. + */ +#define PNG_PASS_ROW_OFFSET(pass) ((pass)>2?(8>>(((pass)-1)>>1)):8) +#define PNG_PASS_COL_OFFSET(pass) (1<<((7-(pass))>>1)) + +/* Two macros to help evaluate the number of rows or columns in each + * pass. This is expressed as a shift - effectively log2 of the number or + * rows or columns in each 8x8 tile of the original image. + */ +#define PNG_PASS_ROW_SHIFT(pass) ((pass)>2?(8-(pass))>>1:3) +#define PNG_PASS_COL_SHIFT(pass) ((pass)>1?(7-(pass))>>1:3) + +/* Hence two macros to determine the number of rows or columns in a given + * pass of an image given its height or width. In fact these macros may + * return non-zero even though the sub-image is empty, because the other + * dimension may be empty for a small image. + */ +#define PNG_PASS_ROWS(height, pass) (((height)+(((1<>PNG_PASS_ROW_SHIFT(pass)) +#define PNG_PASS_COLS(width, pass) (((width)+(((1<>PNG_PASS_COL_SHIFT(pass)) + +/* For the reader row callbacks (both progressive and sequential) it is + * necessary to find the row in the output image given a row in an interlaced + * image, so two more macros: + */ +#define PNG_ROW_FROM_PASS_ROW(y_in, pass) \ + (((y_in)<>(((7-(off))-(pass))<<2)) & 0xF) | \ + ((0x01145AF0>>(((7-(off))-(pass))<<2)) & 0xF0)) + +#define PNG_ROW_IN_INTERLACE_PASS(y, pass) \ + ((PNG_PASS_MASK(pass,0) >> ((y)&7)) & 1) +#define PNG_COL_IN_INTERLACE_PASS(x, pass) \ + ((PNG_PASS_MASK(pass,1) >> ((x)&7)) & 1) + +#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED +/* With these routines we avoid an integer divide, which will be slower on + * most machines. However, it does take more operations than the corresponding + * divide method, so it may be slower on a few RISC systems. There are two + * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. + * + * Note that the rounding factors are NOT supposed to be the same! 128 and + * 32768 are correct for the NODIV code; 127 and 32767 are correct for the + * standard method. + * + * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] + */ + + /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ + +# define png_composite(composite, fg, alpha, bg) \ + { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \ + * (png_uint_16)(alpha) \ + + (png_uint_16)(bg)*(png_uint_16)(255 \ + - (png_uint_16)(alpha)) + 128); \ + (composite) = (png_byte)((temp + (temp >> 8)) >> 8); } + +# define png_composite_16(composite, fg, alpha, bg) \ + { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) \ + * (png_uint_32)(alpha) \ + + (png_uint_32)(bg)*(65535 \ + - (png_uint_32)(alpha)) + 32768); \ + (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); } + +#else /* Standard method using integer division */ + +# define png_composite(composite, fg, alpha, bg) \ + (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \ + (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ + 127) / 255) + +# define png_composite_16(composite, fg, alpha, bg) \ + (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \ + (png_uint_32)(bg)*(png_uint_32)(65535 - (png_uint_32)(alpha)) + \ + 32767) / 65535) +#endif /* READ_COMPOSITE_NODIV */ + +#ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED +PNG_EXPORT(201, png_uint_32, png_get_uint_32, (png_const_bytep buf)); +PNG_EXPORT(202, png_uint_16, png_get_uint_16, (png_const_bytep buf)); +PNG_EXPORT(203, png_int_32, png_get_int_32, (png_const_bytep buf)); +#endif + +PNG_EXPORT(204, png_uint_32, png_get_uint_31, (png_const_structrp png_ptr, + png_const_bytep buf)); +/* No png_get_int_16 -- may be added if there's a real need for it. */ + +/* Place a 32-bit number into a buffer in PNG byte order (big-endian). */ +#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED +PNG_EXPORT(205, void, png_save_uint_32, (png_bytep buf, png_uint_32 i)); +#endif +#ifdef PNG_SAVE_INT_32_SUPPORTED +PNG_EXPORT(206, void, png_save_int_32, (png_bytep buf, png_int_32 i)); +#endif + +/* Place a 16-bit number into a buffer in PNG byte order. + * The parameter is declared unsigned int, not png_uint_16, + * just to avoid potential problems on pre-ANSI C compilers. + */ +#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED +PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i)); +/* No png_save_int_16 -- may be added if there's a real need for it. */ +#endif + +#ifdef PNG_USE_READ_MACROS +/* Inline macros to do direct reads of bytes from the input buffer. + * The png_get_int_32() routine assumes we are using two's complement + * format for negative values, which is almost certainly true. + */ +# define PNG_get_uint_32(buf) \ + (((png_uint_32)(*(buf)) << 24) + \ + ((png_uint_32)(*((buf) + 1)) << 16) + \ + ((png_uint_32)(*((buf) + 2)) << 8) + \ + ((png_uint_32)(*((buf) + 3)))) + + /* From libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the + * function) incorrectly returned a value of type png_uint_32. + */ +# define PNG_get_uint_16(buf) \ + ((png_uint_16) \ + (((unsigned int)(*(buf)) << 8) + \ + ((unsigned int)(*((buf) + 1))))) + +# define PNG_get_int_32(buf) \ + ((png_int_32)((*(buf) & 0x80) \ + ? -((png_int_32)((png_get_uint_32(buf) ^ 0xffffffffL) + 1)) \ + : (png_int_32)png_get_uint_32(buf))) + + /* If PNG_PREFIX is defined the same thing as below happens in pnglibconf.h, + * but defining a macro name prefixed with PNG_PREFIX. + */ +# ifndef PNG_PREFIX +# define png_get_uint_32(buf) PNG_get_uint_32(buf) +# define png_get_uint_16(buf) PNG_get_uint_16(buf) +# define png_get_int_32(buf) PNG_get_int_32(buf) +# endif +#else +# ifdef PNG_PREFIX + /* No macros; revert to the (redefined) function */ +# define PNG_get_uint_32 (png_get_uint_32) +# define PNG_get_uint_16 (png_get_uint_16) +# define PNG_get_int_32 (png_get_int_32) +# endif +#endif + +#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) || \ + defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) +/******************************************************************************* + * SIMPLIFIED API + ******************************************************************************* + * + * Please read the documentation in libpng-manual.txt (TODO: write said + * documentation) if you don't understand what follows. + * + * The simplified API hides the details of both libpng and the PNG file format + * itself. It allows PNG files to be read into a very limited number of + * in-memory bitmap formats or to be written from the same formats. If these + * formats do not accomodate your needs then you can, and should, use the more + * sophisticated APIs above - these support a wide variety of in-memory formats + * and a wide variety of sophisticated transformations to those formats as well + * as a wide variety of APIs to manipulate ancillary information. + * + * To read a PNG file using the simplified API: + * + * 1) Declare a 'png_image' structure (see below) on the stack and set the + * version field to PNG_IMAGE_VERSION. + * 2) Call the appropriate png_image_begin_read... function. + * 3) Set the png_image 'format' member to the required sample format. + * 4) Allocate a buffer for the image and, if required, the color-map. + * 5) Call png_image_finish_read to read the image and, if required, the + * color-map into your buffers. + * + * There are no restrictions on the format of the PNG input itself; all valid + * color types, bit depths, and interlace methods are acceptable, and the + * input image is transformed as necessary to the requested in-memory format + * during the png_image_finish_read() step. The only caveat is that if you + * request a color-mapped image from a PNG that is full-color or makes + * complex use of an alpha channel the transformation is extremely lossy and the + * result may look terrible. + * + * To write a PNG file using the simplified API: + * + * 1) Declare a 'png_image' structure on the stack and memset() it to all zero. + * 2) Initialize the members of the structure that describe the image, setting + * the 'format' member to the format of the image samples. + * 3) Call the appropriate png_image_write... function with a pointer to the + * image and, if necessary, the color-map to write the PNG data. + * + * png_image is a structure that describes the in-memory format of an image + * when it is being read or defines the in-memory format of an image that you + * need to write: + */ +#define PNG_IMAGE_VERSION 1 + +typedef struct png_control *png_controlp; +typedef struct +{ + png_controlp opaque; /* Initialize to NULL, free with png_image_free */ + png_uint_32 version; /* Set to PNG_IMAGE_VERSION */ + png_uint_32 width; /* Image width in pixels (columns) */ + png_uint_32 height; /* Image height in pixels (rows) */ + png_uint_32 format; /* Image format as defined below */ + png_uint_32 flags; /* A bit mask containing informational flags */ + png_uint_32 colormap_entries; + /* Number of entries in the color-map */ + + /* In the event of an error or warning the following field will be set to a + * non-zero value and the 'message' field will contain a '\0' terminated + * string with the libpng error or warning message. If both warnings and + * an error were encountered, only the error is recorded. If there + * are multiple warnings, only the first one is recorded. + * + * The upper 30 bits of this value are reserved, the low two bits contain + * a value as follows: + */ +# define PNG_IMAGE_WARNING 1 +# define PNG_IMAGE_ERROR 2 + /* + * The result is a two-bit code such that a value more than 1 indicates + * a failure in the API just called: + * + * 0 - no warning or error + * 1 - warning + * 2 - error + * 3 - error preceded by warning + */ +# define PNG_IMAGE_FAILED(png_cntrl) ((((png_cntrl).warning_or_error)&0x03)>1) + + png_uint_32 warning_or_error; + + char message[64]; +} png_image, *png_imagep; + +/* The samples of the image have one to four channels whose components have + * original values in the range 0 to 1.0: + * + * 1: A single gray or luminance channel (G). + * 2: A gray/luminance channel and an alpha channel (GA). + * 3: Three red, green, blue color channels (RGB). + * 4: Three color channels and an alpha channel (RGBA). + * + * The components are encoded in one of two ways: + * + * a) As a small integer, value 0..255, contained in a single byte. For the + * alpha channel the original value is simply value/255. For the color or + * luminance channels the value is encoded according to the sRGB specification + * and matches the 8-bit format expected by typical display devices. + * + * The color/gray channels are not scaled (pre-multiplied) by the alpha + * channel and are suitable for passing to color management software. + * + * b) As a value in the range 0..65535, contained in a 2-byte integer. All + * channels can be converted to the original value by dividing by 65535; all + * channels are linear. Color channels use the RGB encoding (RGB end-points) of + * the sRGB specification. This encoding is identified by the + * PNG_FORMAT_FLAG_LINEAR flag below. + * + * When the simplified API needs to convert between sRGB and linear colorspaces, + * the actual sRGB transfer curve defined in the sRGB specification (see the + * article at http://en.wikipedia.org/wiki/SRGB) is used, not the gamma=1/2.2 + * approximation used elsewhere in libpng. + * + * When an alpha channel is present it is expected to denote pixel coverage + * of the color or luminance channels and is returned as an associated alpha + * channel: the color/gray channels are scaled (pre-multiplied) by the alpha + * value. + * + * The samples are either contained directly in the image data, between 1 and 8 + * bytes per pixel according to the encoding, or are held in a color-map indexed + * by bytes in the image data. In the case of a color-map the color-map entries + * are individual samples, encoded as above, and the image data has one byte per + * pixel to select the relevant sample from the color-map. + */ + +/* PNG_FORMAT_* + * + * #defines to be used in png_image::format. Each #define identifies a + * particular layout of sample data and, if present, alpha values. There are + * separate defines for each of the two component encodings. + * + * A format is built up using single bit flag values. All combinations are + * valid. Formats can be built up from the flag values or you can use one of + * the predefined values below. When testing formats always use the FORMAT_FLAG + * macros to test for individual features - future versions of the library may + * add new flags. + * + * When reading or writing color-mapped images the format should be set to the + * format of the entries in the color-map then png_image_{read,write}_colormap + * called to read or write the color-map and set the format correctly for the + * image data. Do not set the PNG_FORMAT_FLAG_COLORMAP bit directly! + * + * NOTE: libpng can be built with particular features disabled, if you see + * compiler errors because the definition of one of the following flags has been + * compiled out it is because libpng does not have the required support. It is + * possible, however, for the libpng configuration to enable the format on just + * read or just write; in that case you may see an error at run time. You can + * guard against this by checking for the definition of the appropriate + * "_SUPPORTED" macro, one of: + * + * PNG_SIMPLIFIED_{READ,WRITE}_{BGR,AFIRST}_SUPPORTED + */ +#define PNG_FORMAT_FLAG_ALPHA 0x01U /* format with an alpha channel */ +#define PNG_FORMAT_FLAG_COLOR 0x02U /* color format: otherwise grayscale */ +#define PNG_FORMAT_FLAG_LINEAR 0x04U /* 2 byte channels else 1 byte */ +#define PNG_FORMAT_FLAG_COLORMAP 0x08U /* image data is color-mapped */ + +#ifdef PNG_FORMAT_BGR_SUPPORTED +# define PNG_FORMAT_FLAG_BGR 0x10U /* BGR colors, else order is RGB */ +#endif + +#ifdef PNG_FORMAT_AFIRST_SUPPORTED +# define PNG_FORMAT_FLAG_AFIRST 0x20U /* alpha channel comes first */ +#endif + +/* Commonly used formats have predefined macros. + * + * First the single byte (sRGB) formats: + */ +#define PNG_FORMAT_GRAY 0 +#define PNG_FORMAT_GA PNG_FORMAT_FLAG_ALPHA +#define PNG_FORMAT_AG (PNG_FORMAT_GA|PNG_FORMAT_FLAG_AFIRST) +#define PNG_FORMAT_RGB PNG_FORMAT_FLAG_COLOR +#define PNG_FORMAT_BGR (PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_BGR) +#define PNG_FORMAT_RGBA (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_ALPHA) +#define PNG_FORMAT_ARGB (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_AFIRST) +#define PNG_FORMAT_BGRA (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_ALPHA) +#define PNG_FORMAT_ABGR (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_AFIRST) + +/* Then the linear 2-byte formats. When naming these "Y" is used to + * indicate a luminance (gray) channel. + */ +#define PNG_FORMAT_LINEAR_Y PNG_FORMAT_FLAG_LINEAR +#define PNG_FORMAT_LINEAR_Y_ALPHA (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_ALPHA) +#define PNG_FORMAT_LINEAR_RGB (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR) +#define PNG_FORMAT_LINEAR_RGB_ALPHA \ + (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA) + +/* With color-mapped formats the image data is one byte for each pixel, the byte + * is an index into the color-map which is formatted as above. To obtain a + * color-mapped format it is sufficient just to add the PNG_FOMAT_FLAG_COLORMAP + * to one of the above definitions, or you can use one of the definitions below. + */ +#define PNG_FORMAT_RGB_COLORMAP (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_BGR_COLORMAP (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_RGBA_COLORMAP (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_ARGB_COLORMAP (PNG_FORMAT_ARGB|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_BGRA_COLORMAP (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_ABGR_COLORMAP (PNG_FORMAT_ABGR|PNG_FORMAT_FLAG_COLORMAP) + +/* PNG_IMAGE macros + * + * These are convenience macros to derive information from a png_image + * structure. The PNG_IMAGE_SAMPLE_ macros return values appropriate to the + * actual image sample values - either the entries in the color-map or the + * pixels in the image. The PNG_IMAGE_PIXEL_ macros return corresponding values + * for the pixels and will always return 1 for color-mapped formats. The + * remaining macros return information about the rows in the image and the + * complete image. + * + * NOTE: All the macros that take a png_image::format parameter are compile time + * constants if the format parameter is, itself, a constant. Therefore these + * macros can be used in array declarations and case labels where required. + * Similarly the macros are also pre-processor constants (sizeof is not used) so + * they can be used in #if tests. + * + * First the information about the samples. + */ +#define PNG_IMAGE_SAMPLE_CHANNELS(fmt)\ + (((fmt)&(PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA))+1) + /* Return the total number of channels in a given format: 1..4 */ + +#define PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)\ + ((((fmt) & PNG_FORMAT_FLAG_LINEAR) >> 2)+1) + /* Return the size in bytes of a single component of a pixel or color-map + * entry (as appropriate) in the image: 1 or 2. + */ + +#define PNG_IMAGE_SAMPLE_SIZE(fmt)\ + (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)) + /* This is the size of the sample data for one sample. If the image is + * color-mapped it is the size of one color-map entry (and image pixels are + * one byte in size), otherwise it is the size of one image pixel. + */ + +#define PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(fmt)\ + (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * 256) + /* The maximum size of the color-map required by the format expressed in a + * count of components. This can be used to compile-time allocate a + * color-map: + * + * png_uint_16 colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(linear_fmt)]; + * + * png_byte colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(sRGB_fmt)]; + * + * Alternatively use the PNG_IMAGE_COLORMAP_SIZE macro below to use the + * information from one of the png_image_begin_read_ APIs and dynamically + * allocate the required memory. + */ + +/* Corresponding information about the pixels */ +#define PNG_IMAGE_PIXEL_(test,fmt)\ + (((fmt)&PNG_FORMAT_FLAG_COLORMAP)?1:test(fmt)) + +#define PNG_IMAGE_PIXEL_CHANNELS(fmt)\ + PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_CHANNELS,fmt) + /* The number of separate channels (components) in a pixel; 1 for a + * color-mapped image. + */ + +#define PNG_IMAGE_PIXEL_COMPONENT_SIZE(fmt)\ + PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_COMPONENT_SIZE,fmt) + /* The size, in bytes, of each component in a pixel; 1 for a color-mapped + * image. + */ + +#define PNG_IMAGE_PIXEL_SIZE(fmt) PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_SIZE,fmt) + /* The size, in bytes, of a complete pixel; 1 for a color-mapped image. */ + +/* Information about the whole row, or whole image */ +#define PNG_IMAGE_ROW_STRIDE(image)\ + (PNG_IMAGE_PIXEL_CHANNELS((image).format) * (image).width) + /* Return the total number of components in a single row of the image; this + * is the minimum 'row stride', the minimum count of components between each + * row. For a color-mapped image this is the minimum number of bytes in a + * row. + */ + +#define PNG_IMAGE_BUFFER_SIZE(image, row_stride)\ + (PNG_IMAGE_PIXEL_COMPONENT_SIZE((image).format)*(image).height*(row_stride)) + /* Return the size, in bytes, of an image buffer given a png_image and a row + * stride - the number of components to leave space for in each row. + */ + +#define PNG_IMAGE_SIZE(image)\ + PNG_IMAGE_BUFFER_SIZE(image, PNG_IMAGE_ROW_STRIDE(image)) + /* Return the size, in bytes, of the image in memory given just a png_image; + * the row stride is the minimum stride required for the image. + */ + +#define PNG_IMAGE_COLORMAP_SIZE(image)\ + (PNG_IMAGE_SAMPLE_SIZE((image).format) * (image).colormap_entries) + /* Return the size, in bytes, of the color-map of this image. If the image + * format is not a color-map format this will return a size sufficient for + * 256 entries in the given format; check PNG_FORMAT_FLAG_COLORMAP if + * you don't want to allocate a color-map in this case. + */ + +/* PNG_IMAGE_FLAG_* + * + * Flags containing additional information about the image are held in the + * 'flags' field of png_image. + */ +#define PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB 0x01 + /* This indicates the the RGB values of the in-memory bitmap do not + * correspond to the red, green and blue end-points defined by sRGB. + */ + +#define PNG_IMAGE_FLAG_FAST 0x02 + /* On write emphasise speed over compression; the resultant PNG file will be + * larger but will be produced significantly faster, particular for large + * images. Do not use this option for images which will be distributed, only + * used it when producing intermediate files that will be read back in + * repeatedly. For a typical 24-bit image the option will double the read + * speed at the cost of increasing the image size by 25%, however for many + * more compressible images the PNG file can be 10 times larger with only a + * slight speed gain. + */ + +#define PNG_IMAGE_FLAG_16BIT_sRGB 0x04 + /* On read if the image is a 16-bit per component image and there is no gAMA + * or sRGB chunk assume that the components are sRGB encoded. Notice that + * images output by the simplified API always have gamma information; setting + * this flag only affects the interpretation of 16-bit images from an + * external source. It is recommended that the application expose this flag + * to the user; the user can normally easily recognize the difference between + * linear and sRGB encoding. This flag has no effect on write - the data + * passed to the write APIs must have the correct encoding (as defined + * above.) + * + * If the flag is not set (the default) input 16-bit per component data is + * assumed to be linear. + * + * NOTE: the flag can only be set after the png_image_begin_read_ call, + * because that call initializes the 'flags' field. + */ + +#ifdef PNG_SIMPLIFIED_READ_SUPPORTED +/* READ APIs + * --------- + * + * The png_image passed to the read APIs must have been initialized by setting + * the png_controlp field 'opaque' to NULL (or, safer, memset the whole thing.) + */ +#ifdef PNG_STDIO_SUPPORTED +PNG_EXPORT(234, int, png_image_begin_read_from_file, (png_imagep image, + const char *file_name)); + /* The named file is opened for read and the image header is filled in + * from the PNG header in the file. + */ + +PNG_EXPORT(235, int, png_image_begin_read_from_stdio, (png_imagep image, + FILE* file)); + /* The PNG header is read from the stdio FILE object. */ +#endif /* STDIO */ + +PNG_EXPORT(236, int, png_image_begin_read_from_memory, (png_imagep image, + png_const_voidp memory, png_size_t size)); + /* The PNG header is read from the given memory buffer. */ + +PNG_EXPORT(237, int, png_image_finish_read, (png_imagep image, + png_const_colorp background, void *buffer, png_int_32 row_stride, + void *colormap)); + /* Finish reading the image into the supplied buffer and clean up the + * png_image structure. + * + * row_stride is the step, in byte or 2-byte units as appropriate, + * between adjacent rows. A positive stride indicates that the top-most row + * is first in the buffer - the normal top-down arrangement. A negative + * stride indicates that the bottom-most row is first in the buffer. + * + * background need only be supplied if an alpha channel must be removed from + * a png_byte format and the removal is to be done by compositing on a solid + * color; otherwise it may be NULL and any composition will be done directly + * onto the buffer. The value is an sRGB color to use for the background, + * for grayscale output the green channel is used. + * + * background must be supplied when an alpha channel must be removed from a + * single byte color-mapped output format, in other words if: + * + * 1) The original format from png_image_begin_read_from_* had + * PNG_FORMAT_FLAG_ALPHA set. + * 2) The format set by the application does not. + * 3) The format set by the application has PNG_FORMAT_FLAG_COLORMAP set and + * PNG_FORMAT_FLAG_LINEAR *not* set. + * + * For linear output removing the alpha channel is always done by compositing + * on black and background is ignored. + * + * colormap must be supplied when PNG_FORMAT_FLAG_COLORMAP is set. It must + * be at least the size (in bytes) returned by PNG_IMAGE_COLORMAP_SIZE. + * image->colormap_entries will be updated to the actual number of entries + * written to the colormap; this may be less than the original value. + */ + +PNG_EXPORT(238, void, png_image_free, (png_imagep image)); + /* Free any data allocated by libpng in image->opaque, setting the pointer to + * NULL. May be called at any time after the structure is initialized. + */ +#endif /* SIMPLIFIED_READ */ + +#ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED +#ifdef PNG_STDIO_SUPPORTED +/* WRITE APIS + * ---------- + * For write you must initialize a png_image structure to describe the image to + * be written. To do this use memset to set the whole structure to 0 then + * initialize fields describing your image. + * + * version: must be set to PNG_IMAGE_VERSION + * opaque: must be initialized to NULL + * width: image width in pixels + * height: image height in rows + * format: the format of the data (image and color-map) you wish to write + * flags: set to 0 unless one of the defined flags applies; set + * PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB for color format images where the RGB + * values do not correspond to the colors in sRGB. + * colormap_entries: set to the number of entries in the color-map (0 to 256) + */ +PNG_EXPORT(239, int, png_image_write_to_file, (png_imagep image, + const char *file, int convert_to_8bit, const void *buffer, + png_int_32 row_stride, const void *colormap)); + /* Write the image to the named file. */ + +PNG_EXPORT(240, int, png_image_write_to_stdio, (png_imagep image, FILE *file, + int convert_to_8_bit, const void *buffer, png_int_32 row_stride, + const void *colormap)); + /* Write the image to the given (FILE*). */ + +/* With both write APIs if image is in one of the linear formats with 16-bit + * data then setting convert_to_8_bit will cause the output to be an 8-bit PNG + * gamma encoded according to the sRGB specification, otherwise a 16-bit linear + * encoded PNG file is written. + * + * With color-mapped data formats the colormap parameter point to a color-map + * with at least image->colormap_entries encoded in the specified format. If + * the format is linear the written PNG color-map will be converted to sRGB + * regardless of the convert_to_8_bit flag. + * + * With all APIs row_stride is handled as in the read APIs - it is the spacing + * from one row to the next in component sized units (1 or 2 bytes) and if + * negative indicates a bottom-up row layout in the buffer. + * + * Note that the write API does not support interlacing or sub-8-bit pixels. + */ +#endif /* STDIO */ +#endif /* SIMPLIFIED_WRITE */ +/******************************************************************************* + * END OF SIMPLIFIED API + ******************************************************************************/ +#endif /* SIMPLIFIED_{READ|WRITE} */ + +#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED +PNG_EXPORT(242, void, png_set_check_for_invalid_index, + (png_structrp png_ptr, int allowed)); +# ifdef PNG_GET_PALETTE_MAX_SUPPORTED +PNG_EXPORT(243, int, png_get_palette_max, (png_const_structp png_ptr, + png_const_infop info_ptr)); +# endif +#endif /* CHECK_FOR_INVALID_INDEX */ + +/******************************************************************************* + * IMPLEMENTATION OPTIONS + ******************************************************************************* + * + * Support for arbitrary implementation-specific optimizations. The API allows + * particular options to be turned on or off. 'Option' is the number of the + * option and 'onoff' is 0 (off) or non-0 (on). The value returned is given + * by the PNG_OPTION_ defines below. + * + * HARDWARE: normally hardware capabilites, such as the Intel SSE instructions, + * are detected at run time, however sometimes it may be impossible + * to do this in user mode, in which case it is necessary to discover + * the capabilities in an OS specific way. Such capabilities are + * listed here when libpng has support for them and must be turned + * ON by the application if present. + * + * SOFTWARE: sometimes software optimizations actually result in performance + * decrease on some architectures or systems, or with some sets of + * PNG images. 'Software' options allow such optimizations to be + * selected at run time. + */ +#ifdef PNG_SET_OPTION_SUPPORTED +#ifdef PNG_ARM_NEON_API_SUPPORTED +# define PNG_ARM_NEON 0 /* HARDWARE: ARM Neon SIMD instructions supported */ +#endif +#define PNG_MAXIMUM_INFLATE_WINDOW 2 /* SOFTWARE: force maximum window */ +#define PNG_SKIP_sRGB_CHECK_PROFILE 4 /* SOFTWARE: Check ICC profile for sRGB */ +#define PNG_OPTION_NEXT 6 /* Next option - numbers must be even */ + +/* Return values: NOTE: there are four values and 'off' is *not* zero */ +#define PNG_OPTION_UNSET 0 /* Unset - defaults to off */ +#define PNG_OPTION_INVALID 1 /* Option number out of range */ +#define PNG_OPTION_OFF 2 +#define PNG_OPTION_ON 3 + +PNG_EXPORT(244, int, png_set_option, (png_structrp png_ptr, int option, + int onoff)); +#endif /* SET_OPTION */ + +/******************************************************************************* + * END OF HARDWARE AND SOFTWARE OPTIONS + ******************************************************************************/ + +/* Maintainer: Put new public prototypes here ^, in libpng.3, in project + * defs, and in scripts/symbols.def. + */ + +/* The last ordinal number (this is the *last* one already used; the next + * one to use is one more than this.) + */ +#ifdef PNG_EXPORT_LAST_ORDINAL + PNG_EXPORT_LAST_ORDINAL(244); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* PNG_VERSION_INFO_ONLY */ +/* Do not put anything past this line */ +#endif /* PNG_H */ diff --git a/ios/include/png/pngconf.h b/ios/include/png/pngconf.h new file mode 100755 index 00000000..03615f0e --- /dev/null +++ b/ios/include/png/pngconf.h @@ -0,0 +1,644 @@ + +/* pngconf.h - machine configurable file for libpng + * + * libpng version 1.6.16,December 22, 2014 + * + * Copyright (c) 1998-2014 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * + * This code is released under the libpng license. + * For conditions of distribution and use, see the disclaimer + * and license in png.h + * + */ + +/* Any machine specific code is near the front of this file, so if you + * are configuring libpng for a machine, you may want to read the section + * starting here down to where it starts to typedef png_color, png_text, + * and png_info. + */ + +#ifndef PNGCONF_H +#define PNGCONF_H + +/* To do: Do all of this in scripts/pnglibconf.dfa */ +#ifdef PNG_SAFE_LIMITS_SUPPORTED +# ifdef PNG_USER_WIDTH_MAX +# undef PNG_USER_WIDTH_MAX +# define PNG_USER_WIDTH_MAX 1000000L +# endif +# ifdef PNG_USER_HEIGHT_MAX +# undef PNG_USER_HEIGHT_MAX +# define PNG_USER_HEIGHT_MAX 1000000L +# endif +# ifdef PNG_USER_CHUNK_MALLOC_MAX +# undef PNG_USER_CHUNK_MALLOC_MAX +# define PNG_USER_CHUNK_MALLOC_MAX 4000000L +# endif +# ifdef PNG_USER_CHUNK_CACHE_MAX +# undef PNG_USER_CHUNK_CACHE_MAX +# define PNG_USER_CHUNK_CACHE_MAX 128 +# endif +#endif + +#ifndef PNG_BUILDING_SYMBOL_TABLE /* else includes may cause problems */ + +/* From libpng 1.6.0 libpng requires an ANSI X3.159-1989 ("ISOC90") compliant C + * compiler for correct compilation. The following header files are required by + * the standard. If your compiler doesn't provide these header files, or they + * do not match the standard, you will need to provide/improve them. + */ +#include +#include + +/* Library header files. These header files are all defined by ISOC90; libpng + * expects conformant implementations, however, an ISOC90 conformant system need + * not provide these header files if the functionality cannot be implemented. + * In this case it will be necessary to disable the relevant parts of libpng in + * the build of pnglibconf.h. + * + * Prior to 1.6.0 string.h was included here; the API changes in 1.6.0 to not + * include this unnecessary header file. + */ + +#ifdef PNG_STDIO_SUPPORTED + /* Required for the definition of FILE: */ +# include +#endif + +#ifdef PNG_SETJMP_SUPPORTED + /* Required for the definition of jmp_buf and the declaration of longjmp: */ +# include +#endif + +#ifdef PNG_CONVERT_tIME_SUPPORTED + /* Required for struct tm: */ +# include +#endif + +#endif /* PNG_BUILDING_SYMBOL_TABLE */ + +/* Prior to 1.6.0 it was possible to turn off 'const' in declarations using + * PNG_NO_CONST; this is no longer supported except for data declarations which + * apparently still cause problems in 2011 on some compilers. + */ +#define PNG_CONST const /* backward compatibility only */ + +/* This controls optimization of the reading of 16 and 32 bit values + * from PNG files. It can be set on a per-app-file basis - it + * just changes whether a macro is used when the function is called. + * The library builder sets the default; if read functions are not + * built into the library the macro implementation is forced on. + */ +#ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED +# define PNG_USE_READ_MACROS +#endif +#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS) +# if PNG_DEFAULT_READ_MACROS +# define PNG_USE_READ_MACROS +# endif +#endif + +/* COMPILER SPECIFIC OPTIONS. + * + * These options are provided so that a variety of difficult compilers + * can be used. Some are fixed at build time (e.g. PNG_API_RULE + * below) but still have compiler specific implementations, others + * may be changed on a per-file basis when compiling against libpng. + */ + +/* The PNGARG macro was used in versions of libpng prior to 1.6.0 to protect + * against legacy (pre ISOC90) compilers that did not understand function + * prototypes. It is not required for modern C compilers. + */ +#ifndef PNGARG +# define PNGARG(arglist) arglist +#endif + +/* Function calling conventions. + * ============================= + * Normally it is not necessary to specify to the compiler how to call + * a function - it just does it - however on x86 systems derived from + * Microsoft and Borland C compilers ('IBM PC', 'DOS', 'Windows' systems + * and some others) there are multiple ways to call a function and the + * default can be changed on the compiler command line. For this reason + * libpng specifies the calling convention of every exported function and + * every function called via a user supplied function pointer. This is + * done in this file by defining the following macros: + * + * PNGAPI Calling convention for exported functions. + * PNGCBAPI Calling convention for user provided (callback) functions. + * PNGCAPI Calling convention used by the ANSI-C library (required + * for longjmp callbacks and sometimes used internally to + * specify the calling convention for zlib). + * + * These macros should never be overridden. If it is necessary to + * change calling convention in a private build this can be done + * by setting PNG_API_RULE (which defaults to 0) to one of the values + * below to select the correct 'API' variants. + * + * PNG_API_RULE=0 Use PNGCAPI - the 'C' calling convention - throughout. + * This is correct in every known environment. + * PNG_API_RULE=1 Use the operating system convention for PNGAPI and + * the 'C' calling convention (from PNGCAPI) for + * callbacks (PNGCBAPI). This is no longer required + * in any known environment - if it has to be used + * please post an explanation of the problem to the + * libpng mailing list. + * + * These cases only differ if the operating system does not use the C + * calling convention, at present this just means the above cases + * (x86 DOS/Windows sytems) and, even then, this does not apply to + * Cygwin running on those systems. + * + * Note that the value must be defined in pnglibconf.h so that what + * the application uses to call the library matches the conventions + * set when building the library. + */ + +/* Symbol export + * ============= + * When building a shared library it is almost always necessary to tell + * the compiler which symbols to export. The png.h macro 'PNG_EXPORT' + * is used to mark the symbols. On some systems these symbols can be + * extracted at link time and need no special processing by the compiler, + * on other systems the symbols are flagged by the compiler and just + * the declaration requires a special tag applied (unfortunately) in a + * compiler dependent way. Some systems can do either. + * + * A small number of older systems also require a symbol from a DLL to + * be flagged to the program that calls it. This is a problem because + * we do not know in the header file included by application code that + * the symbol will come from a shared library, as opposed to a statically + * linked one. For this reason the application must tell us by setting + * the magic flag PNG_USE_DLL to turn on the special processing before + * it includes png.h. + * + * Four additional macros are used to make this happen: + * + * PNG_IMPEXP The magic (if any) to cause a symbol to be exported from + * the build or imported if PNG_USE_DLL is set - compiler + * and system specific. + * + * PNG_EXPORT_TYPE(type) A macro that pre or appends PNG_IMPEXP to + * 'type', compiler specific. + * + * PNG_DLL_EXPORT Set to the magic to use during a libpng build to + * make a symbol exported from the DLL. Not used in the + * public header files; see pngpriv.h for how it is used + * in the libpng build. + * + * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come + * from a DLL - used to define PNG_IMPEXP when + * PNG_USE_DLL is set. + */ + +/* System specific discovery. + * ========================== + * This code is used at build time to find PNG_IMPEXP, the API settings + * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL + * import processing is possible. On Windows systems it also sets + * compiler-specific macros to the values required to change the calling + * conventions of the various functions. + */ +#if defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ + defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) + /* Windows system (DOS doesn't support DLLs). Includes builds under Cygwin or + * MinGW on any architecture currently supported by Windows. Also includes + * Watcom builds but these need special treatment because they are not + * compatible with GCC or Visual C because of different calling conventions. + */ +# if PNG_API_RULE == 2 + /* If this line results in an error, either because __watcall is not + * understood or because of a redefine just below you cannot use *this* + * build of the library with the compiler you are using. *This* build was + * build using Watcom and applications must also be built using Watcom! + */ +# define PNGCAPI __watcall +# endif + +# if defined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER >= 800)) +# define PNGCAPI __cdecl +# if PNG_API_RULE == 1 + /* If this line results in an error __stdcall is not understood and + * PNG_API_RULE should not have been set to '1'. + */ +# define PNGAPI __stdcall +# endif +# else + /* An older compiler, or one not detected (erroneously) above, + * if necessary override on the command line to get the correct + * variants for the compiler. + */ +# ifndef PNGCAPI +# define PNGCAPI _cdecl +# endif +# if PNG_API_RULE == 1 && !defined(PNGAPI) +# define PNGAPI _stdcall +# endif +# endif /* compiler/api */ + + /* NOTE: PNGCBAPI always defaults to PNGCAPI. */ + +# if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD) +# error "PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed" +# endif + +# if (defined(_MSC_VER) && _MSC_VER < 800) ||\ + (defined(__BORLANDC__) && __BORLANDC__ < 0x500) + /* older Borland and MSC + * compilers used '__export' and required this to be after + * the type. + */ +# ifndef PNG_EXPORT_TYPE +# define PNG_EXPORT_TYPE(type) type PNG_IMPEXP +# endif +# define PNG_DLL_EXPORT __export +# else /* newer compiler */ +# define PNG_DLL_EXPORT __declspec(dllexport) +# ifndef PNG_DLL_IMPORT +# define PNG_DLL_IMPORT __declspec(dllimport) +# endif +# endif /* compiler */ + +#else /* !Windows */ +# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) +# define PNGAPI _System +# else /* !Windows/x86 && !OS/2 */ + /* Use the defaults, or define PNG*API on the command line (but + * this will have to be done for every compile!) + */ +# endif /* other system, !OS/2 */ +#endif /* !Windows/x86 */ + +/* Now do all the defaulting . */ +#ifndef PNGCAPI +# define PNGCAPI +#endif +#ifndef PNGCBAPI +# define PNGCBAPI PNGCAPI +#endif +#ifndef PNGAPI +# define PNGAPI PNGCAPI +#endif + +/* PNG_IMPEXP may be set on the compilation system command line or (if not set) + * then in an internal header file when building the library, otherwise (when + * using the library) it is set here. + */ +#ifndef PNG_IMPEXP +# if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT) + /* This forces use of a DLL, disallowing static linking */ +# define PNG_IMPEXP PNG_DLL_IMPORT +# endif + +# ifndef PNG_IMPEXP +# define PNG_IMPEXP +# endif +#endif + +/* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat + * 'attributes' as a storage class - the attributes go at the start of the + * function definition, and attributes are always appended regardless of the + * compiler. This considerably simplifies these macros but may cause problems + * if any compilers both need function attributes and fail to handle them as + * a storage class (this is unlikely.) + */ +#ifndef PNG_FUNCTION +# define PNG_FUNCTION(type, name, args, attributes) attributes type name args +#endif + +#ifndef PNG_EXPORT_TYPE +# define PNG_EXPORT_TYPE(type) PNG_IMPEXP type +#endif + + /* The ordinal value is only relevant when preprocessing png.h for symbol + * table entries, so we discard it here. See the .dfn files in the + * scripts directory. + */ +#ifndef PNG_EXPORTA + +# define PNG_EXPORTA(ordinal, type, name, args, attributes)\ + PNG_FUNCTION(PNG_EXPORT_TYPE(type),(PNGAPI name),PNGARG(args), \ + extern attributes) +#endif + +/* ANSI-C (C90) does not permit a macro to be invoked with an empty argument, + * so make something non-empty to satisfy the requirement: + */ +#define PNG_EMPTY /*empty list*/ + +#define PNG_EXPORT(ordinal, type, name, args)\ + PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY) + +/* Use PNG_REMOVED to comment out a removed interface. */ +#ifndef PNG_REMOVED +# define PNG_REMOVED(ordinal, type, name, args, attributes) +#endif + +#ifndef PNG_CALLBACK +# define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args) +#endif + +/* Support for compiler specific function attributes. These are used + * so that where compiler support is available incorrect use of API + * functions in png.h will generate compiler warnings. + * + * Added at libpng-1.2.41. + */ + +#ifndef PNG_NO_PEDANTIC_WARNINGS +# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED +# define PNG_PEDANTIC_WARNINGS_SUPPORTED +# endif +#endif + +#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED + /* Support for compiler specific function attributes. These are used + * so that where compiler support is available, incorrect use of API + * functions in png.h will generate compiler warnings. Added at libpng + * version 1.2.41. Disabling these removes the warnings but may also produce + * less efficient code. + */ +# if defined(__clang__) && defined(__has_attribute) + /* Clang defines both __clang__ and __GNUC__. Check __clang__ first. */ +# if !defined(PNG_USE_RESULT) && __has_attribute(__warn_unused_result__) +# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) +# endif +# if !defined(PNG_NORETURN) && __has_attribute(__noreturn__) +# define PNG_NORETURN __attribute__((__noreturn__)) +# endif +# if !defined(PNG_ALLOCATED) && __has_attribute(__malloc__) +# define PNG_ALLOCATED __attribute__((__malloc__)) +# endif +# if !defined(PNG_DEPRECATED) && __has_attribute(__deprecated__) +# define PNG_DEPRECATED __attribute__((__deprecated__)) +# endif +# if !defined(PNG_PRIVATE) +# ifdef __has_extension +# if __has_extension(attribute_unavailable_with_message) +# define PNG_PRIVATE __attribute__((__unavailable__(\ + "This function is not exported by libpng."))) +# endif +# endif +# endif +# ifndef PNG_RESTRICT +# define PNG_RESTRICT __restrict +# endif + +# elif defined(__GNUC__) +# ifndef PNG_USE_RESULT +# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) +# endif +# ifndef PNG_NORETURN +# define PNG_NORETURN __attribute__((__noreturn__)) +# endif +# if __GNUC__ >= 3 +# ifndef PNG_ALLOCATED +# define PNG_ALLOCATED __attribute__((__malloc__)) +# endif +# ifndef PNG_DEPRECATED +# define PNG_DEPRECATED __attribute__((__deprecated__)) +# endif +# ifndef PNG_PRIVATE +# if 0 /* Doesn't work so we use deprecated instead*/ +# define PNG_PRIVATE \ + __attribute__((warning("This function is not exported by libpng."))) +# else +# define PNG_PRIVATE \ + __attribute__((__deprecated__)) +# endif +# endif +# if ((__GNUC__ > 3) || !defined(__GNUC_MINOR__) || (__GNUC_MINOR__ >= 1)) +# ifndef PNG_RESTRICT +# define PNG_RESTRICT __restrict +# endif +# endif /* __GNUC__.__GNUC_MINOR__ > 3.0 */ +# endif /* __GNUC__ >= 3 */ + +# elif defined(_MSC_VER) && (_MSC_VER >= 1300) +# ifndef PNG_USE_RESULT +# define PNG_USE_RESULT /* not supported */ +# endif +# ifndef PNG_NORETURN +# define PNG_NORETURN __declspec(noreturn) +# endif +# ifndef PNG_ALLOCATED +# if (_MSC_VER >= 1400) +# define PNG_ALLOCATED __declspec(restrict) +# endif +# endif +# ifndef PNG_DEPRECATED +# define PNG_DEPRECATED __declspec(deprecated) +# endif +# ifndef PNG_PRIVATE +# define PNG_PRIVATE __declspec(deprecated) +# endif +# ifndef PNG_RESTRICT +# if (_MSC_VER >= 1400) +# define PNG_RESTRICT __restrict +# endif +# endif + +# elif defined(__WATCOMC__) +# ifndef PNG_RESTRICT +# define PNG_RESTRICT __restrict +# endif +# endif +#endif /* PNG_PEDANTIC_WARNINGS */ + +#ifndef PNG_DEPRECATED +# define PNG_DEPRECATED /* Use of this function is deprecated */ +#endif +#ifndef PNG_USE_RESULT +# define PNG_USE_RESULT /* The result of this function must be checked */ +#endif +#ifndef PNG_NORETURN +# define PNG_NORETURN /* This function does not return */ +#endif +#ifndef PNG_ALLOCATED +# define PNG_ALLOCATED /* The result of the function is new memory */ +#endif +#ifndef PNG_PRIVATE +# define PNG_PRIVATE /* This is a private libpng function */ +#endif +#ifndef PNG_RESTRICT +# define PNG_RESTRICT /* The C99 "restrict" feature */ +#endif + +#ifndef PNG_FP_EXPORT /* A floating point API. */ +# ifdef PNG_FLOATING_POINT_SUPPORTED +# define PNG_FP_EXPORT(ordinal, type, name, args)\ + PNG_EXPORT(ordinal, type, name, args); +# else /* No floating point APIs */ +# define PNG_FP_EXPORT(ordinal, type, name, args) +# endif +#endif +#ifndef PNG_FIXED_EXPORT /* A fixed point API. */ +# ifdef PNG_FIXED_POINT_SUPPORTED +# define PNG_FIXED_EXPORT(ordinal, type, name, args)\ + PNG_EXPORT(ordinal, type, name, args); +# else /* No fixed point APIs */ +# define PNG_FIXED_EXPORT(ordinal, type, name, args) +# endif +#endif + +#ifndef PNG_BUILDING_SYMBOL_TABLE +/* Some typedefs to get us started. These should be safe on most of the common + * platforms. + * + * png_uint_32 and png_int_32 may, currently, be larger than required to hold a + * 32-bit value however this is not normally advisable. + * + * png_uint_16 and png_int_16 should always be two bytes in size - this is + * verified at library build time. + * + * png_byte must always be one byte in size. + * + * The checks below use constants from limits.h, as defined by the ISOC90 + * standard. + */ +#if CHAR_BIT == 8 && UCHAR_MAX == 255 + typedef unsigned char png_byte; +#else +# error "libpng requires 8 bit bytes" +#endif + +#if INT_MIN == -32768 && INT_MAX == 32767 + typedef int png_int_16; +#elif SHRT_MIN == -32768 && SHRT_MAX == 32767 + typedef short png_int_16; +#else +# error "libpng requires a signed 16 bit type" +#endif + +#if UINT_MAX == 65535 + typedef unsigned int png_uint_16; +#elif USHRT_MAX == 65535 + typedef unsigned short png_uint_16; +#else +# error "libpng requires an unsigned 16 bit type" +#endif + +#if INT_MIN < -2147483646 && INT_MAX > 2147483646 + typedef int png_int_32; +#elif LONG_MIN < -2147483646 && LONG_MAX > 2147483646 + typedef long int png_int_32; +#else +# error "libpng requires a signed 32 bit (or more) type" +#endif + +#if UINT_MAX > 4294967294 + typedef unsigned int png_uint_32; +#elif ULONG_MAX > 4294967294 + typedef unsigned long int png_uint_32; +#else +# error "libpng requires an unsigned 32 bit (or more) type" +#endif + +/* Prior to 1.6.0 it was possible to disable the use of size_t, 1.6.0, however, + * requires an ISOC90 compiler and relies on consistent behavior of sizeof. + */ +typedef size_t png_size_t; +typedef ptrdiff_t png_ptrdiff_t; + +/* libpng needs to know the maximum value of 'size_t' and this controls the + * definition of png_alloc_size_t, below. This maximum value of size_t limits + * but does not control the maximum allocations the library makes - there is + * direct application control of this through png_set_user_limits(). + */ +#ifndef PNG_SMALL_SIZE_T + /* Compiler specific tests for systems where size_t is known to be less than + * 32 bits (some of these systems may no longer work because of the lack of + * 'far' support; see above.) + */ +# if (defined(__TURBOC__) && !defined(__FLAT__)) ||\ + (defined(_MSC_VER) && defined(MAXSEG_64K)) +# define PNG_SMALL_SIZE_T +# endif +#endif + +/* png_alloc_size_t is guaranteed to be no smaller than png_size_t, and no + * smaller than png_uint_32. Casts from png_size_t or png_uint_32 to + * png_alloc_size_t are not necessary; in fact, it is recommended not to use + * them at all so that the compiler can complain when something turns out to be + * problematic. + * + * Casts in the other direction (from png_alloc_size_t to png_size_t or + * png_uint_32) should be explicitly applied; however, we do not expect to + * encounter practical situations that require such conversions. + * + * PNG_SMALL_SIZE_T must be defined if the maximum value of size_t is less than + * 4294967295 - i.e. less than the maximum value of png_uint_32. + */ +#ifdef PNG_SMALL_SIZE_T + typedef png_uint_32 png_alloc_size_t; +#else + typedef png_size_t png_alloc_size_t; +#endif + +/* Prior to 1.6.0 libpng offered limited support for Microsoft C compiler + * implementations of Intel CPU specific support of user-mode segmented address + * spaces, where 16-bit pointers address more than 65536 bytes of memory using + * separate 'segment' registers. The implementation requires two different + * types of pointer (only one of which includes the segment value.) + * + * If required this support is available in version 1.2 of libpng and may be + * available in versions through 1.5, although the correctness of the code has + * not been verified recently. + */ + +/* Typedef for floating-point numbers that are converted to fixed-point with a + * multiple of 100,000, e.g., gamma + */ +typedef png_int_32 png_fixed_point; + +/* Add typedefs for pointers */ +typedef void * png_voidp; +typedef const void * png_const_voidp; +typedef png_byte * png_bytep; +typedef const png_byte * png_const_bytep; +typedef png_uint_32 * png_uint_32p; +typedef const png_uint_32 * png_const_uint_32p; +typedef png_int_32 * png_int_32p; +typedef const png_int_32 * png_const_int_32p; +typedef png_uint_16 * png_uint_16p; +typedef const png_uint_16 * png_const_uint_16p; +typedef png_int_16 * png_int_16p; +typedef const png_int_16 * png_const_int_16p; +typedef char * png_charp; +typedef const char * png_const_charp; +typedef png_fixed_point * png_fixed_point_p; +typedef const png_fixed_point * png_const_fixed_point_p; +typedef png_size_t * png_size_tp; +typedef const png_size_t * png_const_size_tp; + +#ifdef PNG_STDIO_SUPPORTED +typedef FILE * png_FILE_p; +#endif + +#ifdef PNG_FLOATING_POINT_SUPPORTED +typedef double * png_doublep; +typedef const double * png_const_doublep; +#endif + +/* Pointers to pointers; i.e. arrays */ +typedef png_byte * * png_bytepp; +typedef png_uint_32 * * png_uint_32pp; +typedef png_int_32 * * png_int_32pp; +typedef png_uint_16 * * png_uint_16pp; +typedef png_int_16 * * png_int_16pp; +typedef const char * * png_const_charpp; +typedef char * * png_charpp; +typedef png_fixed_point * * png_fixed_point_pp; +#ifdef PNG_FLOATING_POINT_SUPPORTED +typedef double * * png_doublepp; +#endif + +/* Pointers to pointers to pointers; i.e., pointer to array */ +typedef char * * * png_charppp; + +#endif /* PNG_BUILDING_SYMBOL_TABLE */ + +#endif /* PNGCONF_H */ diff --git a/ios/include/png/pnglibconf.h b/ios/include/png/pnglibconf.h new file mode 100755 index 00000000..42a195b7 --- /dev/null +++ b/ios/include/png/pnglibconf.h @@ -0,0 +1,208 @@ +/* pnglibconf.h - library build configuration */ + +/* libpng version 1.6.16,December 22, 2014 */ + +/* Copyright (c) 1998-2014 Glenn Randers-Pehrson */ + +/* This code is released under the libpng license. */ +/* For conditions of distribution and use, see the disclaimer */ +/* and license in png.h */ + +/* pnglibconf.h */ +/* Machine generated file: DO NOT EDIT */ +/* Derived from: scripts/pnglibconf.dfa */ +#ifndef PNGLCONF_H +#define PNGLCONF_H +/* options */ +#define PNG_16BIT_SUPPORTED +#define PNG_ALIGNED_MEMORY_SUPPORTED +/*#undef PNG_ARM_NEON_API_SUPPORTED*/ +/*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ +#define PNG_BENIGN_ERRORS_SUPPORTED +#define PNG_BENIGN_READ_ERRORS_SUPPORTED +/*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ +#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED +#define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_COLORSPACE_SUPPORTED +#define PNG_CONSOLE_IO_SUPPORTED +#define PNG_CONVERT_tIME_SUPPORTED +#define PNG_EASY_ACCESS_SUPPORTED +/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/ +#define PNG_ERROR_TEXT_SUPPORTED +#define PNG_FIXED_POINT_SUPPORTED +#define PNG_FLOATING_ARITHMETIC_SUPPORTED +#define PNG_FLOATING_POINT_SUPPORTED +#define PNG_FORMAT_AFIRST_SUPPORTED +#define PNG_FORMAT_BGR_SUPPORTED +#define PNG_GAMMA_SUPPORTED +#define PNG_GET_PALETTE_MAX_SUPPORTED +#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED +#define PNG_INCH_CONVERSIONS_SUPPORTED +#define PNG_INFO_IMAGE_SUPPORTED +#define PNG_IO_STATE_SUPPORTED +#define PNG_MNG_FEATURES_SUPPORTED +#define PNG_POINTER_INDEXING_SUPPORTED +#define PNG_PROGRESSIVE_READ_SUPPORTED +#define PNG_READ_16BIT_SUPPORTED +#define PNG_READ_ALPHA_MODE_SUPPORTED +#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED +#define PNG_READ_BACKGROUND_SUPPORTED +#define PNG_READ_BGR_SUPPORTED +#define PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_READ_COMPOSITE_NODIV_SUPPORTED +#define PNG_READ_COMPRESSED_TEXT_SUPPORTED +#define PNG_READ_EXPAND_16_SUPPORTED +#define PNG_READ_EXPAND_SUPPORTED +#define PNG_READ_FILLER_SUPPORTED +#define PNG_READ_GAMMA_SUPPORTED +#define PNG_READ_GET_PALETTE_MAX_SUPPORTED +#define PNG_READ_GRAY_TO_RGB_SUPPORTED +#define PNG_READ_INTERLACING_SUPPORTED +#define PNG_READ_INT_FUNCTIONS_SUPPORTED +#define PNG_READ_INVERT_ALPHA_SUPPORTED +#define PNG_READ_INVERT_SUPPORTED +#define PNG_READ_OPT_PLTE_SUPPORTED +#define PNG_READ_PACKSWAP_SUPPORTED +#define PNG_READ_PACK_SUPPORTED +#define PNG_READ_QUANTIZE_SUPPORTED +#define PNG_READ_RGB_TO_GRAY_SUPPORTED +#define PNG_READ_SCALE_16_TO_8_SUPPORTED +#define PNG_READ_SHIFT_SUPPORTED +#define PNG_READ_STRIP_16_TO_8_SUPPORTED +#define PNG_READ_STRIP_ALPHA_SUPPORTED +#define PNG_READ_SUPPORTED +#define PNG_READ_SWAP_ALPHA_SUPPORTED +#define PNG_READ_SWAP_SUPPORTED +#define PNG_READ_TEXT_SUPPORTED +#define PNG_READ_TRANSFORMS_SUPPORTED +#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_READ_USER_CHUNKS_SUPPORTED +#define PNG_READ_USER_TRANSFORM_SUPPORTED +#define PNG_READ_bKGD_SUPPORTED +#define PNG_READ_cHRM_SUPPORTED +#define PNG_READ_gAMA_SUPPORTED +#define PNG_READ_hIST_SUPPORTED +#define PNG_READ_iCCP_SUPPORTED +#define PNG_READ_iTXt_SUPPORTED +#define PNG_READ_oFFs_SUPPORTED +#define PNG_READ_pCAL_SUPPORTED +#define PNG_READ_pHYs_SUPPORTED +#define PNG_READ_sBIT_SUPPORTED +#define PNG_READ_sCAL_SUPPORTED +#define PNG_READ_sPLT_SUPPORTED +#define PNG_READ_sRGB_SUPPORTED +#define PNG_READ_tEXt_SUPPORTED +#define PNG_READ_tIME_SUPPORTED +#define PNG_READ_tRNS_SUPPORTED +#define PNG_READ_zTXt_SUPPORTED +/*#undef PNG_SAFE_LIMITS_SUPPORTED*/ +#define PNG_SAVE_INT_32_SUPPORTED +#define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_SEQUENTIAL_READ_SUPPORTED +#define PNG_SETJMP_SUPPORTED +#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED +#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED +#define PNG_SET_OPTION_SUPPORTED +#define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_SET_USER_LIMITS_SUPPORTED +#define PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED +#define PNG_SIMPLIFIED_READ_BGR_SUPPORTED +#define PNG_SIMPLIFIED_READ_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_SUPPORTED +#define PNG_STDIO_SUPPORTED +#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_TEXT_SUPPORTED +#define PNG_TIME_RFC1123_SUPPORTED +#define PNG_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_USER_CHUNKS_SUPPORTED +#define PNG_USER_LIMITS_SUPPORTED +#define PNG_USER_MEM_SUPPORTED +#define PNG_USER_TRANSFORM_INFO_SUPPORTED +#define PNG_USER_TRANSFORM_PTR_SUPPORTED +#define PNG_WARNINGS_SUPPORTED +#define PNG_WRITE_16BIT_SUPPORTED +#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED +#define PNG_WRITE_BGR_SUPPORTED +#define PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_WRITE_COMPRESSED_TEXT_SUPPORTED +#define PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED +#define PNG_WRITE_FILLER_SUPPORTED +#define PNG_WRITE_FILTER_SUPPORTED +#define PNG_WRITE_FLUSH_SUPPORTED +#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED +#define PNG_WRITE_INTERLACING_SUPPORTED +#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED +#define PNG_WRITE_INVERT_ALPHA_SUPPORTED +#define PNG_WRITE_INVERT_SUPPORTED +#define PNG_WRITE_OPTIMIZE_CMF_SUPPORTED +#define PNG_WRITE_PACKSWAP_SUPPORTED +#define PNG_WRITE_PACK_SUPPORTED +#define PNG_WRITE_SHIFT_SUPPORTED +#define PNG_WRITE_SUPPORTED +#define PNG_WRITE_SWAP_ALPHA_SUPPORTED +#define PNG_WRITE_SWAP_SUPPORTED +#define PNG_WRITE_TEXT_SUPPORTED +#define PNG_WRITE_TRANSFORMS_SUPPORTED +#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_WRITE_USER_TRANSFORM_SUPPORTED +#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED +#define PNG_WRITE_bKGD_SUPPORTED +#define PNG_WRITE_cHRM_SUPPORTED +#define PNG_WRITE_gAMA_SUPPORTED +#define PNG_WRITE_hIST_SUPPORTED +#define PNG_WRITE_iCCP_SUPPORTED +#define PNG_WRITE_iTXt_SUPPORTED +#define PNG_WRITE_oFFs_SUPPORTED +#define PNG_WRITE_pCAL_SUPPORTED +#define PNG_WRITE_pHYs_SUPPORTED +#define PNG_WRITE_sBIT_SUPPORTED +#define PNG_WRITE_sCAL_SUPPORTED +#define PNG_WRITE_sPLT_SUPPORTED +#define PNG_WRITE_sRGB_SUPPORTED +#define PNG_WRITE_tEXt_SUPPORTED +#define PNG_WRITE_tIME_SUPPORTED +#define PNG_WRITE_tRNS_SUPPORTED +#define PNG_WRITE_zTXt_SUPPORTED +#define PNG_bKGD_SUPPORTED +#define PNG_cHRM_SUPPORTED +#define PNG_gAMA_SUPPORTED +#define PNG_hIST_SUPPORTED +#define PNG_iCCP_SUPPORTED +#define PNG_iTXt_SUPPORTED +#define PNG_oFFs_SUPPORTED +#define PNG_pCAL_SUPPORTED +#define PNG_pHYs_SUPPORTED +#define PNG_sBIT_SUPPORTED +#define PNG_sCAL_SUPPORTED +#define PNG_sPLT_SUPPORTED +#define PNG_sRGB_SUPPORTED +#define PNG_tEXt_SUPPORTED +#define PNG_tIME_SUPPORTED +#define PNG_tRNS_SUPPORTED +#define PNG_zTXt_SUPPORTED +/* end of options */ +/* settings */ +#define PNG_API_RULE 0 +#define PNG_COST_SHIFT 3 +#define PNG_DEFAULT_READ_MACROS 1 +#define PNG_GAMMA_THRESHOLD_FIXED 5000 +#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE +#define PNG_INFLATE_BUF_SIZE 1024 +#define PNG_MAX_GAMMA_8 11 +#define PNG_QUANTIZE_BLUE_BITS 5 +#define PNG_QUANTIZE_GREEN_BITS 5 +#define PNG_QUANTIZE_RED_BITS 5 +#define PNG_TEXT_Z_DEFAULT_COMPRESSION (-1) +#define PNG_TEXT_Z_DEFAULT_STRATEGY 0 +#define PNG_WEIGHT_SHIFT 8 +#define PNG_ZBUF_SIZE 8192 +#define PNG_ZLIB_VERNUM 0x1280 +#define PNG_Z_DEFAULT_COMPRESSION (-1) +#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0 +#define PNG_Z_DEFAULT_STRATEGY 1 +#define PNG_sCAL_PRECISION 5 +#define PNG_sRGB_PROFILE_CHECKS 2 +/* end of settings */ +#endif /* PNGLCONF_H */ diff --git a/ios/include/tiff/tiff.h b/ios/include/tiff/tiff.h new file mode 100644 index 00000000..19b4e797 --- /dev/null +++ b/ios/include/tiff/tiff.h @@ -0,0 +1,678 @@ +/* $Id: tiff.h,v 1.68 2012-08-19 16:56:35 bfriesen Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifndef _TIFF_ +#define _TIFF_ + +#include "tiffconf.h" + +/* + * Tag Image File Format (TIFF) + * + * Based on Rev 6.0 from: + * Developer's Desk + * Aldus Corporation + * 411 First Ave. South + * Suite 200 + * Seattle, WA 98104 + * 206-622-5500 + * + * (http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf) + * + * For BigTIFF design notes see the following links + * http://www.remotesensing.org/libtiff/bigtiffdesign.html + * http://www.awaresystems.be/imaging/tiff/bigtiff.html + */ + +#define TIFF_VERSION_CLASSIC 42 +#define TIFF_VERSION_BIG 43 + +#define TIFF_BIGENDIAN 0x4d4d +#define TIFF_LITTLEENDIAN 0x4949 +#define MDI_LITTLEENDIAN 0x5045 +#define MDI_BIGENDIAN 0x4550 + +/* + * Intrinsic data types required by the file format: + * + * 8-bit quantities int8/uint8 + * 16-bit quantities int16/uint16 + * 32-bit quantities int32/uint32 + * 64-bit quantities int64/uint64 + * strings unsigned char* + */ + +typedef TIFF_INT8_T int8; +typedef TIFF_UINT8_T uint8; + +typedef TIFF_INT16_T int16; +typedef TIFF_UINT16_T uint16; + +typedef TIFF_INT32_T int32; +typedef TIFF_UINT32_T uint32; + +typedef TIFF_INT64_T int64; +typedef TIFF_UINT64_T uint64; + +/* + * Some types as promoted in a variable argument list + * We use uint16_vap rather then directly using int, because this way + * we document the type we actually want to pass through, conceptually, + * rather then confusing the issue by merely stating the type it gets + * promoted to + */ + +typedef int uint16_vap; + +/* + * TIFF header. + */ +typedef struct { + uint16 tiff_magic; /* magic number (defines byte order) */ + uint16 tiff_version; /* TIFF version number */ +} TIFFHeaderCommon; +typedef struct { + uint16 tiff_magic; /* magic number (defines byte order) */ + uint16 tiff_version; /* TIFF version number */ + uint32 tiff_diroff; /* byte offset to first directory */ +} TIFFHeaderClassic; +typedef struct { + uint16 tiff_magic; /* magic number (defines byte order) */ + uint16 tiff_version; /* TIFF version number */ + uint16 tiff_offsetsize; /* size of offsets, should be 8 */ + uint16 tiff_unused; /* unused word, should be 0 */ + uint64 tiff_diroff; /* byte offset to first directory */ +} TIFFHeaderBig; + + +/* + * NB: In the comments below, + * - items marked with a + are obsoleted by revision 5.0, + * - items marked with a ! are introduced in revision 6.0. + * - items marked with a % are introduced post revision 6.0. + * - items marked with a $ are obsoleted by revision 6.0. + * - items marked with a & are introduced by Adobe DNG specification. + */ + +/* + * Tag data type information. + * + * Note: RATIONALs are the ratio of two 32-bit integer values. + */ +typedef enum { + TIFF_NOTYPE = 0, /* placeholder */ + TIFF_BYTE = 1, /* 8-bit unsigned integer */ + TIFF_ASCII = 2, /* 8-bit bytes w/ last byte null */ + TIFF_SHORT = 3, /* 16-bit unsigned integer */ + TIFF_LONG = 4, /* 32-bit unsigned integer */ + TIFF_RATIONAL = 5, /* 64-bit unsigned fraction */ + TIFF_SBYTE = 6, /* !8-bit signed integer */ + TIFF_UNDEFINED = 7, /* !8-bit untyped data */ + TIFF_SSHORT = 8, /* !16-bit signed integer */ + TIFF_SLONG = 9, /* !32-bit signed integer */ + TIFF_SRATIONAL = 10, /* !64-bit signed fraction */ + TIFF_FLOAT = 11, /* !32-bit IEEE floating point */ + TIFF_DOUBLE = 12, /* !64-bit IEEE floating point */ + TIFF_IFD = 13, /* %32-bit unsigned integer (offset) */ + TIFF_LONG8 = 16, /* BigTIFF 64-bit unsigned integer */ + TIFF_SLONG8 = 17, /* BigTIFF 64-bit signed integer */ + TIFF_IFD8 = 18 /* BigTIFF 64-bit unsigned integer (offset) */ +} TIFFDataType; + +/* + * TIFF Tag Definitions. + */ +#define TIFFTAG_SUBFILETYPE 254 /* subfile data descriptor */ +#define FILETYPE_REDUCEDIMAGE 0x1 /* reduced resolution version */ +#define FILETYPE_PAGE 0x2 /* one page of many */ +#define FILETYPE_MASK 0x4 /* transparency mask */ +#define TIFFTAG_OSUBFILETYPE 255 /* +kind of data in subfile */ +#define OFILETYPE_IMAGE 1 /* full resolution image data */ +#define OFILETYPE_REDUCEDIMAGE 2 /* reduced size image data */ +#define OFILETYPE_PAGE 3 /* one page of many */ +#define TIFFTAG_IMAGEWIDTH 256 /* image width in pixels */ +#define TIFFTAG_IMAGELENGTH 257 /* image height in pixels */ +#define TIFFTAG_BITSPERSAMPLE 258 /* bits per channel (sample) */ +#define TIFFTAG_COMPRESSION 259 /* data compression technique */ +#define COMPRESSION_NONE 1 /* dump mode */ +#define COMPRESSION_CCITTRLE 2 /* CCITT modified Huffman RLE */ +#define COMPRESSION_CCITTFAX3 3 /* CCITT Group 3 fax encoding */ +#define COMPRESSION_CCITT_T4 3 /* CCITT T.4 (TIFF 6 name) */ +#define COMPRESSION_CCITTFAX4 4 /* CCITT Group 4 fax encoding */ +#define COMPRESSION_CCITT_T6 4 /* CCITT T.6 (TIFF 6 name) */ +#define COMPRESSION_LZW 5 /* Lempel-Ziv & Welch */ +#define COMPRESSION_OJPEG 6 /* !6.0 JPEG */ +#define COMPRESSION_JPEG 7 /* %JPEG DCT compression */ +#define COMPRESSION_T85 9 /* !TIFF/FX T.85 JBIG compression */ +#define COMPRESSION_T43 10 /* !TIFF/FX T.43 colour by layered JBIG compression */ +#define COMPRESSION_NEXT 32766 /* NeXT 2-bit RLE */ +#define COMPRESSION_CCITTRLEW 32771 /* #1 w/ word alignment */ +#define COMPRESSION_PACKBITS 32773 /* Macintosh RLE */ +#define COMPRESSION_THUNDERSCAN 32809 /* ThunderScan RLE */ +/* codes 32895-32898 are reserved for ANSI IT8 TIFF/IT */ +#define COMPRESSION_DCS 32947 /* Kodak DCS encoding */ +#define COMPRESSION_JBIG 34661 /* ISO JBIG */ +#define COMPRESSION_SGILOG 34676 /* SGI Log Luminance RLE */ +#define COMPRESSION_SGILOG24 34677 /* SGI Log 24-bit packed */ +#define COMPRESSION_JP2000 34712 /* Leadtools JPEG2000 */ +#define COMPRESSION_LZMA 34925 /* LZMA2 */ +#define TIFFTAG_PHOTOMETRIC 262 /* photometric interpretation */ +#define PHOTOMETRIC_MINISWHITE 0 /* min value is white */ +#define PHOTOMETRIC_MINISBLACK 1 /* min value is black */ +#define PHOTOMETRIC_RGB 2 /* RGB color model */ +#define PHOTOMETRIC_PALETTE 3 /* color map indexed */ +#define PHOTOMETRIC_MASK 4 /* $holdout mask */ +#define PHOTOMETRIC_SEPARATED 5 /* !color separations */ +#define PHOTOMETRIC_YCBCR 6 /* !CCIR 601 */ +#define PHOTOMETRIC_CIELAB 8 /* !1976 CIE L*a*b* */ +#define PHOTOMETRIC_ICCLAB 9 /* ICC L*a*b* [Adobe TIFF Technote 4] */ +#define PHOTOMETRIC_ITULAB 10 /* ITU L*a*b* */ +#define PHOTOMETRIC_LOGL 32844 /* CIE Log2(L) */ +#define PHOTOMETRIC_LOGLUV 32845 /* CIE Log2(L) (u',v') */ +#define TIFFTAG_THRESHHOLDING 263 /* +thresholding used on data */ +#define THRESHHOLD_BILEVEL 1 /* b&w art scan */ +#define THRESHHOLD_HALFTONE 2 /* or dithered scan */ +#define THRESHHOLD_ERRORDIFFUSE 3 /* usually floyd-steinberg */ +#define TIFFTAG_CELLWIDTH 264 /* +dithering matrix width */ +#define TIFFTAG_CELLLENGTH 265 /* +dithering matrix height */ +#define TIFFTAG_FILLORDER 266 /* data order within a byte */ +#define FILLORDER_MSB2LSB 1 /* most significant -> least */ +#define FILLORDER_LSB2MSB 2 /* least significant -> most */ +#define TIFFTAG_DOCUMENTNAME 269 /* name of doc. image is from */ +#define TIFFTAG_IMAGEDESCRIPTION 270 /* info about image */ +#define TIFFTAG_MAKE 271 /* scanner manufacturer name */ +#define TIFFTAG_MODEL 272 /* scanner model name/number */ +#define TIFFTAG_STRIPOFFSETS 273 /* offsets to data strips */ +#define TIFFTAG_ORIENTATION 274 /* +image orientation */ +#define ORIENTATION_TOPLEFT 1 /* row 0 top, col 0 lhs */ +#define ORIENTATION_TOPRIGHT 2 /* row 0 top, col 0 rhs */ +#define ORIENTATION_BOTRIGHT 3 /* row 0 bottom, col 0 rhs */ +#define ORIENTATION_BOTLEFT 4 /* row 0 bottom, col 0 lhs */ +#define ORIENTATION_LEFTTOP 5 /* row 0 lhs, col 0 top */ +#define ORIENTATION_RIGHTTOP 6 /* row 0 rhs, col 0 top */ +#define ORIENTATION_RIGHTBOT 7 /* row 0 rhs, col 0 bottom */ +#define ORIENTATION_LEFTBOT 8 /* row 0 lhs, col 0 bottom */ +#define TIFFTAG_SAMPLESPERPIXEL 277 /* samples per pixel */ +#define TIFFTAG_ROWSPERSTRIP 278 /* rows per strip of data */ +#define TIFFTAG_STRIPBYTECOUNTS 279 /* bytes counts for strips */ +#define TIFFTAG_MINSAMPLEVALUE 280 /* +minimum sample value */ +#define TIFFTAG_MAXSAMPLEVALUE 281 /* +maximum sample value */ +#define TIFFTAG_XRESOLUTION 282 /* pixels/resolution in x */ +#define TIFFTAG_YRESOLUTION 283 /* pixels/resolution in y */ +#define TIFFTAG_PLANARCONFIG 284 /* storage organization */ +#define PLANARCONFIG_CONTIG 1 /* single image plane */ +#define PLANARCONFIG_SEPARATE 2 /* separate planes of data */ +#define TIFFTAG_PAGENAME 285 /* page name image is from */ +#define TIFFTAG_XPOSITION 286 /* x page offset of image lhs */ +#define TIFFTAG_YPOSITION 287 /* y page offset of image lhs */ +#define TIFFTAG_FREEOFFSETS 288 /* +byte offset to free block */ +#define TIFFTAG_FREEBYTECOUNTS 289 /* +sizes of free blocks */ +#define TIFFTAG_GRAYRESPONSEUNIT 290 /* $gray scale curve accuracy */ +#define GRAYRESPONSEUNIT_10S 1 /* tenths of a unit */ +#define GRAYRESPONSEUNIT_100S 2 /* hundredths of a unit */ +#define GRAYRESPONSEUNIT_1000S 3 /* thousandths of a unit */ +#define GRAYRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ +#define GRAYRESPONSEUNIT_100000S 5 /* hundred-thousandths */ +#define TIFFTAG_GRAYRESPONSECURVE 291 /* $gray scale response curve */ +#define TIFFTAG_GROUP3OPTIONS 292 /* 32 flag bits */ +#define TIFFTAG_T4OPTIONS 292 /* TIFF 6.0 proper name alias */ +#define GROUP3OPT_2DENCODING 0x1 /* 2-dimensional coding */ +#define GROUP3OPT_UNCOMPRESSED 0x2 /* data not compressed */ +#define GROUP3OPT_FILLBITS 0x4 /* fill to byte boundary */ +#define TIFFTAG_GROUP4OPTIONS 293 /* 32 flag bits */ +#define TIFFTAG_T6OPTIONS 293 /* TIFF 6.0 proper name */ +#define GROUP4OPT_UNCOMPRESSED 0x2 /* data not compressed */ +#define TIFFTAG_RESOLUTIONUNIT 296 /* units of resolutions */ +#define RESUNIT_NONE 1 /* no meaningful units */ +#define RESUNIT_INCH 2 /* english */ +#define RESUNIT_CENTIMETER 3 /* metric */ +#define TIFFTAG_PAGENUMBER 297 /* page numbers of multi-page */ +#define TIFFTAG_COLORRESPONSEUNIT 300 /* $color curve accuracy */ +#define COLORRESPONSEUNIT_10S 1 /* tenths of a unit */ +#define COLORRESPONSEUNIT_100S 2 /* hundredths of a unit */ +#define COLORRESPONSEUNIT_1000S 3 /* thousandths of a unit */ +#define COLORRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ +#define COLORRESPONSEUNIT_100000S 5 /* hundred-thousandths */ +#define TIFFTAG_TRANSFERFUNCTION 301 /* !colorimetry info */ +#define TIFFTAG_SOFTWARE 305 /* name & release */ +#define TIFFTAG_DATETIME 306 /* creation date and time */ +#define TIFFTAG_ARTIST 315 /* creator of image */ +#define TIFFTAG_HOSTCOMPUTER 316 /* machine where created */ +#define TIFFTAG_PREDICTOR 317 /* prediction scheme w/ LZW */ +#define PREDICTOR_NONE 1 /* no prediction scheme used */ +#define PREDICTOR_HORIZONTAL 2 /* horizontal differencing */ +#define PREDICTOR_FLOATINGPOINT 3 /* floating point predictor */ +#define TIFFTAG_WHITEPOINT 318 /* image white point */ +#define TIFFTAG_PRIMARYCHROMATICITIES 319 /* !primary chromaticities */ +#define TIFFTAG_COLORMAP 320 /* RGB map for pallette image */ +#define TIFFTAG_HALFTONEHINTS 321 /* !highlight+shadow info */ +#define TIFFTAG_TILEWIDTH 322 /* !tile width in pixels */ +#define TIFFTAG_TILELENGTH 323 /* !tile height in pixels */ +#define TIFFTAG_TILEOFFSETS 324 /* !offsets to data tiles */ +#define TIFFTAG_TILEBYTECOUNTS 325 /* !byte counts for tiles */ +#define TIFFTAG_BADFAXLINES 326 /* lines w/ wrong pixel count */ +#define TIFFTAG_CLEANFAXDATA 327 /* regenerated line info */ +#define CLEANFAXDATA_CLEAN 0 /* no errors detected */ +#define CLEANFAXDATA_REGENERATED 1 /* receiver regenerated lines */ +#define CLEANFAXDATA_UNCLEAN 2 /* uncorrected errors exist */ +#define TIFFTAG_CONSECUTIVEBADFAXLINES 328 /* max consecutive bad lines */ +#define TIFFTAG_SUBIFD 330 /* subimage descriptors */ +#define TIFFTAG_INKSET 332 /* !inks in separated image */ +#define INKSET_CMYK 1 /* !cyan-magenta-yellow-black color */ +#define INKSET_MULTIINK 2 /* !multi-ink or hi-fi color */ +#define TIFFTAG_INKNAMES 333 /* !ascii names of inks */ +#define TIFFTAG_NUMBEROFINKS 334 /* !number of inks */ +#define TIFFTAG_DOTRANGE 336 /* !0% and 100% dot codes */ +#define TIFFTAG_TARGETPRINTER 337 /* !separation target */ +#define TIFFTAG_EXTRASAMPLES 338 /* !info about extra samples */ +#define EXTRASAMPLE_UNSPECIFIED 0 /* !unspecified data */ +#define EXTRASAMPLE_ASSOCALPHA 1 /* !associated alpha data */ +#define EXTRASAMPLE_UNASSALPHA 2 /* !unassociated alpha data */ +#define TIFFTAG_SAMPLEFORMAT 339 /* !data sample format */ +#define SAMPLEFORMAT_UINT 1 /* !unsigned integer data */ +#define SAMPLEFORMAT_INT 2 /* !signed integer data */ +#define SAMPLEFORMAT_IEEEFP 3 /* !IEEE floating point data */ +#define SAMPLEFORMAT_VOID 4 /* !untyped data */ +#define SAMPLEFORMAT_COMPLEXINT 5 /* !complex signed int */ +#define SAMPLEFORMAT_COMPLEXIEEEFP 6 /* !complex ieee floating */ +#define TIFFTAG_SMINSAMPLEVALUE 340 /* !variable MinSampleValue */ +#define TIFFTAG_SMAXSAMPLEVALUE 341 /* !variable MaxSampleValue */ +#define TIFFTAG_CLIPPATH 343 /* %ClipPath + [Adobe TIFF technote 2] */ +#define TIFFTAG_XCLIPPATHUNITS 344 /* %XClipPathUnits + [Adobe TIFF technote 2] */ +#define TIFFTAG_YCLIPPATHUNITS 345 /* %YClipPathUnits + [Adobe TIFF technote 2] */ +#define TIFFTAG_INDEXED 346 /* %Indexed + [Adobe TIFF Technote 3] */ +#define TIFFTAG_JPEGTABLES 347 /* %JPEG table stream */ +#define TIFFTAG_OPIPROXY 351 /* %OPI Proxy [Adobe TIFF technote] */ +/* Tags 400-435 are from the TIFF/FX spec */ +#define TIFFTAG_GLOBALPARAMETERSIFD 400 /* ! */ +#define TIFFTAG_PROFILETYPE 401 /* ! */ +#define PROFILETYPE_UNSPECIFIED 0 /* ! */ +#define PROFILETYPE_G3_FAX 1 /* ! */ +#define TIFFTAG_FAXPROFILE 402 /* ! */ +#define FAXPROFILE_S 1 /* !TIFF/FX FAX profile S */ +#define FAXPROFILE_F 2 /* !TIFF/FX FAX profile F */ +#define FAXPROFILE_J 3 /* !TIFF/FX FAX profile J */ +#define FAXPROFILE_C 4 /* !TIFF/FX FAX profile C */ +#define FAXPROFILE_L 5 /* !TIFF/FX FAX profile L */ +#define FAXPROFILE_M 6 /* !TIFF/FX FAX profile LM */ +#define TIFFTAG_CODINGMETHODS 403 /* !TIFF/FX coding methods */ +#define CODINGMETHODS_T4_1D (1 << 1) /* !T.4 1D */ +#define CODINGMETHODS_T4_2D (1 << 2) /* !T.4 2D */ +#define CODINGMETHODS_T6 (1 << 3) /* !T.6 */ +#define CODINGMETHODS_T85 (1 << 4) /* !T.85 JBIG */ +#define CODINGMETHODS_T42 (1 << 5) /* !T.42 JPEG */ +#define CODINGMETHODS_T43 (1 << 6) /* !T.43 colour by layered JBIG */ +#define TIFFTAG_VERSIONYEAR 404 /* !TIFF/FX version year */ +#define TIFFTAG_MODENUMBER 405 /* !TIFF/FX mode number */ +#define TIFFTAG_DECODE 433 /* !TIFF/FX decode */ +#define TIFFTAG_IMAGEBASECOLOR 434 /* !TIFF/FX image base colour */ +#define TIFFTAG_T82OPTIONS 435 /* !TIFF/FX T.82 options */ +/* + * Tags 512-521 are obsoleted by Technical Note #2 which specifies a + * revised JPEG-in-TIFF scheme. + */ +#define TIFFTAG_JPEGPROC 512 /* !JPEG processing algorithm */ +#define JPEGPROC_BASELINE 1 /* !baseline sequential */ +#define JPEGPROC_LOSSLESS 14 /* !Huffman coded lossless */ +#define TIFFTAG_JPEGIFOFFSET 513 /* !pointer to SOI marker */ +#define TIFFTAG_JPEGIFBYTECOUNT 514 /* !JFIF stream length */ +#define TIFFTAG_JPEGRESTARTINTERVAL 515 /* !restart interval length */ +#define TIFFTAG_JPEGLOSSLESSPREDICTORS 517 /* !lossless proc predictor */ +#define TIFFTAG_JPEGPOINTTRANSFORM 518 /* !lossless point transform */ +#define TIFFTAG_JPEGQTABLES 519 /* !Q matrice offsets */ +#define TIFFTAG_JPEGDCTABLES 520 /* !DCT table offsets */ +#define TIFFTAG_JPEGACTABLES 521 /* !AC coefficient offsets */ +#define TIFFTAG_YCBCRCOEFFICIENTS 529 /* !RGB -> YCbCr transform */ +#define TIFFTAG_YCBCRSUBSAMPLING 530 /* !YCbCr subsampling factors */ +#define TIFFTAG_YCBCRPOSITIONING 531 /* !subsample positioning */ +#define YCBCRPOSITION_CENTERED 1 /* !as in PostScript Level 2 */ +#define YCBCRPOSITION_COSITED 2 /* !as in CCIR 601-1 */ +#define TIFFTAG_REFERENCEBLACKWHITE 532 /* !colorimetry info */ +#define TIFFTAG_STRIPROWCOUNTS 559 /* !TIFF/FX strip row counts */ +#define TIFFTAG_XMLPACKET 700 /* %XML packet + [Adobe XMP Specification, + January 2004 */ +#define TIFFTAG_OPIIMAGEID 32781 /* %OPI ImageID + [Adobe TIFF technote] */ +/* tags 32952-32956 are private tags registered to Island Graphics */ +#define TIFFTAG_REFPTS 32953 /* image reference points */ +#define TIFFTAG_REGIONTACKPOINT 32954 /* region-xform tack point */ +#define TIFFTAG_REGIONWARPCORNERS 32955 /* warp quadrilateral */ +#define TIFFTAG_REGIONAFFINE 32956 /* affine transformation mat */ +/* tags 32995-32999 are private tags registered to SGI */ +#define TIFFTAG_MATTEING 32995 /* $use ExtraSamples */ +#define TIFFTAG_DATATYPE 32996 /* $use SampleFormat */ +#define TIFFTAG_IMAGEDEPTH 32997 /* z depth of image */ +#define TIFFTAG_TILEDEPTH 32998 /* z depth/data tile */ +/* tags 33300-33309 are private tags registered to Pixar */ +/* + * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH + * are set when an image has been cropped out of a larger image. + * They reflect the size of the original uncropped image. + * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used + * to determine the position of the smaller image in the larger one. + */ +#define TIFFTAG_PIXAR_IMAGEFULLWIDTH 33300 /* full image size in x */ +#define TIFFTAG_PIXAR_IMAGEFULLLENGTH 33301 /* full image size in y */ + /* Tags 33302-33306 are used to identify special image modes and data + * used by Pixar's texture formats. + */ +#define TIFFTAG_PIXAR_TEXTUREFORMAT 33302 /* texture map format */ +#define TIFFTAG_PIXAR_WRAPMODES 33303 /* s & t wrap modes */ +#define TIFFTAG_PIXAR_FOVCOT 33304 /* cotan(fov) for env. maps */ +#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN 33305 +#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA 33306 +/* tag 33405 is a private tag registered to Eastman Kodak */ +#define TIFFTAG_WRITERSERIALNUMBER 33405 /* device serial number */ +/* tag 33432 is listed in the 6.0 spec w/ unknown ownership */ +#define TIFFTAG_COPYRIGHT 33432 /* copyright string */ +/* IPTC TAG from RichTIFF specifications */ +#define TIFFTAG_RICHTIFFIPTC 33723 +/* 34016-34029 are reserved for ANSI IT8 TIFF/IT */ +#define TIFFTAG_STONITS 37439 /* Sample value to Nits */ +/* tag 34929 is a private tag registered to FedEx */ +#define TIFFTAG_FEDEX_EDR 34929 /* unknown use */ +#define TIFFTAG_INTEROPERABILITYIFD 40965 /* Pointer to Interoperability private directory */ +/* Adobe Digital Negative (DNG) format tags */ +#define TIFFTAG_DNGVERSION 50706 /* &DNG version number */ +#define TIFFTAG_DNGBACKWARDVERSION 50707 /* &DNG compatibility version */ +#define TIFFTAG_UNIQUECAMERAMODEL 50708 /* &name for the camera model */ +#define TIFFTAG_LOCALIZEDCAMERAMODEL 50709 /* &localized camera model + name */ +#define TIFFTAG_CFAPLANECOLOR 50710 /* &CFAPattern->LinearRaw space + mapping */ +#define TIFFTAG_CFALAYOUT 50711 /* &spatial layout of the CFA */ +#define TIFFTAG_LINEARIZATIONTABLE 50712 /* &lookup table description */ +#define TIFFTAG_BLACKLEVELREPEATDIM 50713 /* &repeat pattern size for + the BlackLevel tag */ +#define TIFFTAG_BLACKLEVEL 50714 /* &zero light encoding level */ +#define TIFFTAG_BLACKLEVELDELTAH 50715 /* &zero light encoding level + differences (columns) */ +#define TIFFTAG_BLACKLEVELDELTAV 50716 /* &zero light encoding level + differences (rows) */ +#define TIFFTAG_WHITELEVEL 50717 /* &fully saturated encoding + level */ +#define TIFFTAG_DEFAULTSCALE 50718 /* &default scale factors */ +#define TIFFTAG_DEFAULTCROPORIGIN 50719 /* &origin of the final image + area */ +#define TIFFTAG_DEFAULTCROPSIZE 50720 /* &size of the final image + area */ +#define TIFFTAG_COLORMATRIX1 50721 /* &XYZ->reference color space + transformation matrix 1 */ +#define TIFFTAG_COLORMATRIX2 50722 /* &XYZ->reference color space + transformation matrix 2 */ +#define TIFFTAG_CAMERACALIBRATION1 50723 /* &calibration matrix 1 */ +#define TIFFTAG_CAMERACALIBRATION2 50724 /* &calibration matrix 2 */ +#define TIFFTAG_REDUCTIONMATRIX1 50725 /* &dimensionality reduction + matrix 1 */ +#define TIFFTAG_REDUCTIONMATRIX2 50726 /* &dimensionality reduction + matrix 2 */ +#define TIFFTAG_ANALOGBALANCE 50727 /* &gain applied the stored raw + values*/ +#define TIFFTAG_ASSHOTNEUTRAL 50728 /* &selected white balance in + linear reference space */ +#define TIFFTAG_ASSHOTWHITEXY 50729 /* &selected white balance in + x-y chromaticity + coordinates */ +#define TIFFTAG_BASELINEEXPOSURE 50730 /* &how much to move the zero + point */ +#define TIFFTAG_BASELINENOISE 50731 /* &relative noise level */ +#define TIFFTAG_BASELINESHARPNESS 50732 /* &relative amount of + sharpening */ +#define TIFFTAG_BAYERGREENSPLIT 50733 /* &how closely the values of + the green pixels in the + blue/green rows track the + values of the green pixels + in the red/green rows */ +#define TIFFTAG_LINEARRESPONSELIMIT 50734 /* &non-linear encoding range */ +#define TIFFTAG_CAMERASERIALNUMBER 50735 /* &camera's serial number */ +#define TIFFTAG_LENSINFO 50736 /* info about the lens */ +#define TIFFTAG_CHROMABLURRADIUS 50737 /* &chroma blur radius */ +#define TIFFTAG_ANTIALIASSTRENGTH 50738 /* &relative strength of the + camera's anti-alias filter */ +#define TIFFTAG_SHADOWSCALE 50739 /* &used by Adobe Camera Raw */ +#define TIFFTAG_DNGPRIVATEDATA 50740 /* &manufacturer's private data */ +#define TIFFTAG_MAKERNOTESAFETY 50741 /* &whether the EXIF MakerNote + tag is safe to preserve + along with the rest of the + EXIF data */ +#define TIFFTAG_CALIBRATIONILLUMINANT1 50778 /* &illuminant 1 */ +#define TIFFTAG_CALIBRATIONILLUMINANT2 50779 /* &illuminant 2 */ +#define TIFFTAG_BESTQUALITYSCALE 50780 /* &best quality multiplier */ +#define TIFFTAG_RAWDATAUNIQUEID 50781 /* &unique identifier for + the raw image data */ +#define TIFFTAG_ORIGINALRAWFILENAME 50827 /* &file name of the original + raw file */ +#define TIFFTAG_ORIGINALRAWFILEDATA 50828 /* &contents of the original + raw file */ +#define TIFFTAG_ACTIVEAREA 50829 /* &active (non-masked) pixels + of the sensor */ +#define TIFFTAG_MASKEDAREAS 50830 /* &list of coordinates + of fully masked pixels */ +#define TIFFTAG_ASSHOTICCPROFILE 50831 /* &these two tags used to */ +#define TIFFTAG_ASSHOTPREPROFILEMATRIX 50832 /* map cameras's color space + into ICC profile space */ +#define TIFFTAG_CURRENTICCPROFILE 50833 /* & */ +#define TIFFTAG_CURRENTPREPROFILEMATRIX 50834 /* & */ +/* tag 65535 is an undefined tag used by Eastman Kodak */ +#define TIFFTAG_DCSHUESHIFTVALUES 65535 /* hue shift correction data */ + +/* + * The following are ``pseudo tags'' that can be used to control + * codec-specific functionality. These tags are not written to file. + * Note that these values start at 0xffff+1 so that they'll never + * collide with Aldus-assigned tags. + * + * If you want your private pseudo tags ``registered'' (i.e. added to + * this file), please post a bug report via the tracking system at + * http://www.remotesensing.org/libtiff/bugs.html with the appropriate + * C definitions to add. + */ +#define TIFFTAG_FAXMODE 65536 /* Group 3/4 format control */ +#define FAXMODE_CLASSIC 0x0000 /* default, include RTC */ +#define FAXMODE_NORTC 0x0001 /* no RTC at end of data */ +#define FAXMODE_NOEOL 0x0002 /* no EOL code at end of row */ +#define FAXMODE_BYTEALIGN 0x0004 /* byte align row */ +#define FAXMODE_WORDALIGN 0x0008 /* word align row */ +#define FAXMODE_CLASSF FAXMODE_NORTC /* TIFF Class F */ +#define TIFFTAG_JPEGQUALITY 65537 /* Compression quality level */ +/* Note: quality level is on the IJG 0-100 scale. Default value is 75 */ +#define TIFFTAG_JPEGCOLORMODE 65538 /* Auto RGB<=>YCbCr convert? */ +#define JPEGCOLORMODE_RAW 0x0000 /* no conversion (default) */ +#define JPEGCOLORMODE_RGB 0x0001 /* do auto conversion */ +#define TIFFTAG_JPEGTABLESMODE 65539 /* What to put in JPEGTables */ +#define JPEGTABLESMODE_QUANT 0x0001 /* include quantization tbls */ +#define JPEGTABLESMODE_HUFF 0x0002 /* include Huffman tbls */ +/* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */ +#define TIFFTAG_FAXFILLFUNC 65540 /* G3/G4 fill function */ +#define TIFFTAG_PIXARLOGDATAFMT 65549 /* PixarLogCodec I/O data sz */ +#define PIXARLOGDATAFMT_8BIT 0 /* regular u_char samples */ +#define PIXARLOGDATAFMT_8BITABGR 1 /* ABGR-order u_chars */ +#define PIXARLOGDATAFMT_11BITLOG 2 /* 11-bit log-encoded (raw) */ +#define PIXARLOGDATAFMT_12BITPICIO 3 /* as per PICIO (1.0==2048) */ +#define PIXARLOGDATAFMT_16BIT 4 /* signed short samples */ +#define PIXARLOGDATAFMT_FLOAT 5 /* IEEE float samples */ +/* 65550-65556 are allocated to Oceana Matrix */ +#define TIFFTAG_DCSIMAGERTYPE 65550 /* imager model & filter */ +#define DCSIMAGERMODEL_M3 0 /* M3 chip (1280 x 1024) */ +#define DCSIMAGERMODEL_M5 1 /* M5 chip (1536 x 1024) */ +#define DCSIMAGERMODEL_M6 2 /* M6 chip (3072 x 2048) */ +#define DCSIMAGERFILTER_IR 0 /* infrared filter */ +#define DCSIMAGERFILTER_MONO 1 /* monochrome filter */ +#define DCSIMAGERFILTER_CFA 2 /* color filter array */ +#define DCSIMAGERFILTER_OTHER 3 /* other filter */ +#define TIFFTAG_DCSINTERPMODE 65551 /* interpolation mode */ +#define DCSINTERPMODE_NORMAL 0x0 /* whole image, default */ +#define DCSINTERPMODE_PREVIEW 0x1 /* preview of image (384x256) */ +#define TIFFTAG_DCSBALANCEARRAY 65552 /* color balance values */ +#define TIFFTAG_DCSCORRECTMATRIX 65553 /* color correction values */ +#define TIFFTAG_DCSGAMMA 65554 /* gamma value */ +#define TIFFTAG_DCSTOESHOULDERPTS 65555 /* toe & shoulder points */ +#define TIFFTAG_DCSCALIBRATIONFD 65556 /* calibration file desc */ +/* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */ +#define TIFFTAG_ZIPQUALITY 65557 /* compression quality level */ +#define TIFFTAG_PIXARLOGQUALITY 65558 /* PixarLog uses same scale */ +/* 65559 is allocated to Oceana Matrix */ +#define TIFFTAG_DCSCLIPRECTANGLE 65559 /* area of image to acquire */ +#define TIFFTAG_SGILOGDATAFMT 65560 /* SGILog user data format */ +#define SGILOGDATAFMT_FLOAT 0 /* IEEE float samples */ +#define SGILOGDATAFMT_16BIT 1 /* 16-bit samples */ +#define SGILOGDATAFMT_RAW 2 /* uninterpreted data */ +#define SGILOGDATAFMT_8BIT 3 /* 8-bit RGB monitor values */ +#define TIFFTAG_SGILOGENCODE 65561 /* SGILog data encoding control*/ +#define SGILOGENCODE_NODITHER 0 /* do not dither encoded values*/ +#define SGILOGENCODE_RANDITHER 1 /* randomly dither encd values */ +#define TIFFTAG_LZMAPRESET 65562 /* LZMA2 preset (compression level) */ +#define TIFFTAG_PERSAMPLE 65563 /* interface for per sample tags */ +#define PERSAMPLE_MERGED 0 /* present as a single value */ +#define PERSAMPLE_MULTI 1 /* present as multiple values */ + +/* + * EXIF tags + */ +#define EXIFTAG_EXPOSURETIME 33434 /* Exposure time */ +#define EXIFTAG_FNUMBER 33437 /* F number */ +#define EXIFTAG_EXPOSUREPROGRAM 34850 /* Exposure program */ +#define EXIFTAG_SPECTRALSENSITIVITY 34852 /* Spectral sensitivity */ +#define EXIFTAG_ISOSPEEDRATINGS 34855 /* ISO speed rating */ +#define EXIFTAG_OECF 34856 /* Optoelectric conversion + factor */ +#define EXIFTAG_EXIFVERSION 36864 /* Exif version */ +#define EXIFTAG_DATETIMEORIGINAL 36867 /* Date and time of original + data generation */ +#define EXIFTAG_DATETIMEDIGITIZED 36868 /* Date and time of digital + data generation */ +#define EXIFTAG_COMPONENTSCONFIGURATION 37121 /* Meaning of each component */ +#define EXIFTAG_COMPRESSEDBITSPERPIXEL 37122 /* Image compression mode */ +#define EXIFTAG_SHUTTERSPEEDVALUE 37377 /* Shutter speed */ +#define EXIFTAG_APERTUREVALUE 37378 /* Aperture */ +#define EXIFTAG_BRIGHTNESSVALUE 37379 /* Brightness */ +#define EXIFTAG_EXPOSUREBIASVALUE 37380 /* Exposure bias */ +#define EXIFTAG_MAXAPERTUREVALUE 37381 /* Maximum lens aperture */ +#define EXIFTAG_SUBJECTDISTANCE 37382 /* Subject distance */ +#define EXIFTAG_METERINGMODE 37383 /* Metering mode */ +#define EXIFTAG_LIGHTSOURCE 37384 /* Light source */ +#define EXIFTAG_FLASH 37385 /* Flash */ +#define EXIFTAG_FOCALLENGTH 37386 /* Lens focal length */ +#define EXIFTAG_SUBJECTAREA 37396 /* Subject area */ +#define EXIFTAG_MAKERNOTE 37500 /* Manufacturer notes */ +#define EXIFTAG_USERCOMMENT 37510 /* User comments */ +#define EXIFTAG_SUBSECTIME 37520 /* DateTime subseconds */ +#define EXIFTAG_SUBSECTIMEORIGINAL 37521 /* DateTimeOriginal subseconds */ +#define EXIFTAG_SUBSECTIMEDIGITIZED 37522 /* DateTimeDigitized subseconds */ +#define EXIFTAG_FLASHPIXVERSION 40960 /* Supported Flashpix version */ +#define EXIFTAG_COLORSPACE 40961 /* Color space information */ +#define EXIFTAG_PIXELXDIMENSION 40962 /* Valid image width */ +#define EXIFTAG_PIXELYDIMENSION 40963 /* Valid image height */ +#define EXIFTAG_RELATEDSOUNDFILE 40964 /* Related audio file */ +#define EXIFTAG_FLASHENERGY 41483 /* Flash energy */ +#define EXIFTAG_SPATIALFREQUENCYRESPONSE 41484 /* Spatial frequency response */ +#define EXIFTAG_FOCALPLANEXRESOLUTION 41486 /* Focal plane X resolution */ +#define EXIFTAG_FOCALPLANEYRESOLUTION 41487 /* Focal plane Y resolution */ +#define EXIFTAG_FOCALPLANERESOLUTIONUNIT 41488 /* Focal plane resolution unit */ +#define EXIFTAG_SUBJECTLOCATION 41492 /* Subject location */ +#define EXIFTAG_EXPOSUREINDEX 41493 /* Exposure index */ +#define EXIFTAG_SENSINGMETHOD 41495 /* Sensing method */ +#define EXIFTAG_FILESOURCE 41728 /* File source */ +#define EXIFTAG_SCENETYPE 41729 /* Scene type */ +#define EXIFTAG_CFAPATTERN 41730 /* CFA pattern */ +#define EXIFTAG_CUSTOMRENDERED 41985 /* Custom image processing */ +#define EXIFTAG_EXPOSUREMODE 41986 /* Exposure mode */ +#define EXIFTAG_WHITEBALANCE 41987 /* White balance */ +#define EXIFTAG_DIGITALZOOMRATIO 41988 /* Digital zoom ratio */ +#define EXIFTAG_FOCALLENGTHIN35MMFILM 41989 /* Focal length in 35 mm film */ +#define EXIFTAG_SCENECAPTURETYPE 41990 /* Scene capture type */ +#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ +#define EXIFTAG_CONTRAST 41992 /* Contrast */ +#define EXIFTAG_SATURATION 41993 /* Saturation */ +#define EXIFTAG_SHARPNESS 41994 /* Sharpness */ +#define EXIFTAG_DEVICESETTINGDESCRIPTION 41995 /* Device settings description */ +#define EXIFTAG_SUBJECTDISTANCERANGE 41996 /* Subject distance range */ +#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ +#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ +#define EXIFTAG_IMAGEUNIQUEID 42016 /* Unique image ID */ + +#endif /* _TIFF_ */ + +/* vim: set ts=8 sts=8 sw=8 noet: */ +/* + * Local Variables: + * mode: c + * c-basic-offset: 8 + * fill-column: 78 + * End: + */ diff --git a/ios/include/tiff/tiffconf-32.h b/ios/include/tiff/tiffconf-32.h new file mode 100644 index 00000000..262db339 --- /dev/null +++ b/ios/include/tiff/tiffconf-32.h @@ -0,0 +1,128 @@ +/* libtiff/tiffconf.h. Generated from tiffconf.h.in by configure. */ +/* + Configuration defines for installed libtiff. + This file maintained for backward compatibility. Do not use definitions + from this file in your programs. +*/ + +#ifndef _TIFFCONF_ +#define _TIFFCONF_ + +/* Signed 16-bit type */ +#define TIFF_INT16_T signed short + +/* Signed 32-bit type */ +#define TIFF_INT32_T signed int + +/* Signed 64-bit type */ +#define TIFF_INT64_T signed long long + +/* Signed 8-bit type */ +#define TIFF_INT8_T signed char + +/* Unsigned 16-bit type */ +#define TIFF_UINT16_T unsigned short + +/* Unsigned 32-bit type */ +#define TIFF_UINT32_T unsigned int + +/* Unsigned 64-bit type */ +#define TIFF_UINT64_T unsigned long long + +/* Unsigned 8-bit type */ +#define TIFF_UINT8_T unsigned char + +/* Signed size type */ +#define TIFF_SSIZE_T signed int + +/* Pointer difference type */ +#define TIFF_PTRDIFF_T ptrdiff_t + +/* Define to 1 if the system has the type `int16'. */ +/* #undef HAVE_INT16 */ + +/* Define to 1 if the system has the type `int32'. */ +/* #undef HAVE_INT32 */ + +/* Define to 1 if the system has the type `int8'. */ +/* #undef HAVE_INT8 */ + +/* Compatibility stuff. */ + +/* Define as 0 or 1 according to the floating point format suported by the + machine */ +#define HAVE_IEEEFP 1 + +/* Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB) */ +#define HOST_FILLORDER FILLORDER_MSB2LSB + +/* Native cpu byte order: 1 if big-endian (Motorola) or 0 if little-endian + (Intel) */ +#define HOST_BIGENDIAN 0 + +/* Support CCITT Group 3 & 4 algorithms */ +#define CCITT_SUPPORT 1 + +/* Support JPEG compression (requires IJG JPEG library) */ +/* #undef JPEG_SUPPORT */ + +/* Support JBIG compression (requires JBIG-KIT library) */ +/* #undef JBIG_SUPPORT */ + +/* Support LogLuv high dynamic range encoding */ +#define LOGLUV_SUPPORT 1 + +/* Support LZW algorithm */ +#define LZW_SUPPORT 1 + +/* Support NeXT 2-bit RLE algorithm */ +#define NEXT_SUPPORT 1 + +/* Support Old JPEG compresson (read contrib/ojpeg/README first! Compilation + fails with unpatched IJG JPEG library) */ +/* #undef OJPEG_SUPPORT */ + +/* Support Macintosh PackBits algorithm */ +#define PACKBITS_SUPPORT 1 + +/* Support Pixar log-format algorithm (requires Zlib) */ +/* #undef PIXARLOG_SUPPORT */ + +/* Support ThunderScan 4-bit RLE algorithm */ +#define THUNDER_SUPPORT 1 + +/* Support Deflate compression */ +/* #undef ZIP_SUPPORT */ + +/* Support strip chopping (whether or not to convert single-strip uncompressed + images to mutiple strips of ~8Kb to reduce memory usage) */ +#define STRIPCHOP_DEFAULT TIFF_STRIPCHOP + +/* Enable SubIFD tag (330) support */ +#define SUBIFD_SUPPORT 1 + +/* Treat extra sample as alpha (default enabled). The RGBA interface will + treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many + packages produce RGBA files but don't mark the alpha properly. */ +#define DEFAULT_EXTRASAMPLE_AS_ALPHA 1 + +/* Pick up YCbCr subsampling info from the JPEG data stream to support files + lacking the tag (default enabled). */ +#define CHECK_JPEG_YCBCR_SUBSAMPLING 1 + +/* Support MS MDI magic number files as TIFF */ +#define MDI_SUPPORT 1 + +/* + * Feature support definitions. + * XXX: These macros are obsoleted. Don't use them in your apps! + * Macros stays here for backward compatibility and should be always defined. + */ +#define COLORIMETRY_SUPPORT +#define YCBCR_SUPPORT +#define CMYK_SUPPORT +#define ICC_SUPPORT +#define PHOTOSHOP_SUPPORT +#define IPTC_SUPPORT + +#endif /* _TIFFCONF_ */ diff --git a/ios/include/tiff/tiffconf-64.h b/ios/include/tiff/tiffconf-64.h new file mode 100644 index 00000000..8bc2a0d7 --- /dev/null +++ b/ios/include/tiff/tiffconf-64.h @@ -0,0 +1,128 @@ +/* libtiff/tiffconf.h. Generated from tiffconf.h.in by configure. */ +/* + Configuration defines for installed libtiff. + This file maintained for backward compatibility. Do not use definitions + from this file in your programs. +*/ + +#ifndef _TIFFCONF_ +#define _TIFFCONF_ + +/* Signed 16-bit type */ +#define TIFF_INT16_T signed short + +/* Signed 32-bit type */ +#define TIFF_INT32_T signed int + +/* Signed 64-bit type */ +#define TIFF_INT64_T signed long + +/* Signed 8-bit type */ +#define TIFF_INT8_T signed char + +/* Unsigned 16-bit type */ +#define TIFF_UINT16_T unsigned short + +/* Unsigned 32-bit type */ +#define TIFF_UINT32_T unsigned int + +/* Unsigned 64-bit type */ +#define TIFF_UINT64_T unsigned long + +/* Unsigned 8-bit type */ +#define TIFF_UINT8_T unsigned char + +/* Signed size type */ +#define TIFF_SSIZE_T signed long + +/* Pointer difference type */ +#define TIFF_PTRDIFF_T ptrdiff_t + +/* Define to 1 if the system has the type `int16'. */ +/* #undef HAVE_INT16 */ + +/* Define to 1 if the system has the type `int32'. */ +/* #undef HAVE_INT32 */ + +/* Define to 1 if the system has the type `int8'. */ +/* #undef HAVE_INT8 */ + +/* Compatibility stuff. */ + +/* Define as 0 or 1 according to the floating point format suported by the + machine */ +#define HAVE_IEEEFP 1 + +/* Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB) */ +#define HOST_FILLORDER FILLORDER_LSB2MSB + +/* Native cpu byte order: 1 if big-endian (Motorola) or 0 if little-endian + (Intel) */ +#define HOST_BIGENDIAN 0 + +/* Support CCITT Group 3 & 4 algorithms */ +#define CCITT_SUPPORT 1 + +/* Support JPEG compression (requires IJG JPEG library) */ +/* #undef JPEG_SUPPORT */ + +/* Support JBIG compression (requires JBIG-KIT library) */ +/* #undef JBIG_SUPPORT */ + +/* Support LogLuv high dynamic range encoding */ +#define LOGLUV_SUPPORT 1 + +/* Support LZW algorithm */ +#define LZW_SUPPORT 1 + +/* Support NeXT 2-bit RLE algorithm */ +#define NEXT_SUPPORT 1 + +/* Support Old JPEG compresson (read contrib/ojpeg/README first! Compilation + fails with unpatched IJG JPEG library) */ +/* #undef OJPEG_SUPPORT */ + +/* Support Macintosh PackBits algorithm */ +#define PACKBITS_SUPPORT 1 + +/* Support Pixar log-format algorithm (requires Zlib) */ +/* #undef PIXARLOG_SUPPORT */ + +/* Support ThunderScan 4-bit RLE algorithm */ +#define THUNDER_SUPPORT 1 + +/* Support Deflate compression */ +/* #undef ZIP_SUPPORT */ + +/* Support strip chopping (whether or not to convert single-strip uncompressed + images to mutiple strips of ~8Kb to reduce memory usage) */ +#define STRIPCHOP_DEFAULT TIFF_STRIPCHOP + +/* Enable SubIFD tag (330) support */ +#define SUBIFD_SUPPORT 1 + +/* Treat extra sample as alpha (default enabled). The RGBA interface will + treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many + packages produce RGBA files but don't mark the alpha properly. */ +#define DEFAULT_EXTRASAMPLE_AS_ALPHA 1 + +/* Pick up YCbCr subsampling info from the JPEG data stream to support files + lacking the tag (default enabled). */ +#define CHECK_JPEG_YCBCR_SUBSAMPLING 1 + +/* Support MS MDI magic number files as TIFF */ +#define MDI_SUPPORT 1 + +/* + * Feature support definitions. + * XXX: These macros are obsoleted. Don't use them in your apps! + * Macros stays here for backward compatibility and should be always defined. + */ +#define COLORIMETRY_SUPPORT +#define YCBCR_SUPPORT +#define CMYK_SUPPORT +#define ICC_SUPPORT +#define PHOTOSHOP_SUPPORT +#define IPTC_SUPPORT + +#endif /* _TIFFCONF_ */ diff --git a/ios/include/tiff/tiffconf.h b/ios/include/tiff/tiffconf.h new file mode 100644 index 00000000..2aae5dea --- /dev/null +++ b/ios/include/tiff/tiffconf.h @@ -0,0 +1,5 @@ +#if defined(__LP64__) && __LP64__ +#include"tiffconf-64.h" +#else +#include"tiffconf-32.h" +#endif \ No newline at end of file diff --git a/ios/include/tiff/tiffio.h b/ios/include/tiff/tiffio.h new file mode 100644 index 00000000..038b6701 --- /dev/null +++ b/ios/include/tiff/tiffio.h @@ -0,0 +1,557 @@ +/* $Id: tiffio.h,v 1.91 2012-07-29 15:45:29 tgl Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifndef _TIFFIO_ +#define _TIFFIO_ + +/* + * TIFF I/O Library Definitions. + */ +#include "tiff.h" +#include "tiffvers.h" + +/* + * TIFF is defined as an incomplete type to hide the + * library's internal data structures from clients. + */ +typedef struct tiff TIFF; + +/* + * The following typedefs define the intrinsic size of + * data types used in the *exported* interfaces. These + * definitions depend on the proper definition of types + * in tiff.h. Note also that the varargs interface used + * to pass tag types and values uses the types defined in + * tiff.h directly. + * + * NB: ttag_t is unsigned int and not unsigned short because + * ANSI C requires that the type before the ellipsis be a + * promoted type (i.e. one of int, unsigned int, pointer, + * or double) and because we defined pseudo-tags that are + * outside the range of legal Aldus-assigned tags. + * NB: tsize_t is int32 and not uint32 because some functions + * return -1. + * NB: toff_t is not off_t for many reasons; TIFFs max out at + * 32-bit file offsets, and BigTIFF maxes out at 64-bit + * offsets being the most important, and to ensure use of + * a consistently unsigned type across architectures. + * Prior to libtiff 4.0, this was an unsigned 32 bit type. + */ +/* + * this is the machine addressing size type, only it's signed, so make it + * int32 on 32bit machines, int64 on 64bit machines + */ +typedef TIFF_SSIZE_T tmsize_t; +typedef uint64 toff_t; /* file offset */ +/* the following are deprecated and should be replaced by their defining + counterparts */ +typedef uint32 ttag_t; /* directory tag */ +typedef uint16 tdir_t; /* directory index */ +typedef uint16 tsample_t; /* sample number */ +typedef uint32 tstrile_t; /* strip or tile number */ +typedef tstrile_t tstrip_t; /* strip number */ +typedef tstrile_t ttile_t; /* tile number */ +typedef tmsize_t tsize_t; /* i/o size in bytes */ +typedef void* tdata_t; /* image data ref */ + +#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32)) +#define __WIN32__ +#endif + +/* + * On windows you should define USE_WIN32_FILEIO if you are using tif_win32.c + * or AVOID_WIN32_FILEIO if you are using something else (like tif_unix.c). + * + * By default tif_unix.c is assumed. + */ + +#if defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows) +# if !defined(__CYGWIN) && !defined(AVOID_WIN32_FILEIO) && !defined(USE_WIN32_FILEIO) +# define AVOID_WIN32_FILEIO +# endif +#endif + +#if defined(USE_WIN32_FILEIO) +# define VC_EXTRALEAN +# include +# ifdef __WIN32__ +DECLARE_HANDLE(thandle_t); /* Win32 file handle */ +# else +typedef HFILE thandle_t; /* client data handle */ +# endif /* __WIN32__ */ +#else +typedef void* thandle_t; /* client data handle */ +#endif /* USE_WIN32_FILEIO */ + +/* + * Flags to pass to TIFFPrintDirectory to control + * printing of data structures that are potentially + * very large. Bit-or these flags to enable printing + * multiple items. + */ +#define TIFFPRINT_NONE 0x0 /* no extra info */ +#define TIFFPRINT_STRIPS 0x1 /* strips/tiles info */ +#define TIFFPRINT_CURVES 0x2 /* color/gray response curves */ +#define TIFFPRINT_COLORMAP 0x4 /* colormap */ +#define TIFFPRINT_JPEGQTABLES 0x100 /* JPEG Q matrices */ +#define TIFFPRINT_JPEGACTABLES 0x200 /* JPEG AC tables */ +#define TIFFPRINT_JPEGDCTABLES 0x200 /* JPEG DC tables */ + +/* + * Colour conversion stuff + */ + +/* reference white */ +#define D65_X0 (95.0470F) +#define D65_Y0 (100.0F) +#define D65_Z0 (108.8827F) + +#define D50_X0 (96.4250F) +#define D50_Y0 (100.0F) +#define D50_Z0 (82.4680F) + +/* Structure for holding information about a display device. */ + +typedef unsigned char TIFFRGBValue; /* 8-bit samples */ + +typedef struct { + float d_mat[3][3]; /* XYZ -> luminance matrix */ + float d_YCR; /* Light o/p for reference white */ + float d_YCG; + float d_YCB; + uint32 d_Vrwr; /* Pixel values for ref. white */ + uint32 d_Vrwg; + uint32 d_Vrwb; + float d_Y0R; /* Residual light for black pixel */ + float d_Y0G; + float d_Y0B; + float d_gammaR; /* Gamma values for the three guns */ + float d_gammaG; + float d_gammaB; +} TIFFDisplay; + +typedef struct { /* YCbCr->RGB support */ + TIFFRGBValue* clamptab; /* range clamping table */ + int* Cr_r_tab; + int* Cb_b_tab; + int32* Cr_g_tab; + int32* Cb_g_tab; + int32* Y_tab; +} TIFFYCbCrToRGB; + +typedef struct { /* CIE Lab 1976->RGB support */ + int range; /* Size of conversion table */ +#define CIELABTORGB_TABLE_RANGE 1500 + float rstep, gstep, bstep; + float X0, Y0, Z0; /* Reference white point */ + TIFFDisplay display; + float Yr2r[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yr to r */ + float Yg2g[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yg to g */ + float Yb2b[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yb to b */ +} TIFFCIELabToRGB; + +/* + * RGBA-style image support. + */ +typedef struct _TIFFRGBAImage TIFFRGBAImage; +/* + * The image reading and conversion routines invoke + * ``put routines'' to copy/image/whatever tiles of + * raw image data. A default set of routines are + * provided to convert/copy raw image data to 8-bit + * packed ABGR format rasters. Applications can supply + * alternate routines that unpack the data into a + * different format or, for example, unpack the data + * and draw the unpacked raster on the display. + */ +typedef void (*tileContigRoutine) + (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, + unsigned char*); +typedef void (*tileSeparateRoutine) + (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, + unsigned char*, unsigned char*, unsigned char*, unsigned char*); +/* + * RGBA-reader state. + */ +struct _TIFFRGBAImage { + TIFF* tif; /* image handle */ + int stoponerr; /* stop on read error */ + int isContig; /* data is packed/separate */ + int alpha; /* type of alpha data present */ + uint32 width; /* image width */ + uint32 height; /* image height */ + uint16 bitspersample; /* image bits/sample */ + uint16 samplesperpixel; /* image samples/pixel */ + uint16 orientation; /* image orientation */ + uint16 req_orientation; /* requested orientation */ + uint16 photometric; /* image photometric interp */ + uint16* redcmap; /* colormap pallete */ + uint16* greencmap; + uint16* bluecmap; + /* get image data routine */ + int (*get)(TIFFRGBAImage*, uint32*, uint32, uint32); + /* put decoded strip/tile */ + union { + void (*any)(TIFFRGBAImage*); + tileContigRoutine contig; + tileSeparateRoutine separate; + } put; + TIFFRGBValue* Map; /* sample mapping array */ + uint32** BWmap; /* black&white map */ + uint32** PALmap; /* palette image map */ + TIFFYCbCrToRGB* ycbcr; /* YCbCr conversion state */ + TIFFCIELabToRGB* cielab; /* CIE L*a*b conversion state */ + + uint8* UaToAa; /* Unassociated alpha to associated alpha convertion LUT */ + uint8* Bitdepth16To8; /* LUT for conversion from 16bit to 8bit values */ + + int row_offset; + int col_offset; +}; + +/* + * Macros for extracting components from the + * packed ABGR form returned by TIFFReadRGBAImage. + */ +#define TIFFGetR(abgr) ((abgr) & 0xff) +#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff) +#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff) +#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff) + +/* + * A CODEC is a software package that implements decoding, + * encoding, or decoding+encoding of a compression algorithm. + * The library provides a collection of builtin codecs. + * More codecs may be registered through calls to the library + * and/or the builtin implementations may be overridden. + */ +typedef int (*TIFFInitMethod)(TIFF*, int); +typedef struct { + char* name; + uint16 scheme; + TIFFInitMethod init; +} TIFFCodec; + +#include +#include + +/* share internal LogLuv conversion routines? */ +#ifndef LOGLUV_PUBLIC +#define LOGLUV_PUBLIC 1 +#endif + +#if !defined(__GNUC__) && !defined(__attribute__) +# define __attribute__(x) /*nothing*/ +#endif + +#if defined(c_plusplus) || defined(__cplusplus) +extern "C" { +#endif +typedef void (*TIFFErrorHandler)(const char*, const char*, va_list); +typedef void (*TIFFErrorHandlerExt)(thandle_t, const char*, const char*, va_list); +typedef tmsize_t (*TIFFReadWriteProc)(thandle_t, void*, tmsize_t); +typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int); +typedef int (*TIFFCloseProc)(thandle_t); +typedef toff_t (*TIFFSizeProc)(thandle_t); +typedef int (*TIFFMapFileProc)(thandle_t, void** base, toff_t* size); +typedef void (*TIFFUnmapFileProc)(thandle_t, void* base, toff_t size); +typedef void (*TIFFExtendProc)(TIFF*); + +extern const char* TIFFGetVersion(void); + +extern const TIFFCodec* TIFFFindCODEC(uint16); +extern TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod); +extern void TIFFUnRegisterCODEC(TIFFCodec*); +extern int TIFFIsCODECConfigured(uint16); +extern TIFFCodec* TIFFGetConfiguredCODECs(void); + +/* + * Auxiliary functions. + */ + +extern void* _TIFFmalloc(tmsize_t s); +extern void* _TIFFrealloc(void* p, tmsize_t s); +extern void _TIFFmemset(void* p, int v, tmsize_t c); +extern void _TIFFmemcpy(void* d, const void* s, tmsize_t c); +extern int _TIFFmemcmp(const void* p1, const void* p2, tmsize_t c); +extern void _TIFFfree(void* p); + +/* +** Stuff, related to tag handling and creating custom tags. +*/ +extern int TIFFGetTagListCount( TIFF * ); +extern uint32 TIFFGetTagListEntry( TIFF *, int tag_index ); + +#define TIFF_ANY TIFF_NOTYPE /* for field descriptor searching */ +#define TIFF_VARIABLE -1 /* marker for variable length tags */ +#define TIFF_SPP -2 /* marker for SamplesPerPixel tags */ +#define TIFF_VARIABLE2 -3 /* marker for uint32 var-length tags */ + +#define FIELD_CUSTOM 65 + +typedef struct _TIFFField TIFFField; +typedef struct _TIFFFieldArray TIFFFieldArray; + +extern const TIFFField* TIFFFindField(TIFF *, uint32, TIFFDataType); +extern const TIFFField* TIFFFieldWithTag(TIFF*, uint32); +extern const TIFFField* TIFFFieldWithName(TIFF*, const char *); + +extern uint32 TIFFFieldTag(const TIFFField*); +extern const char* TIFFFieldName(const TIFFField*); +extern TIFFDataType TIFFFieldDataType(const TIFFField*); +extern int TIFFFieldPassCount(const TIFFField*); +extern int TIFFFieldReadCount(const TIFFField*); +extern int TIFFFieldWriteCount(const TIFFField*); + +typedef int (*TIFFVSetMethod)(TIFF*, uint32, va_list); +typedef int (*TIFFVGetMethod)(TIFF*, uint32, va_list); +typedef void (*TIFFPrintMethod)(TIFF*, FILE*, long); + +typedef struct { + TIFFVSetMethod vsetfield; /* tag set routine */ + TIFFVGetMethod vgetfield; /* tag get routine */ + TIFFPrintMethod printdir; /* directory print routine */ +} TIFFTagMethods; + +extern TIFFTagMethods *TIFFAccessTagMethods(TIFF *); +extern void *TIFFGetClientInfo(TIFF *, const char *); +extern void TIFFSetClientInfo(TIFF *, void *, const char *); + +extern void TIFFCleanup(TIFF* tif); +extern void TIFFClose(TIFF* tif); +extern int TIFFFlush(TIFF* tif); +extern int TIFFFlushData(TIFF* tif); +extern int TIFFGetField(TIFF* tif, uint32 tag, ...); +extern int TIFFVGetField(TIFF* tif, uint32 tag, va_list ap); +extern int TIFFGetFieldDefaulted(TIFF* tif, uint32 tag, ...); +extern int TIFFVGetFieldDefaulted(TIFF* tif, uint32 tag, va_list ap); +extern int TIFFReadDirectory(TIFF* tif); +extern int TIFFReadCustomDirectory(TIFF* tif, toff_t diroff, const TIFFFieldArray* infoarray); +extern int TIFFReadEXIFDirectory(TIFF* tif, toff_t diroff); +extern uint64 TIFFScanlineSize64(TIFF* tif); +extern tmsize_t TIFFScanlineSize(TIFF* tif); +extern uint64 TIFFRasterScanlineSize64(TIFF* tif); +extern tmsize_t TIFFRasterScanlineSize(TIFF* tif); +extern uint64 TIFFStripSize64(TIFF* tif); +extern tmsize_t TIFFStripSize(TIFF* tif); +extern uint64 TIFFRawStripSize64(TIFF* tif, uint32 strip); +extern tmsize_t TIFFRawStripSize(TIFF* tif, uint32 strip); +extern uint64 TIFFVStripSize64(TIFF* tif, uint32 nrows); +extern tmsize_t TIFFVStripSize(TIFF* tif, uint32 nrows); +extern uint64 TIFFTileRowSize64(TIFF* tif); +extern tmsize_t TIFFTileRowSize(TIFF* tif); +extern uint64 TIFFTileSize64(TIFF* tif); +extern tmsize_t TIFFTileSize(TIFF* tif); +extern uint64 TIFFVTileSize64(TIFF* tif, uint32 nrows); +extern tmsize_t TIFFVTileSize(TIFF* tif, uint32 nrows); +extern uint32 TIFFDefaultStripSize(TIFF* tif, uint32 request); +extern void TIFFDefaultTileSize(TIFF*, uint32*, uint32*); +extern int TIFFFileno(TIFF*); +extern int TIFFSetFileno(TIFF*, int); +extern thandle_t TIFFClientdata(TIFF*); +extern thandle_t TIFFSetClientdata(TIFF*, thandle_t); +extern int TIFFGetMode(TIFF*); +extern int TIFFSetMode(TIFF*, int); +extern int TIFFIsTiled(TIFF*); +extern int TIFFIsByteSwapped(TIFF*); +extern int TIFFIsUpSampled(TIFF*); +extern int TIFFIsMSB2LSB(TIFF*); +extern int TIFFIsBigEndian(TIFF*); +extern TIFFReadWriteProc TIFFGetReadProc(TIFF*); +extern TIFFReadWriteProc TIFFGetWriteProc(TIFF*); +extern TIFFSeekProc TIFFGetSeekProc(TIFF*); +extern TIFFCloseProc TIFFGetCloseProc(TIFF*); +extern TIFFSizeProc TIFFGetSizeProc(TIFF*); +extern TIFFMapFileProc TIFFGetMapFileProc(TIFF*); +extern TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF*); +extern uint32 TIFFCurrentRow(TIFF*); +extern uint16 TIFFCurrentDirectory(TIFF*); +extern uint16 TIFFNumberOfDirectories(TIFF*); +extern uint64 TIFFCurrentDirOffset(TIFF*); +extern uint32 TIFFCurrentStrip(TIFF*); +extern uint32 TIFFCurrentTile(TIFF* tif); +extern int TIFFReadBufferSetup(TIFF* tif, void* bp, tmsize_t size); +extern int TIFFWriteBufferSetup(TIFF* tif, void* bp, tmsize_t size); +extern int TIFFSetupStrips(TIFF *); +extern int TIFFWriteCheck(TIFF*, int, const char *); +extern void TIFFFreeDirectory(TIFF*); +extern int TIFFCreateDirectory(TIFF*); +extern int TIFFCreateCustomDirectory(TIFF*,const TIFFFieldArray*); +extern int TIFFCreateEXIFDirectory(TIFF*); +extern int TIFFLastDirectory(TIFF*); +extern int TIFFSetDirectory(TIFF*, uint16); +extern int TIFFSetSubDirectory(TIFF*, uint64); +extern int TIFFUnlinkDirectory(TIFF*, uint16); +extern int TIFFSetField(TIFF*, uint32, ...); +extern int TIFFVSetField(TIFF*, uint32, va_list); +extern int TIFFUnsetField(TIFF*, uint32); +extern int TIFFWriteDirectory(TIFF *); +extern int TIFFWriteCustomDirectory(TIFF *, uint64 *); +extern int TIFFCheckpointDirectory(TIFF *); +extern int TIFFRewriteDirectory(TIFF *); + +#if defined(c_plusplus) || defined(__cplusplus) +extern void TIFFPrintDirectory(TIFF*, FILE*, long = 0); +extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); +extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); +extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0); +extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, + int = ORIENTATION_BOTLEFT, int = 0); +#else +extern void TIFFPrintDirectory(TIFF*, FILE*, long); +extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); +extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); +extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int); +extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, int, int); +#endif + +extern int TIFFReadRGBAStrip(TIFF*, uint32, uint32 * ); +extern int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * ); +extern int TIFFRGBAImageOK(TIFF*, char [1024]); +extern int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]); +extern int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32); +extern void TIFFRGBAImageEnd(TIFFRGBAImage*); +extern TIFF* TIFFOpen(const char*, const char*); +# ifdef __WIN32__ +extern TIFF* TIFFOpenW(const wchar_t*, const char*); +# endif /* __WIN32__ */ +extern TIFF* TIFFFdOpen(int, const char*, const char*); +extern TIFF* TIFFClientOpen(const char*, const char*, + thandle_t, + TIFFReadWriteProc, TIFFReadWriteProc, + TIFFSeekProc, TIFFCloseProc, + TIFFSizeProc, + TIFFMapFileProc, TIFFUnmapFileProc); +extern const char* TIFFFileName(TIFF*); +extern const char* TIFFSetFileName(TIFF*, const char *); +extern void TIFFError(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); +extern void TIFFErrorExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); +extern void TIFFWarning(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); +extern void TIFFWarningExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); +extern TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler); +extern TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt); +extern TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler); +extern TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt); +extern TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc); +extern uint32 TIFFComputeTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); +extern int TIFFCheckTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); +extern uint32 TIFFNumberOfTiles(TIFF*); +extern tmsize_t TIFFReadTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); +extern tmsize_t TIFFWriteTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); +extern uint32 TIFFComputeStrip(TIFF*, uint32, uint16); +extern uint32 TIFFNumberOfStrips(TIFF*); +extern tmsize_t TIFFReadEncodedStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); +extern tmsize_t TIFFReadRawStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); +extern tmsize_t TIFFReadEncodedTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); +extern tmsize_t TIFFReadRawTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); +extern tmsize_t TIFFWriteEncodedStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); +extern tmsize_t TIFFWriteRawStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); +extern tmsize_t TIFFWriteEncodedTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); +extern tmsize_t TIFFWriteRawTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); +extern int TIFFDataWidth(TIFFDataType); /* table of tag datatype widths */ +extern void TIFFSetWriteOffset(TIFF* tif, toff_t off); +extern void TIFFSwabShort(uint16*); +extern void TIFFSwabLong(uint32*); +extern void TIFFSwabLong8(uint64*); +extern void TIFFSwabFloat(float*); +extern void TIFFSwabDouble(double*); +extern void TIFFSwabArrayOfShort(uint16* wp, tmsize_t n); +extern void TIFFSwabArrayOfTriples(uint8* tp, tmsize_t n); +extern void TIFFSwabArrayOfLong(uint32* lp, tmsize_t n); +extern void TIFFSwabArrayOfLong8(uint64* lp, tmsize_t n); +extern void TIFFSwabArrayOfFloat(float* fp, tmsize_t n); +extern void TIFFSwabArrayOfDouble(double* dp, tmsize_t n); +extern void TIFFReverseBits(uint8* cp, tmsize_t n); +extern const unsigned char* TIFFGetBitRevTable(int); + +#ifdef LOGLUV_PUBLIC +#define U_NEU 0.210526316 +#define V_NEU 0.473684211 +#define UVSCALE 410. +extern double LogL16toY(int); +extern double LogL10toY(int); +extern void XYZtoRGB24(float*, uint8*); +extern int uv_decode(double*, double*, int); +extern void LogLuv24toXYZ(uint32, float*); +extern void LogLuv32toXYZ(uint32, float*); +#if defined(c_plusplus) || defined(__cplusplus) +extern int LogL16fromY(double, int = SGILOGENCODE_NODITHER); +extern int LogL10fromY(double, int = SGILOGENCODE_NODITHER); +extern int uv_encode(double, double, int = SGILOGENCODE_NODITHER); +extern uint32 LogLuv24fromXYZ(float*, int = SGILOGENCODE_NODITHER); +extern uint32 LogLuv32fromXYZ(float*, int = SGILOGENCODE_NODITHER); +#else +extern int LogL16fromY(double, int); +extern int LogL10fromY(double, int); +extern int uv_encode(double, double, int); +extern uint32 LogLuv24fromXYZ(float*, int); +extern uint32 LogLuv32fromXYZ(float*, int); +#endif +#endif /* LOGLUV_PUBLIC */ + +extern int TIFFCIELabToRGBInit(TIFFCIELabToRGB*, const TIFFDisplay *, float*); +extern void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32, + float *, float *, float *); +extern void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float, + uint32 *, uint32 *, uint32 *); + +extern int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB*, float*, float*); +extern void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32, + uint32 *, uint32 *, uint32 *); + +/**************************************************************************** + * O B S O L E T E D I N T E R F A C E S + * + * Don't use this stuff in your applications, it may be removed in the future + * libtiff versions. + ****************************************************************************/ +typedef struct { + ttag_t field_tag; /* field's tag */ + short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */ + short field_writecount; /* write count/TIFF_VARIABLE */ + TIFFDataType field_type; /* type of associated data */ + unsigned short field_bit; /* bit in fieldsset bit vector */ + unsigned char field_oktochange; /* if true, can change while writing */ + unsigned char field_passcount; /* if true, pass dir count on set */ + char *field_name; /* ASCII name */ +} TIFFFieldInfo; + +extern int TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], uint32); + +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif + +#endif /* _TIFFIO_ */ + +/* vim: set ts=8 sts=8 sw=8 noet: */ +/* + * Local Variables: + * mode: c + * c-basic-offset: 8 + * fill-column: 78 + * End: + */ diff --git a/ios/include/tiff/tiffvers.h b/ios/include/tiff/tiffvers.h new file mode 100644 index 00000000..40edc813 --- /dev/null +++ b/ios/include/tiff/tiffvers.h @@ -0,0 +1,9 @@ +#define TIFFLIB_VERSION_STR "LIBTIFF, Version 4.0.3\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc." +/* + * This define can be used in code that requires + * compilation-related definitions specific to a + * version or versions of the library. Runtime + * version checking should be done based on the + * string returned by TIFFGetVersion. + */ +#define TIFFLIB_VERSION 20120922 diff --git a/ios/include/webp/decode.h b/ios/include/webp/decode.h new file mode 100755 index 00000000..43b6c58f --- /dev/null +++ b/ios/include/webp/decode.h @@ -0,0 +1,454 @@ +// Copyright 2010 Google Inc. All Rights Reserved. +// +// This code is licensed under the same terms as WebM: +// Software License Agreement: http://www.webmproject.org/license/software/ +// Additional IP Rights Grant: http://www.webmproject.org/license/additional/ +// ----------------------------------------------------------------------------- +// +// Main decoding functions for WebP images. +// +// Author: Skal (pascal.massimino@gmail.com) + +#ifndef WEBP_WEBP_DECODE_H_ +#define WEBP_WEBP_DECODE_H_ + +#include "./types.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define WEBP_DECODER_ABI_VERSION 0x0200 // MAJOR(8b) + MINOR(8b) + +// Return the decoder's version number, packed in hexadecimal using 8bits for +// each of major/minor/revision. E.g: v2.5.7 is 0x020507. +WEBP_EXTERN(int) WebPGetDecoderVersion(void); + +// Retrieve basic header information: width, height. +// This function will also validate the header and return 0 in +// case of formatting error. +// Pointers 'width' and 'height' can be passed NULL if deemed irrelevant. +WEBP_EXTERN(int) WebPGetInfo(const uint8_t* data, size_t data_size, + int* width, int* height); + +// Decodes WebP images pointed to by 'data' and returns RGBA samples, along +// with the dimensions in *width and *height. The ordering of samples in +// memory is R, G, B, A, R, G, B, A... in scan order (endian-independent). +// The returned pointer should be deleted calling free(). +// Returns NULL in case of error. +WEBP_EXTERN(uint8_t*) WebPDecodeRGBA(const uint8_t* data, size_t data_size, + int* width, int* height); + +// Same as WebPDecodeRGBA, but returning A, R, G, B, A, R, G, B... ordered data. +WEBP_EXTERN(uint8_t*) WebPDecodeARGB(const uint8_t* data, size_t data_size, + int* width, int* height); + +// Same as WebPDecodeRGBA, but returning B, G, R, A, B, G, R, A... ordered data. +WEBP_EXTERN(uint8_t*) WebPDecodeBGRA(const uint8_t* data, size_t data_size, + int* width, int* height); + +// Same as WebPDecodeRGBA, but returning R, G, B, R, G, B... ordered data. +// If the bitstream contains transparency, it is ignored. +WEBP_EXTERN(uint8_t*) WebPDecodeRGB(const uint8_t* data, size_t data_size, + int* width, int* height); + +// Same as WebPDecodeRGB, but returning B, G, R, B, G, R... ordered data. +WEBP_EXTERN(uint8_t*) WebPDecodeBGR(const uint8_t* data, size_t data_size, + int* width, int* height); + + +// Decode WebP images pointed to by 'data' to Y'UV format(*). The pointer +// returned is the Y samples buffer. Upon return, *u and *v will point to +// the U and V chroma data. These U and V buffers need NOT be free()'d, +// unlike the returned Y luma one. The dimension of the U and V planes +// are both (*width + 1) / 2 and (*height + 1)/ 2. +// Upon return, the Y buffer has a stride returned as '*stride', while U and V +// have a common stride returned as '*uv_stride'. +// Return NULL in case of error. +// (*) Also named Y'CbCr. See: http://en.wikipedia.org/wiki/YCbCr +WEBP_EXTERN(uint8_t*) WebPDecodeYUV(const uint8_t* data, size_t data_size, + int* width, int* height, + uint8_t** u, uint8_t** v, + int* stride, int* uv_stride); + +// These five functions are variants of the above ones, that decode the image +// directly into a pre-allocated buffer 'output_buffer'. The maximum storage +// available in this buffer is indicated by 'output_buffer_size'. If this +// storage is not sufficient (or an error occurred), NULL is returned. +// Otherwise, output_buffer is returned, for convenience. +// The parameter 'output_stride' specifies the distance (in bytes) +// between scanlines. Hence, output_buffer_size is expected to be at least +// output_stride x picture-height. +WEBP_EXTERN(uint8_t*) WebPDecodeRGBAInto( + const uint8_t* data, size_t data_size, + uint8_t* output_buffer, size_t output_buffer_size, int output_stride); +WEBP_EXTERN(uint8_t*) WebPDecodeARGBInto( + const uint8_t* data, size_t data_size, + uint8_t* output_buffer, size_t output_buffer_size, int output_stride); +WEBP_EXTERN(uint8_t*) WebPDecodeBGRAInto( + const uint8_t* data, size_t data_size, + uint8_t* output_buffer, size_t output_buffer_size, int output_stride); + +// RGB and BGR variants. Here too the transparency information, if present, +// will be dropped and ignored. +WEBP_EXTERN(uint8_t*) WebPDecodeRGBInto( + const uint8_t* data, size_t data_size, + uint8_t* output_buffer, size_t output_buffer_size, int output_stride); +WEBP_EXTERN(uint8_t*) WebPDecodeBGRInto( + const uint8_t* data, size_t data_size, + uint8_t* output_buffer, size_t output_buffer_size, int output_stride); + +// WebPDecodeYUVInto() is a variant of WebPDecodeYUV() that operates directly +// into pre-allocated luma/chroma plane buffers. This function requires the +// strides to be passed: one for the luma plane and one for each of the +// chroma ones. The size of each plane buffer is passed as 'luma_size', +// 'u_size' and 'v_size' respectively. +// Pointer to the luma plane ('*luma') is returned or NULL if an error occurred +// during decoding (or because some buffers were found to be too small). +WEBP_EXTERN(uint8_t*) WebPDecodeYUVInto( + const uint8_t* data, size_t data_size, + uint8_t* luma, size_t luma_size, int luma_stride, + uint8_t* u, size_t u_size, int u_stride, + uint8_t* v, size_t v_size, int v_stride); + +//------------------------------------------------------------------------------ +// Output colorspaces and buffer + +// Colorspaces +// Note: the naming describes the byte-ordering of packed samples in memory. +// For instance, MODE_BGRA relates to samples ordered as B,G,R,A,B,G,R,A,... +// Non-capital names (e.g.:MODE_Argb) relates to pre-multiplied RGB channels. +// RGB-565 and RGBA-4444 are also endian-agnostic and byte-oriented. +typedef enum { MODE_RGB = 0, MODE_RGBA = 1, + MODE_BGR = 2, MODE_BGRA = 3, + MODE_ARGB = 4, MODE_RGBA_4444 = 5, + MODE_RGB_565 = 6, + // RGB-premultiplied transparent modes (alpha value is preserved) + MODE_rgbA = 7, + MODE_bgrA = 8, + MODE_Argb = 9, + MODE_rgbA_4444 = 10, + // YUV modes must come after RGB ones. + MODE_YUV = 11, MODE_YUVA = 12, // yuv 4:2:0 + MODE_LAST = 13 + } WEBP_CSP_MODE; + +// Some useful macros: +static WEBP_INLINE int WebPIsPremultipliedMode(WEBP_CSP_MODE mode) { + return (mode == MODE_rgbA || mode == MODE_bgrA || mode == MODE_Argb || + mode == MODE_rgbA_4444); +} + +static WEBP_INLINE int WebPIsAlphaMode(WEBP_CSP_MODE mode) { + return (mode == MODE_RGBA || mode == MODE_BGRA || mode == MODE_ARGB || + mode == MODE_RGBA_4444 || mode == MODE_YUVA || + WebPIsPremultipliedMode(mode)); +} + +static WEBP_INLINE int WebPIsRGBMode(WEBP_CSP_MODE mode) { + return (mode < MODE_YUV); +} + +//------------------------------------------------------------------------------ +// WebPDecBuffer: Generic structure for describing the output sample buffer. + +typedef struct { // view as RGBA + uint8_t* rgba; // pointer to RGBA samples + int stride; // stride in bytes from one scanline to the next. + size_t size; // total size of the *rgba buffer. +} WebPRGBABuffer; + +typedef struct { // view as YUVA + uint8_t* y, *u, *v, *a; // pointer to luma, chroma U/V, alpha samples + int y_stride; // luma stride + int u_stride, v_stride; // chroma strides + int a_stride; // alpha stride + size_t y_size; // luma plane size + size_t u_size, v_size; // chroma planes size + size_t a_size; // alpha-plane size +} WebPYUVABuffer; + +// Output buffer +typedef struct { + WEBP_CSP_MODE colorspace; // Colorspace. + int width, height; // Dimensions. + int is_external_memory; // If true, 'internal_memory' pointer is not used. + union { + WebPRGBABuffer RGBA; + WebPYUVABuffer YUVA; + } u; // Nameless union of buffer parameters. + uint32_t pad[4]; // padding for later use + + uint8_t* private_memory; // Internally allocated memory (only when + // is_external_memory is false). Should not be used + // externally, but accessed via the buffer union. +} WebPDecBuffer; + +// Internal, version-checked, entry point +WEBP_EXTERN(int) WebPInitDecBufferInternal(WebPDecBuffer*, int); + +// Initialize the structure as empty. Must be called before any other use. +// Returns false in case of version mismatch +static WEBP_INLINE int WebPInitDecBuffer(WebPDecBuffer* buffer) { + return WebPInitDecBufferInternal(buffer, WEBP_DECODER_ABI_VERSION); +} + +// Free any memory associated with the buffer. Must always be called last. +// Note: doesn't free the 'buffer' structure itself. +WEBP_EXTERN(void) WebPFreeDecBuffer(WebPDecBuffer* buffer); + +//------------------------------------------------------------------------------ +// Enumeration of the status codes + +typedef enum { + VP8_STATUS_OK = 0, + VP8_STATUS_OUT_OF_MEMORY, + VP8_STATUS_INVALID_PARAM, + VP8_STATUS_BITSTREAM_ERROR, + VP8_STATUS_UNSUPPORTED_FEATURE, + VP8_STATUS_SUSPENDED, + VP8_STATUS_USER_ABORT, + VP8_STATUS_NOT_ENOUGH_DATA +} VP8StatusCode; + +//------------------------------------------------------------------------------ +// Incremental decoding +// +// This API allows streamlined decoding of partial data. +// Picture can be incrementally decoded as data become available thanks to the +// WebPIDecoder object. This object can be left in a SUSPENDED state if the +// picture is only partially decoded, pending additional input. +// Code example: +// +// WebPInitDecBuffer(&buffer); +// buffer.colorspace = mode; +// ... +// WebPIDecoder* idec = WebPINewDecoder(&buffer); +// while (has_more_data) { +// // ... (get additional data) +// status = WebPIAppend(idec, new_data, new_data_size); +// if (status != VP8_STATUS_SUSPENDED || +// break; +// } +// +// // The above call decodes the current available buffer. +// // Part of the image can now be refreshed by calling to +// // WebPIDecGetRGB()/WebPIDecGetYUVA() etc. +// } +// WebPIDelete(idec); + +typedef struct WebPIDecoder WebPIDecoder; + +// Creates a new incremental decoder with the supplied buffer parameter. +// This output_buffer can be passed NULL, in which case a default output buffer +// is used (with MODE_RGB). Otherwise, an internal reference to 'output_buffer' +// is kept, which means that the lifespan of 'output_buffer' must be larger than +// that of the returned WebPIDecoder object. +// Returns NULL if the allocation failed. +WEBP_EXTERN(WebPIDecoder*) WebPINewDecoder(WebPDecBuffer* output_buffer); + +// This function allocates and initializes an incremental-decoder object, which +// will output the RGB/A samples specified by 'csp' into a preallocated +// buffer 'output_buffer'. The size of this buffer is at least +// 'output_buffer_size' and the stride (distance in bytes between two scanlines) +// is specified by 'output_stride'. Returns NULL if the allocation failed. +WEBP_EXTERN(WebPIDecoder*) WebPINewRGB( + WEBP_CSP_MODE csp, + uint8_t* output_buffer, size_t output_buffer_size, int output_stride); + +// This function allocates and initializes an incremental-decoder object, which +// will output the raw luma/chroma samples into a preallocated planes. The luma +// plane is specified by its pointer 'luma', its size 'luma_size' and its stride +// 'luma_stride'. Similarly, the chroma-u plane is specified by the 'u', +// 'u_size' and 'u_stride' parameters, and the chroma-v plane by 'v' +// and 'v_size'. And same for the alpha-plane. The 'a' pointer can be pass +// NULL in case one is not interested in the transparency plane. +// Returns NULL if the allocation failed. +WEBP_EXTERN(WebPIDecoder*) WebPINewYUVA( + uint8_t* luma, size_t luma_size, int luma_stride, + uint8_t* u, size_t u_size, int u_stride, + uint8_t* v, size_t v_size, int v_stride, + uint8_t* a, size_t a_size, int a_stride); + +// Deprecated version of the above, without the alpha plane. +// Kept for backward compatibility. +WEBP_EXTERN(WebPIDecoder*) WebPINewYUV( + uint8_t* luma, size_t luma_size, int luma_stride, + uint8_t* u, size_t u_size, int u_stride, + uint8_t* v, size_t v_size, int v_stride); + +// Deletes the WebPIDecoder object and associated memory. Must always be called +// if WebPINewDecoder, WebPINewRGB or WebPINewYUV succeeded. +WEBP_EXTERN(void) WebPIDelete(WebPIDecoder* idec); + +// Copies and decodes the next available data. Returns VP8_STATUS_OK when +// the image is successfully decoded. Returns VP8_STATUS_SUSPENDED when more +// data is expected. Returns error in other cases. +WEBP_EXTERN(VP8StatusCode) WebPIAppend( + WebPIDecoder* idec, const uint8_t* data, size_t data_size); + +// A variant of the above function to be used when data buffer contains +// partial data from the beginning. In this case data buffer is not copied +// to the internal memory. +// Note that the value of the 'data' pointer can change between calls to +// WebPIUpdate, for instance when the data buffer is resized to fit larger data. +WEBP_EXTERN(VP8StatusCode) WebPIUpdate( + WebPIDecoder* idec, const uint8_t* data, size_t data_size); + +// Returns the RGB/A image decoded so far. Returns NULL if output params +// are not initialized yet. The RGB/A output type corresponds to the colorspace +// specified during call to WebPINewDecoder() or WebPINewRGB(). +// *last_y is the index of last decoded row in raster scan order. Some pointers +// (*last_y, *width etc.) can be NULL if corresponding information is not +// needed. +WEBP_EXTERN(uint8_t*) WebPIDecGetRGB( + const WebPIDecoder* idec, int* last_y, + int* width, int* height, int* stride); + +// Same as above function to get a YUVA image. Returns pointer to the luma +// plane or NULL in case of error. If there is no alpha information +// the alpha pointer '*a' will be returned NULL. +WEBP_EXTERN(uint8_t*) WebPIDecGetYUVA( + const WebPIDecoder* idec, int* last_y, + uint8_t** u, uint8_t** v, uint8_t** a, + int* width, int* height, int* stride, int* uv_stride, int* a_stride); + +// Deprecated alpha-less version of WebPIDecGetYUVA(): it will ignore the +// alpha information (if present). Kept for backward compatibility. +static WEBP_INLINE uint8_t* WebPIDecGetYUV( + const WebPIDecoder* idec, int* last_y, uint8_t** u, uint8_t** v, + int* width, int* height, int* stride, int* uv_stride) { + return WebPIDecGetYUVA(idec, last_y, u, v, NULL, width, height, + stride, uv_stride, NULL); +} + +// Generic call to retrieve information about the displayable area. +// If non NULL, the left/right/width/height pointers are filled with the visible +// rectangular area so far. +// Returns NULL in case the incremental decoder object is in an invalid state. +// Otherwise returns the pointer to the internal representation. This structure +// is read-only, tied to WebPIDecoder's lifespan and should not be modified. +WEBP_EXTERN(const WebPDecBuffer*) WebPIDecodedArea( + const WebPIDecoder* idec, int* left, int* top, int* width, int* height); + +//------------------------------------------------------------------------------ +// Advanced decoding parametrization +// +// Code sample for using the advanced decoding API +/* + // A) Init a configuration object + WebPDecoderConfig config; + CHECK(WebPInitDecoderConfig(&config)); + + // B) optional: retrieve the bitstream's features. + CHECK(WebPGetFeatures(data, data_size, &config.input) == VP8_STATUS_OK); + + // C) Adjust 'config', if needed + config.no_fancy = 1; + config.output.colorspace = MODE_BGRA; + // etc. + + // Note that you can also make config.output point to an externally + // supplied memory buffer, provided it's big enough to store the decoded + // picture. Otherwise, config.output will just be used to allocate memory + // and store the decoded picture. + + // D) Decode! + CHECK(WebPDecode(data, data_size, &config) == VP8_STATUS_OK); + + // E) Decoded image is now in config.output (and config.output.u.RGBA) + + // F) Reclaim memory allocated in config's object. It's safe to call + // this function even if the memory is external and wasn't allocated + // by WebPDecode(). + WebPFreeDecBuffer(&config.output); +*/ + +// Features gathered from the bitstream +typedef struct { + int width; // Width in pixels, as read from the bitstream. + int height; // Height in pixels, as read from the bitstream. + int has_alpha; // True if the bitstream contains an alpha channel. + + // Unused for now: + int bitstream_version; // should be 0 for now. TODO(later) + int no_incremental_decoding; // if true, using incremental decoding is not + // recommended. + int rotate; // TODO(later) + int uv_sampling; // should be 0 for now. TODO(later) + uint32_t pad[3]; // padding for later use +} WebPBitstreamFeatures; + +// Internal, version-checked, entry point +WEBP_EXTERN(VP8StatusCode) WebPGetFeaturesInternal( + const uint8_t*, size_t, WebPBitstreamFeatures*, int); + +// Retrieve features from the bitstream. The *features structure is filled +// with information gathered from the bitstream. +// Returns false in case of error or version mismatch. +// In case of error, features->bitstream_status will reflect the error code. +static WEBP_INLINE VP8StatusCode WebPGetFeatures( + const uint8_t* data, size_t data_size, + WebPBitstreamFeatures* features) { + return WebPGetFeaturesInternal(data, data_size, features, + WEBP_DECODER_ABI_VERSION); +} + +// Decoding options +typedef struct { + int bypass_filtering; // if true, skip the in-loop filtering + int no_fancy_upsampling; // if true, use faster pointwise upsampler + int use_cropping; // if true, cropping is applied _first_ + int crop_left, crop_top; // top-left position for cropping. + // Will be snapped to even values. + int crop_width, crop_height; // dimension of the cropping area + int use_scaling; // if true, scaling is applied _afterward_ + int scaled_width, scaled_height; // final resolution + int use_threads; // if true, use multi-threaded decoding + + // Unused for now: + int force_rotation; // forced rotation (to be applied _last_) + int no_enhancement; // if true, discard enhancement layer + uint32_t pad[6]; // padding for later use +} WebPDecoderOptions; + +// Main object storing the configuration for advanced decoding. +typedef struct { + WebPBitstreamFeatures input; // Immutable bitstream features (optional) + WebPDecBuffer output; // Output buffer (can point to external mem) + WebPDecoderOptions options; // Decoding options +} WebPDecoderConfig; + +// Internal, version-checked, entry point +WEBP_EXTERN(int) WebPInitDecoderConfigInternal(WebPDecoderConfig*, int); + +// Initialize the configuration as empty. This function must always be +// called first, unless WebPGetFeatures() is to be called. +// Returns false in case of mismatched version. +static WEBP_INLINE int WebPInitDecoderConfig(WebPDecoderConfig* config) { + return WebPInitDecoderConfigInternal(config, WEBP_DECODER_ABI_VERSION); +} + +// Instantiate a new incremental decoder object with the requested +// configuration. The bitstream can be passed using 'data' and 'data_size' +// parameter, in which case the features will be parsed and stored into +// config->input. Otherwise, 'data' can be NULL and no parsing will occur. +// Note that 'config' can be NULL too, in which case a default configuration +// is used. +// The return WebPIDecoder object must always be deleted calling WebPIDelete(). +// Returns NULL in case of error (and config->status will then reflect +// the error condition). +WEBP_EXTERN(WebPIDecoder*) WebPIDecode(const uint8_t* data, size_t data_size, + WebPDecoderConfig* config); + +// Non-incremental version. This version decodes the full data at once, taking +// 'config' into account. Returns decoding status (which should be VP8_STATUS_OK +// if the decoding was successful). +WEBP_EXTERN(VP8StatusCode) WebPDecode(const uint8_t* data, size_t data_size, + WebPDecoderConfig* config); + +#if defined(__cplusplus) || defined(c_plusplus) +} // extern "C" +#endif + +#endif /* WEBP_WEBP_DECODE_H_ */ diff --git a/ios/include/webp/encode.h b/ios/include/webp/encode.h new file mode 100755 index 00000000..2e37cfab --- /dev/null +++ b/ios/include/webp/encode.h @@ -0,0 +1,463 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// +// This code is licensed under the same terms as WebM: +// Software License Agreement: http://www.webmproject.org/license/software/ +// Additional IP Rights Grant: http://www.webmproject.org/license/additional/ +// ----------------------------------------------------------------------------- +// +// WebP encoder: main interface +// +// Author: Skal (pascal.massimino@gmail.com) + +#ifndef WEBP_WEBP_ENCODE_H_ +#define WEBP_WEBP_ENCODE_H_ + +#include "./types.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define WEBP_ENCODER_ABI_VERSION 0x0200 // MAJOR(8b) + MINOR(8b) + +// Return the encoder's version number, packed in hexadecimal using 8bits for +// each of major/minor/revision. E.g: v2.5.7 is 0x020507. +WEBP_EXTERN(int) WebPGetEncoderVersion(void); + +//------------------------------------------------------------------------------ +// One-stop-shop call! No questions asked: + +// Returns the size of the compressed data (pointed to by *output), or 0 if +// an error occurred. The compressed data must be released by the caller +// using the call 'free(*output)'. +// These functions compress using the lossy format, and the quality_factor +// can go from 0 (smaller output, lower quality) to 100 (best quality, +// larger output). +WEBP_EXTERN(size_t) WebPEncodeRGB(const uint8_t* rgb, + int width, int height, int stride, + float quality_factor, uint8_t** output); +WEBP_EXTERN(size_t) WebPEncodeBGR(const uint8_t* bgr, + int width, int height, int stride, + float quality_factor, uint8_t** output); +WEBP_EXTERN(size_t) WebPEncodeRGBA(const uint8_t* rgba, + int width, int height, int stride, + float quality_factor, uint8_t** output); +WEBP_EXTERN(size_t) WebPEncodeBGRA(const uint8_t* bgra, + int width, int height, int stride, + float quality_factor, uint8_t** output); + +// These functions are the equivalent of the above, but compressing in a +// lossless manner. Files are usually larger than lossy format, but will +// not suffer any compression loss. +WEBP_EXTERN(size_t) WebPEncodeLosslessRGB(const uint8_t* rgb, + int width, int height, int stride, + uint8_t** output); +WEBP_EXTERN(size_t) WebPEncodeLosslessBGR(const uint8_t* bgr, + int width, int height, int stride, + uint8_t** output); +WEBP_EXTERN(size_t) WebPEncodeLosslessRGBA(const uint8_t* rgba, + int width, int height, int stride, + uint8_t** output); +WEBP_EXTERN(size_t) WebPEncodeLosslessBGRA(const uint8_t* bgra, + int width, int height, int stride, + uint8_t** output); + +//------------------------------------------------------------------------------ +// Coding parameters + +// Image characteristics hint for the underlying encoder. +typedef enum { + WEBP_HINT_DEFAULT = 0, // default preset. + WEBP_HINT_PICTURE, // digital picture, like portrait, inner shot + WEBP_HINT_PHOTO, // outdoor photograph, with natural lighting + WEBP_HINT_GRAPH, // Discrete tone image (graph, map-tile etc). + WEBP_HINT_LAST +} WebPImageHint; + +typedef struct { + int lossless; // Lossless encoding (0=lossy(default), 1=lossless). + float quality; // between 0 (smallest file) and 100 (biggest) + int method; // quality/speed trade-off (0=fast, 6=slower-better) + + WebPImageHint image_hint; // Hint for image type (lossless only for now). + + // Parameters related to lossy compression only: + int target_size; // if non-zero, set the desired target size in bytes. + // Takes precedence over the 'compression' parameter. + float target_PSNR; // if non-zero, specifies the minimal distortion to + // try to achieve. Takes precedence over target_size. + int segments; // maximum number of segments to use, in [1..4] + int sns_strength; // Spatial Noise Shaping. 0=off, 100=maximum. + int filter_strength; // range: [0 = off .. 100 = strongest] + int filter_sharpness; // range: [0 = off .. 7 = least sharp] + int filter_type; // filtering type: 0 = simple, 1 = strong (only used + // if filter_strength > 0 or autofilter > 0) + int autofilter; // Auto adjust filter's strength [0 = off, 1 = on] + int alpha_compression; // Algorithm for encoding the alpha plane (0 = none, + // 1 = compressed with WebP lossless). Default is 1. + int alpha_filtering; // Predictive filtering method for alpha plane. + // 0: none, 1: fast, 2: best. Default if 1. + int alpha_quality; // Between 0 (smallest size) and 100 (lossless). + // Default is 100. + int pass; // number of entropy-analysis passes (in [1..10]). + + int show_compressed; // if true, export the compressed picture back. + // In-loop filtering is not applied. + int preprocessing; // preprocessing filter (0=none, 1=segment-smooth) + int partitions; // log2(number of token partitions) in [0..3]. Default + // is set to 0 for easier progressive decoding. + int partition_limit; // quality degradation allowed to fit the 512k limit + // on prediction modes coding (0: no degradation, + // 100: maximum possible degradation). + + uint32_t pad[8]; // padding for later use +} WebPConfig; + +// Enumerate some predefined settings for WebPConfig, depending on the type +// of source picture. These presets are used when calling WebPConfigPreset(). +typedef enum { + WEBP_PRESET_DEFAULT = 0, // default preset. + WEBP_PRESET_PICTURE, // digital picture, like portrait, inner shot + WEBP_PRESET_PHOTO, // outdoor photograph, with natural lighting + WEBP_PRESET_DRAWING, // hand or line drawing, with high-contrast details + WEBP_PRESET_ICON, // small-sized colorful images + WEBP_PRESET_TEXT // text-like +} WebPPreset; + +// Internal, version-checked, entry point +WEBP_EXTERN(int) WebPConfigInitInternal(WebPConfig*, WebPPreset, float, int); + +// Should always be called, to initialize a fresh WebPConfig structure before +// modification. Returns false in case of version mismatch. WebPConfigInit() +// must have succeeded before using the 'config' object. +// Note that the default values are lossless=0 and quality=75. +static WEBP_INLINE int WebPConfigInit(WebPConfig* config) { + return WebPConfigInitInternal(config, WEBP_PRESET_DEFAULT, 75.f, + WEBP_ENCODER_ABI_VERSION); +} + +// This function will initialize the configuration according to a predefined +// set of parameters (referred to by 'preset') and a given quality factor. +// This function can be called as a replacement to WebPConfigInit(). Will +// return false in case of error. +static WEBP_INLINE int WebPConfigPreset(WebPConfig* config, + WebPPreset preset, float quality) { + return WebPConfigInitInternal(config, preset, quality, + WEBP_ENCODER_ABI_VERSION); +} + +// Returns true if 'config' is non-NULL and all configuration parameters are +// within their valid ranges. +WEBP_EXTERN(int) WebPValidateConfig(const WebPConfig* config); + +//------------------------------------------------------------------------------ +// Input / Output + +typedef struct WebPPicture WebPPicture; // main structure for I/O + +// Structure for storing auxiliary statistics (mostly for lossy encoding). +typedef struct { + int coded_size; // final size + + float PSNR[5]; // peak-signal-to-noise ratio for Y/U/V/All/Alpha + int block_count[3]; // number of intra4/intra16/skipped macroblocks + int header_bytes[2]; // approximate number of bytes spent for header + // and mode-partition #0 + int residual_bytes[3][4]; // approximate number of bytes spent for + // DC/AC/uv coefficients for each (0..3) segments. + int segment_size[4]; // number of macroblocks in each segments + int segment_quant[4]; // quantizer values for each segments + int segment_level[4]; // filtering strength for each segments [0..63] + + int alpha_data_size; // size of the transparency data + int layer_data_size; // size of the enhancement layer data + + // lossless encoder statistics + uint32_t lossless_features; // bit0:predictor bit1:cross-color transform + // bit2:subtract-green bit3:color indexing + int histogram_bits; // number of precision bits of histogram + int transform_bits; // precision bits for transform + int cache_bits; // number of bits for color cache lookup + int palette_size; // number of color in palette, if used + int lossless_size; // final lossless size + + uint32_t pad[4]; // padding for later use +} WebPAuxStats; + +// Signature for output function. Should return true if writing was successful. +// data/data_size is the segment of data to write, and 'picture' is for +// reference (and so one can make use of picture->custom_ptr). +typedef int (*WebPWriterFunction)(const uint8_t* data, size_t data_size, + const WebPPicture* picture); + +// WebPMemoryWrite: a special WebPWriterFunction that writes to memory using +// the following WebPMemoryWriter object (to be set as a custom_ptr). +typedef struct { + uint8_t* mem; // final buffer (of size 'max_size', larger than 'size'). + size_t size; // final size + size_t max_size; // total capacity + uint32_t pad[1]; // padding for later use +} WebPMemoryWriter; + +// The following must be called first before any use. +WEBP_EXTERN(void) WebPMemoryWriterInit(WebPMemoryWriter* writer); + +// The custom writer to be used with WebPMemoryWriter as custom_ptr. Upon +// completion, writer.mem and writer.size will hold the coded data. +WEBP_EXTERN(int) WebPMemoryWrite(const uint8_t* data, size_t data_size, + const WebPPicture* picture); + +// Progress hook, called from time to time to report progress. It can return +// false to request an abort of the encoding process, or true otherwise if +// everything is OK. +typedef int (*WebPProgressHook)(int percent, const WebPPicture* picture); + +typedef enum { + // chroma sampling + WEBP_YUV420 = 0, // 4:2:0 + WEBP_YUV422 = 1, // 4:2:2 + WEBP_YUV444 = 2, // 4:4:4 + WEBP_YUV400 = 3, // grayscale + WEBP_CSP_UV_MASK = 3, // bit-mask to get the UV sampling factors + // alpha channel variants + WEBP_YUV420A = 4, + WEBP_YUV422A = 5, + WEBP_YUV444A = 6, + WEBP_YUV400A = 7, // grayscale + alpha + WEBP_CSP_ALPHA_BIT = 4 // bit that is set if alpha is present +} WebPEncCSP; + +// Encoding error conditions. +typedef enum { + VP8_ENC_OK = 0, + VP8_ENC_ERROR_OUT_OF_MEMORY, // memory error allocating objects + VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY, // memory error while flushing bits + VP8_ENC_ERROR_NULL_PARAMETER, // a pointer parameter is NULL + VP8_ENC_ERROR_INVALID_CONFIGURATION, // configuration is invalid + VP8_ENC_ERROR_BAD_DIMENSION, // picture has invalid width/height + VP8_ENC_ERROR_PARTITION0_OVERFLOW, // partition is bigger than 512k + VP8_ENC_ERROR_PARTITION_OVERFLOW, // partition is bigger than 16M + VP8_ENC_ERROR_BAD_WRITE, // error while flushing bytes + VP8_ENC_ERROR_FILE_TOO_BIG, // file is bigger than 4G + VP8_ENC_ERROR_USER_ABORT, // abort request by user + VP8_ENC_ERROR_LAST // list terminator. always last. +} WebPEncodingError; + +// maximum width/height allowed (inclusive), in pixels +#define WEBP_MAX_DIMENSION 16383 + +// Main exchange structure (input samples, output bytes, statistics) +struct WebPPicture { + + // INPUT + ////////////// + // Main flag for encoder selecting between ARGB or YUV input. + // It is recommended to use ARGB input (*argb, argb_stride) for lossless + // compression, and YUV input (*y, *u, *v, etc.) for lossy compression + // since these are the respective native colorspace for these formats. + int use_argb; + + // YUV input (mostly used for input to lossy compression) + WebPEncCSP colorspace; // colorspace: should be YUV420 for now (=Y'CbCr). + int width, height; // dimensions (less or equal to WEBP_MAX_DIMENSION) + uint8_t *y, *u, *v; // pointers to luma/chroma planes. + int y_stride, uv_stride; // luma/chroma strides. + uint8_t* a; // pointer to the alpha plane + int a_stride; // stride of the alpha plane + uint32_t pad1[2]; // padding for later use + + // ARGB input (mostly used for input to lossless compression) + uint32_t* argb; // Pointer to argb (32 bit) plane. + int argb_stride; // This is stride in pixels units, not bytes. + uint32_t pad2[3]; // padding for later use + + // OUTPUT + /////////////// + // Byte-emission hook, to store compressed bytes as they are ready. + WebPWriterFunction writer; // can be NULL + void* custom_ptr; // can be used by the writer. + + // map for extra information (only for lossy compression mode) + int extra_info_type; // 1: intra type, 2: segment, 3: quant + // 4: intra-16 prediction mode, + // 5: chroma prediction mode, + // 6: bit cost, 7: distortion + uint8_t* extra_info; // if not NULL, points to an array of size + // ((width + 15) / 16) * ((height + 15) / 16) that + // will be filled with a macroblock map, depending + // on extra_info_type. + + // STATS AND REPORTS + /////////////////////////// + // Pointer to side statistics (updated only if not NULL) + WebPAuxStats* stats; + + // Error code for the latest error encountered during encoding + WebPEncodingError error_code; + + // If not NULL, report progress during encoding. + WebPProgressHook progress_hook; + + void* user_data; // this field is free to be set to any value and + // used during callbacks (like progress-report e.g.). + + uint32_t pad3[3]; // padding for later use + + // Unused for now: original samples (for non-YUV420 modes) + uint8_t *u0, *v0; + int uv0_stride; + + uint32_t pad4[7]; // padding for later use + + // PRIVATE FIELDS + //////////////////// + void* memory_; // row chunk of memory for yuva planes + void* memory_argb_; // and for argb too. + void* pad5[2]; // padding for later use +}; + +// Internal, version-checked, entry point +WEBP_EXTERN(int) WebPPictureInitInternal(WebPPicture*, int); + +// Should always be called, to initialize the structure. Returns false in case +// of version mismatch. WebPPictureInit() must have succeeded before using the +// 'picture' object. +// Note that, by default, use_argb is false and colorspace is WEBP_YUV420. +static WEBP_INLINE int WebPPictureInit(WebPPicture* picture) { + return WebPPictureInitInternal(picture, WEBP_ENCODER_ABI_VERSION); +} + +//------------------------------------------------------------------------------ +// WebPPicture utils + +// Convenience allocation / deallocation based on picture->width/height: +// Allocate y/u/v buffers as per colorspace/width/height specification. +// Note! This function will free the previous buffer if needed. +// Returns false in case of memory error. +WEBP_EXTERN(int) WebPPictureAlloc(WebPPicture* picture); + +// Release the memory allocated by WebPPictureAlloc() or WebPPictureImport*(). +// Note that this function does _not_ free the memory used by the 'picture' +// object itself. +// Besides memory (which is reclaimed) all other fields of 'picture' are +// preserved. +WEBP_EXTERN(void) WebPPictureFree(WebPPicture* picture); + +// Copy the pixels of *src into *dst, using WebPPictureAlloc. Upon return, +// *dst will fully own the copied pixels (this is not a view). +// Returns false in case of memory allocation error. +WEBP_EXTERN(int) WebPPictureCopy(const WebPPicture* src, WebPPicture* dst); + +// Compute PSNR or SSIM distortion between two pictures. +// Result is in dB, stores in result[] in the Y/U/V/Alpha/All order. +// Returns false in case of error (pic1 and pic2 don't have same dimension, ...) +// Warning: this function is rather CPU-intensive. +WEBP_EXTERN(int) WebPPictureDistortion( + const WebPPicture* pic1, const WebPPicture* pic2, + int metric_type, // 0 = PSNR, 1 = SSIM + float result[5]); + +// self-crops a picture to the rectangle defined by top/left/width/height. +// Returns false in case of memory allocation error, or if the rectangle is +// outside of the source picture. +// The rectangle for the view is defined by the top-left corner pixel +// coordinates (left, top) as well as its width and height. This rectangle +// must be fully be comprised inside the 'src' source picture. If the source +// picture uses the YUV420 colorspace, the top and left coordinates will be +// snapped to even values. +WEBP_EXTERN(int) WebPPictureCrop(WebPPicture* picture, + int left, int top, int width, int height); + +// Extracts a view from 'src' picture into 'dst'. The rectangle for the view +// is defined by the top-left corner pixel coordinates (left, top) as well +// as its width and height. This rectangle must be fully be comprised inside +// the 'src' source picture. If the source picture uses the YUV420 colorspace, +// the top and left coordinates will be snapped to even values. +// Picture 'src' must out-live 'dst' picture. Self-extraction of view is allowed +// ('src' equal to 'dst') as a mean of fast-cropping (but note that doing so, +// the original dimension will be lost). +// Returns false in case of memory allocation error or invalid parameters. +WEBP_EXTERN(int) WebPPictureView(const WebPPicture* src, + int left, int top, int width, int height, + WebPPicture* dst); + +// Returns true if the 'picture' is actually a view and therefore does +// not own the memory for pixels. +WEBP_EXTERN(int) WebPPictureIsView(const WebPPicture* picture); + +// Rescale a picture to new dimension width x height. +// Now gamma correction is applied. +// Returns false in case of error (invalid parameter or insufficient memory). +WEBP_EXTERN(int) WebPPictureRescale(WebPPicture* pic, int width, int height); + +// Colorspace conversion function to import RGB samples. +// Previous buffer will be free'd, if any. +// *rgb buffer should have a size of at least height * rgb_stride. +// Returns false in case of memory error. +WEBP_EXTERN(int) WebPPictureImportRGB( + WebPPicture* picture, const uint8_t* rgb, int rgb_stride); +// Same, but for RGBA buffer. +WEBP_EXTERN(int) WebPPictureImportRGBA( + WebPPicture* picture, const uint8_t* rgba, int rgba_stride); +// Same, but for RGBA buffer. Imports the RGB direct from the 32-bit format +// input buffer ignoring the alpha channel. Avoids needing to copy the data +// to a temporary 24-bit RGB buffer to import the RGB only. +WEBP_EXTERN(int) WebPPictureImportRGBX( + WebPPicture* picture, const uint8_t* rgbx, int rgbx_stride); + +// Variants of the above, but taking BGR(A|X) input. +WEBP_EXTERN(int) WebPPictureImportBGR( + WebPPicture* picture, const uint8_t* bgr, int bgr_stride); +WEBP_EXTERN(int) WebPPictureImportBGRA( + WebPPicture* picture, const uint8_t* bgra, int bgra_stride); +WEBP_EXTERN(int) WebPPictureImportBGRX( + WebPPicture* picture, const uint8_t* bgrx, int bgrx_stride); + +// Converts picture->argb data to the YUVA format specified by 'colorspace'. +// Upon return, picture->use_argb is set to false. The presence of real +// non-opaque transparent values is detected, and 'colorspace' will be +// adjusted accordingly. Note that this method is lossy. +// Returns false in case of error. +WEBP_EXTERN(int) WebPPictureARGBToYUVA(WebPPicture* picture, + WebPEncCSP colorspace); + +// Converts picture->yuv to picture->argb and sets picture->use_argb to true. +// The input format must be YUV_420 or YUV_420A. +// Note that the use of this method is discouraged if one has access to the +// raw ARGB samples, since using YUV420 is comparatively lossy. Also, the +// conversion from YUV420 to ARGB incurs a small loss too. +// Returns false in case of error. +WEBP_EXTERN(int) WebPPictureYUVAToARGB(WebPPicture* picture); + +// Helper function: given a width x height plane of YUV(A) samples +// (with stride 'stride'), clean-up the YUV samples under fully transparent +// area, to help compressibility (no guarantee, though). +WEBP_EXTERN(void) WebPCleanupTransparentArea(WebPPicture* picture); + +// Scan the picture 'picture' for the presence of non fully opaque alpha values. +// Returns true in such case. Otherwise returns false (indicating that the +// alpha plane can be ignored altogether e.g.). +WEBP_EXTERN(int) WebPPictureHasTransparency(const WebPPicture* picture); + +//------------------------------------------------------------------------------ +// Main call + +// Main encoding call, after config and picture have been initialized. +// 'picture' must be less than 16384x16384 in dimension (cf WEBP_MAX_DIMENSION), +// and the 'config' object must be a valid one. +// Returns false in case of error, true otherwise. +// In case of error, picture->error_code is updated accordingly. +// 'picture' can hold the source samples in both YUV(A) or ARGB input, depending +// on the value of 'picture->use_argb'. It is highly recommended to use +// the former for lossy encoding, and the latter for lossless encoding +// (when config.lossless is true). Automatic conversion from one format to +// another is provided but they both incur some loss. +WEBP_EXTERN(int) WebPEncode(const WebPConfig* config, WebPPicture* picture); + +//------------------------------------------------------------------------------ + +#if defined(__cplusplus) || defined(c_plusplus) +} // extern "C" +#endif + +#endif /* WEBP_WEBP_ENCODE_H_ */ diff --git a/ios/include/webp/types.h b/ios/include/webp/types.h new file mode 100755 index 00000000..3e27190b --- /dev/null +++ b/ios/include/webp/types.h @@ -0,0 +1,45 @@ +// Copyright 2010 Google Inc. All Rights Reserved. +// +// This code is licensed under the same terms as WebM: +// Software License Agreement: http://www.webmproject.org/license/software/ +// Additional IP Rights Grant: http://www.webmproject.org/license/additional/ +// ----------------------------------------------------------------------------- +// +// Common types +// +// Author: Skal (pascal.massimino@gmail.com) + +#ifndef WEBP_WEBP_TYPES_H_ +#define WEBP_WEBP_TYPES_H_ + +#include // for size_t + +#ifndef _MSC_VER +#include +#ifdef __STRICT_ANSI__ +#define WEBP_INLINE +#else /* __STRICT_ANSI__ */ +#define WEBP_INLINE inline +#endif +#else +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef unsigned long long int uint64_t; +typedef long long int int64_t; +#define WEBP_INLINE __forceinline +#endif /* _MSC_VER */ + +#ifndef WEBP_EXTERN +// This explicitly marks library functions and allows for changing the +// signature for e.g., Windows DLL builds. +#define WEBP_EXTERN(type) extern type +#endif /* WEBP_EXTERN */ + +// Macro to check ABI compatibility (same major revision number) +#define WEBP_ABI_IS_INCOMPATIBLE(a, b) (((a) >> 8) != ((b) >> 8)) + +#endif /* WEBP_WEBP_TYPES_H_ */ diff --git a/ios/libs/libjpeg.a b/ios/libs/libjpeg.a new file mode 100644 index 0000000000000000000000000000000000000000..8352f740ec76ec7ee8e6327ff37fc49cb31ba0e0 GIT binary patch literal 1163704 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

40S)ye}r8FXz`~|rS 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

{AACzM6&b-8Y?0 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 z�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

nj*6ST#>2(|ab7?pL&gsZ~ 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ℑ8#Kili)qG)cEbJ@{FJ3Tj?qkEkn9)yP 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