updated libpng to 1.2.39
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32587 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
+134
-97
@@ -1,14 +1,16 @@
|
|||||||
/* png.h - header file for PNG reference library
|
/* png.h - header file for PNG reference library
|
||||||
*
|
*
|
||||||
* libpng version 1.2.37 - June 4, 2009
|
* libpng version 1.2.39 - August 13, 2009
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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:
|
* Authors and maintainers:
|
||||||
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
|
* 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.89c, June 1996, through 0.96, May 1997: Andreas Dilger
|
||||||
* libpng versions 0.97, January 1998, through 1.2.37 - June 4, 2009: Glenn
|
* libpng versions 0.97, January 1998, through 1.2.39 - August 13, 2009: Glenn
|
||||||
* See also "Contributing Authors", below.
|
* See also "Contributing Authors", below.
|
||||||
*
|
*
|
||||||
* Note about libpng version numbers:
|
* Note about libpng version numbers:
|
||||||
@@ -229,6 +231,16 @@
|
|||||||
* 1.2.37beta01-03 13 10237 12.so.0.37[.0]
|
* 1.2.37beta01-03 13 10237 12.so.0.37[.0]
|
||||||
* 1.2.37rc01 13 10237 12.so.0.37[.0]
|
* 1.2.37rc01 13 10237 12.so.0.37[.0]
|
||||||
* 1.2.37 13 10237 12.so.0.37[.0]
|
* 1.2.37 13 10237 12.so.0.37[.0]
|
||||||
|
* 1.2.45 10 10045 12.so.0.45[.0]
|
||||||
|
* 1.0.46 10 10046 10.so.0.46[.0]
|
||||||
|
* 1.2.38beta01 13 10238 12.so.0.38[.0]
|
||||||
|
* 1.2.38rc01-03 13 10238 12.so.0.38[.0]
|
||||||
|
* 1.0.47 10 10047 10.so.0.47[.0]
|
||||||
|
* 1.2.38 13 10238 12.so.0.38[.0]
|
||||||
|
* 1.2.39beta01-05 13 10239 12.so.0.39[.0]
|
||||||
|
* 1.2.39rc01 13 10239 12.so.0.39[.0]
|
||||||
|
* 1.0.48 10 10048 10.so.0.48[.0]
|
||||||
|
* 1.2.39 13 10239 12.so.0.39[.0]
|
||||||
*
|
*
|
||||||
* Henceforth the source version will match the shared-library major
|
* Henceforth the source version will match the shared-library major
|
||||||
* and minor numbers; the shared-library major version number will be
|
* and minor numbers; the shared-library major version number will be
|
||||||
@@ -258,7 +270,9 @@
|
|||||||
* If you modify libpng you may insert additional notices immediately following
|
* If you modify libpng you may insert additional notices immediately following
|
||||||
* this sentence.
|
* this sentence.
|
||||||
*
|
*
|
||||||
* libpng versions 1.2.6, August 15, 2004, through 1.2.37, June 4, 2009, are
|
* This code is released under the libpng license.
|
||||||
|
*
|
||||||
|
* libpng versions 1.2.6, August 15, 2004, through 1.2.39, August 13, 2009, are
|
||||||
* Copyright (c) 2004, 2006-2009 Glenn Randers-Pehrson, and are
|
* Copyright (c) 2004, 2006-2009 Glenn Randers-Pehrson, and are
|
||||||
* distributed according to the same disclaimer and license as libpng-1.2.5
|
* distributed according to the same disclaimer and license as libpng-1.2.5
|
||||||
* with the following individual added to the list of Contributing Authors:
|
* with the following individual added to the list of Contributing Authors:
|
||||||
@@ -370,13 +384,13 @@
|
|||||||
* Y2K compliance in libpng:
|
* Y2K compliance in libpng:
|
||||||
* =========================
|
* =========================
|
||||||
*
|
*
|
||||||
* June 4, 2009
|
* August 13, 2009
|
||||||
*
|
*
|
||||||
* Since the PNG Development group is an ad-hoc body, we can't make
|
* Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
* an official declaration.
|
* an official declaration.
|
||||||
*
|
*
|
||||||
* This is your unofficial assurance that libpng from version 0.71 and
|
* This is your unofficial assurance that libpng from version 0.71 and
|
||||||
* upward through 1.2.37 are Y2K compliant. It is my belief that earlier
|
* upward through 1.2.39 are Y2K compliant. It is my belief that earlier
|
||||||
* versions were also Y2K compliant.
|
* versions were also Y2K compliant.
|
||||||
*
|
*
|
||||||
* Libpng only has three year fields. One is a 2-byte unsigned integer
|
* Libpng only has three year fields. One is a 2-byte unsigned integer
|
||||||
@@ -432,9 +446,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Version information for png.h - this should match the version in png.c */
|
/* Version information for png.h - this should match the version in png.c */
|
||||||
#define PNG_LIBPNG_VER_STRING "1.2.37"
|
#define PNG_LIBPNG_VER_STRING "1.2.39"
|
||||||
#define PNG_HEADER_VERSION_STRING \
|
#define PNG_HEADER_VERSION_STRING \
|
||||||
" libpng version 1.2.37 - June 4, 2009\n"
|
" libpng version 1.2.39 - August 13, 2009\n"
|
||||||
|
|
||||||
#define PNG_LIBPNG_VER_SONUM 0
|
#define PNG_LIBPNG_VER_SONUM 0
|
||||||
#define PNG_LIBPNG_VER_DLLNUM 13
|
#define PNG_LIBPNG_VER_DLLNUM 13
|
||||||
@@ -442,9 +456,10 @@
|
|||||||
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
|
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
|
||||||
#define PNG_LIBPNG_VER_MAJOR 1
|
#define PNG_LIBPNG_VER_MAJOR 1
|
||||||
#define PNG_LIBPNG_VER_MINOR 2
|
#define PNG_LIBPNG_VER_MINOR 2
|
||||||
#define PNG_LIBPNG_VER_RELEASE 37
|
#define PNG_LIBPNG_VER_RELEASE 39
|
||||||
/* This should match the numeric part of the final component of
|
/* This should match the numeric part of the final component of
|
||||||
* PNG_LIBPNG_VER_STRING, omitting any leading zero: */
|
* PNG_LIBPNG_VER_STRING, omitting any leading zero:
|
||||||
|
*/
|
||||||
|
|
||||||
#define PNG_LIBPNG_VER_BUILD 0
|
#define PNG_LIBPNG_VER_BUILD 0
|
||||||
|
|
||||||
@@ -454,7 +469,7 @@
|
|||||||
#define PNG_LIBPNG_BUILD_RC 3
|
#define PNG_LIBPNG_BUILD_RC 3
|
||||||
#define PNG_LIBPNG_BUILD_STABLE 4
|
#define PNG_LIBPNG_BUILD_STABLE 4
|
||||||
#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7
|
#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7
|
||||||
|
|
||||||
/* Release-Specific Flags */
|
/* Release-Specific Flags */
|
||||||
#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with
|
#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with
|
||||||
PNG_LIBPNG_BUILD_STABLE only */
|
PNG_LIBPNG_BUILD_STABLE only */
|
||||||
@@ -469,8 +484,9 @@
|
|||||||
* We must not include leading zeros.
|
* We must not include leading zeros.
|
||||||
* Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
|
* 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.0 was mis-numbered 100 instead of 10000). From
|
||||||
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release */
|
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release
|
||||||
#define PNG_LIBPNG_VER 10237 /* 1.2.37 */
|
*/
|
||||||
|
#define PNG_LIBPNG_VER 10239 /* 1.2.39 */
|
||||||
|
|
||||||
#ifndef PNG_VERSION_INFO_ONLY
|
#ifndef PNG_VERSION_INFO_ONLY
|
||||||
/* include the compression library's header */
|
/* include the compression library's header */
|
||||||
@@ -485,12 +501,12 @@
|
|||||||
/* Ref MSDN: Private as priority over Special
|
/* Ref MSDN: Private as priority over Special
|
||||||
* VS_FF_PRIVATEBUILD File *was not* built using standard release
|
* VS_FF_PRIVATEBUILD File *was not* built using standard release
|
||||||
* procedures. If this value is given, the StringFileInfo block must
|
* procedures. If this value is given, the StringFileInfo block must
|
||||||
* contain a PrivateBuild string.
|
* contain a PrivateBuild string.
|
||||||
*
|
*
|
||||||
* VS_FF_SPECIALBUILD File *was* built by the original company using
|
* VS_FF_SPECIALBUILD File *was* built by the original company using
|
||||||
* standard release procedures but is a variation of the standard
|
* standard release procedures but is a variation of the standard
|
||||||
* file of the same version number. If this value is given, the
|
* file of the same version number. If this value is given, the
|
||||||
* StringFileInfo block must contain a SpecialBuild string.
|
* StringFileInfo block must contain a SpecialBuild string.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(PNG_USER_PRIVATEBUILD)
|
#if defined(PNG_USER_PRIVATEBUILD)
|
||||||
@@ -552,7 +568,7 @@ extern "C" {
|
|||||||
#define png_write_status_ptr_NULL NULL
|
#define png_write_status_ptr_NULL NULL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* variables declared in png.c - only it needs to define PNG_NO_EXTERN */
|
/* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */
|
||||||
#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
|
#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
|
||||||
/* Version information for C files, stored in png.c. This had better match
|
/* Version information for C files, stored in png.c. This had better match
|
||||||
* the version above.
|
* the version above.
|
||||||
@@ -678,7 +694,8 @@ typedef png_text FAR * FAR * png_textpp;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Supported compression types for text in PNG files (tEXt, and zTXt).
|
/* Supported compression types for text in PNG files (tEXt, and zTXt).
|
||||||
* The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. */
|
* The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed.
|
||||||
|
*/
|
||||||
#define PNG_TEXT_COMPRESSION_NONE_WR -3
|
#define PNG_TEXT_COMPRESSION_NONE_WR -3
|
||||||
#define PNG_TEXT_COMPRESSION_zTXt_WR -2
|
#define PNG_TEXT_COMPRESSION_zTXt_WR -2
|
||||||
#define PNG_TEXT_COMPRESSION_NONE -1
|
#define PNG_TEXT_COMPRESSION_NONE -1
|
||||||
@@ -705,7 +722,8 @@ typedef struct png_time_struct
|
|||||||
typedef png_time FAR * png_timep;
|
typedef png_time FAR * png_timep;
|
||||||
typedef png_time FAR * FAR * png_timepp;
|
typedef png_time FAR * FAR * png_timepp;
|
||||||
|
|
||||||
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
|
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
|
||||||
|
defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
|
||||||
/* png_unknown_chunk is a structure to hold queued chunks for which there is
|
/* 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
|
* 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
|
* up private chunks for output even though the library doesn't actually
|
||||||
@@ -940,8 +958,9 @@ defined(PNG_READ_BACKGROUND_SUPPORTED)
|
|||||||
png_uint_32 free_me; /* flags items libpng is responsible for freeing */
|
png_uint_32 free_me; /* flags items libpng is responsible for freeing */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
|
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
|
||||||
/* storage for unknown chunks that the library doesn't recognize. */
|
defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
|
||||||
|
/* Storage for unknown chunks that the library doesn't recognize. */
|
||||||
png_unknown_chunkp unknown_chunks;
|
png_unknown_chunkp unknown_chunks;
|
||||||
png_size_t unknown_chunks_num;
|
png_size_t unknown_chunks_num;
|
||||||
#endif
|
#endif
|
||||||
@@ -956,7 +975,7 @@ defined(PNG_READ_BACKGROUND_SUPPORTED)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PNG_sPLT_SUPPORTED)
|
#if defined(PNG_sPLT_SUPPORTED)
|
||||||
/* data on sPLT chunks (there may be more than one). */
|
/* Data on sPLT chunks (there may be more than one). */
|
||||||
png_sPLT_tp splt_palettes;
|
png_sPLT_tp splt_palettes;
|
||||||
png_uint_32 splt_palettes_num;
|
png_uint_32 splt_palettes_num;
|
||||||
#endif
|
#endif
|
||||||
@@ -1291,7 +1310,7 @@ struct png_struct_def
|
|||||||
#endif /* PNG_bKGD_SUPPORTED */
|
#endif /* PNG_bKGD_SUPPORTED */
|
||||||
|
|
||||||
#if defined(PNG_WRITE_FLUSH_SUPPORTED)
|
#if defined(PNG_WRITE_FLUSH_SUPPORTED)
|
||||||
png_flush_ptr output_flush_fn;/* Function for flushing output */
|
png_flush_ptr output_flush_fn; /* Function for flushing output */
|
||||||
png_uint_32 flush_dist; /* how many rows apart to flush, 0 - no flush */
|
png_uint_32 flush_dist; /* how many rows apart to flush, 0 - no flush */
|
||||||
png_uint_32 flush_rows; /* number of rows written since last flush */
|
png_uint_32 flush_rows; /* number of rows written since last flush */
|
||||||
#endif
|
#endif
|
||||||
@@ -1389,7 +1408,7 @@ struct png_struct_def
|
|||||||
/* New members added in libpng-1.0.6 */
|
/* New members added in libpng-1.0.6 */
|
||||||
|
|
||||||
#ifdef PNG_FREE_ME_SUPPORTED
|
#ifdef PNG_FREE_ME_SUPPORTED
|
||||||
png_uint_32 free_me; /* flags items libpng is responsible for freeing */
|
png_uint_32 free_me; /* flags items libpng is responsible for freeing */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PNG_USER_CHUNKS_SUPPORTED)
|
#if defined(PNG_USER_CHUNKS_SUPPORTED)
|
||||||
@@ -1397,7 +1416,7 @@ struct png_struct_def
|
|||||||
png_user_chunk_ptr read_user_chunk_fn; /* user read chunk handler */
|
png_user_chunk_ptr read_user_chunk_fn; /* user read chunk handler */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
|
#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||||
int num_chunk_list;
|
int num_chunk_list;
|
||||||
png_bytep chunk_list;
|
png_bytep chunk_list;
|
||||||
#endif
|
#endif
|
||||||
@@ -1451,21 +1470,21 @@ struct png_struct_def
|
|||||||
|
|
||||||
/* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */
|
/* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */
|
||||||
#ifdef PNG_USER_MEM_SUPPORTED
|
#ifdef PNG_USER_MEM_SUPPORTED
|
||||||
png_voidp mem_ptr; /* user supplied struct for mem functions */
|
png_voidp mem_ptr; /* user supplied struct for mem functions */
|
||||||
png_malloc_ptr malloc_fn; /* function for allocating memory */
|
png_malloc_ptr malloc_fn; /* function for allocating memory */
|
||||||
png_free_ptr free_fn; /* function for freeing memory */
|
png_free_ptr free_fn; /* function for freeing memory */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* New member added in libpng-1.0.13 and 1.2.0 */
|
/* New member added in libpng-1.0.13 and 1.2.0 */
|
||||||
png_bytep big_row_buf; /* buffer to save current (unfiltered) row */
|
png_bytep big_row_buf; /* buffer to save current (unfiltered) row */
|
||||||
|
|
||||||
#if defined(PNG_READ_DITHER_SUPPORTED)
|
#if defined(PNG_READ_DITHER_SUPPORTED)
|
||||||
/* The following three members were added at version 1.0.14 and 1.2.4 */
|
/* The following three members were added at version 1.0.14 and 1.2.4 */
|
||||||
png_bytep dither_sort; /* working sort array */
|
png_bytep dither_sort; /* working sort array */
|
||||||
png_bytep index_to_palette; /* where the original index currently is */
|
png_bytep index_to_palette; /* where the original index currently is */
|
||||||
/* in the palette */
|
/* in the palette */
|
||||||
png_bytep palette_to_index; /* which original index points to this */
|
png_bytep palette_to_index; /* which original index points to this */
|
||||||
/* palette color */
|
/* palette color */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* New members added in libpng-1.0.16 and 1.2.6 */
|
/* New members added in libpng-1.0.16 and 1.2.6 */
|
||||||
@@ -1478,7 +1497,7 @@ struct png_struct_def
|
|||||||
|
|
||||||
/* New member added in libpng-1.0.25 and 1.2.17 */
|
/* New member added in libpng-1.0.25 and 1.2.17 */
|
||||||
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
|
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
|
||||||
/* storage for unknown chunk that the library doesn't recognize. */
|
/* Storage for unknown chunk that the library doesn't recognize. */
|
||||||
png_unknown_chunk unknown_chunk;
|
png_unknown_chunk unknown_chunk;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1494,7 +1513,7 @@ struct png_struct_def
|
|||||||
/* This triggers a compiler error in png.c, if png.c and png.h
|
/* This triggers a compiler error in png.c, if png.c and png.h
|
||||||
* do not agree upon the version number.
|
* do not agree upon the version number.
|
||||||
*/
|
*/
|
||||||
typedef png_structp version_1_2_37;
|
typedef png_structp version_1_2_39;
|
||||||
|
|
||||||
typedef png_struct FAR * FAR * png_structpp;
|
typedef png_struct FAR * FAR * png_structpp;
|
||||||
|
|
||||||
@@ -1598,7 +1617,7 @@ extern PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr,
|
|||||||
png_infop info_ptr));
|
png_infop info_ptr));
|
||||||
|
|
||||||
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
||||||
/* read the information before the actual image data. */
|
/* Read the information before the actual image data. */
|
||||||
extern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr,
|
||||||
png_infop info_ptr));
|
png_infop info_ptr));
|
||||||
#endif
|
#endif
|
||||||
@@ -1611,11 +1630,11 @@ extern PNG_EXPORT(png_charp,png_convert_to_rfc1123)
|
|||||||
#if !defined(_WIN32_WCE)
|
#if !defined(_WIN32_WCE)
|
||||||
/* "time.h" functions are not supported on WindowsCE */
|
/* "time.h" functions are not supported on WindowsCE */
|
||||||
#if defined(PNG_WRITE_tIME_SUPPORTED)
|
#if defined(PNG_WRITE_tIME_SUPPORTED)
|
||||||
/* convert from a struct tm to png_time */
|
/* Convert from a struct tm to png_time */
|
||||||
extern PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime,
|
extern PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime,
|
||||||
struct tm FAR * ttime));
|
struct tm FAR * ttime));
|
||||||
|
|
||||||
/* convert from time_t to png_time. Uses gmtime() */
|
/* Convert from time_t to png_time. Uses gmtime() */
|
||||||
extern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime,
|
extern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime,
|
||||||
time_t ttime));
|
time_t ttime));
|
||||||
#endif /* PNG_WRITE_tIME_SUPPORTED */
|
#endif /* PNG_WRITE_tIME_SUPPORTED */
|
||||||
@@ -1735,7 +1754,7 @@ extern PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PNG_READ_16_TO_8_SUPPORTED)
|
#if defined(PNG_READ_16_TO_8_SUPPORTED)
|
||||||
/* strip the second byte of information from a 16-bit depth file. */
|
/* Strip the second byte of information from a 16-bit depth file. */
|
||||||
extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr));
|
extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1771,74 +1790,74 @@ extern PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows));
|
|||||||
extern PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr));
|
extern PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* optional update palette with requested transformations */
|
/* Optional update palette with requested transformations */
|
||||||
extern PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr));
|
extern PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr));
|
||||||
|
|
||||||
/* optional call to update the users info structure */
|
/* Optional call to update the users info structure */
|
||||||
extern PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr,
|
||||||
png_infop info_ptr));
|
png_infop info_ptr));
|
||||||
|
|
||||||
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
||||||
/* read one or more rows of image data. */
|
/* Read one or more rows of image data. */
|
||||||
extern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr,
|
||||||
png_bytepp row, png_bytepp display_row, png_uint_32 num_rows));
|
png_bytepp row, png_bytepp display_row, png_uint_32 num_rows));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
||||||
/* read a row of data. */
|
/* Read a row of data. */
|
||||||
extern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr,
|
||||||
png_bytep row,
|
png_bytep row,
|
||||||
png_bytep display_row));
|
png_bytep display_row));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
||||||
/* read the whole image into memory at once. */
|
/* Read the whole image into memory at once. */
|
||||||
extern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr,
|
||||||
png_bytepp image));
|
png_bytepp image));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* write a row of image data */
|
/* Write a row of image data */
|
||||||
extern PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr,
|
||||||
png_bytep row));
|
png_bytep row));
|
||||||
|
|
||||||
/* write a few rows of image data */
|
/* Write a few rows of image data */
|
||||||
extern PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr,
|
||||||
png_bytepp row, png_uint_32 num_rows));
|
png_bytepp row, png_uint_32 num_rows));
|
||||||
|
|
||||||
/* write the image data */
|
/* Write the image data */
|
||||||
extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr,
|
||||||
png_bytepp image));
|
png_bytepp image));
|
||||||
|
|
||||||
/* writes the end of the PNG file. */
|
/* Writes the end of the PNG file. */
|
||||||
extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr,
|
||||||
png_infop info_ptr));
|
png_infop info_ptr));
|
||||||
|
|
||||||
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
||||||
/* read the end of the PNG file. */
|
/* Read the end of the PNG file. */
|
||||||
extern PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr,
|
||||||
png_infop info_ptr));
|
png_infop info_ptr));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* free any memory associated with the png_info_struct */
|
/* Free any memory associated with the png_info_struct */
|
||||||
extern PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr,
|
||||||
png_infopp info_ptr_ptr));
|
png_infopp info_ptr_ptr));
|
||||||
|
|
||||||
/* free any memory associated with the png_struct and the png_info_structs */
|
/* Free any memory associated with the png_struct and the png_info_structs */
|
||||||
extern PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp
|
extern PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp
|
||||||
png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr));
|
png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr));
|
||||||
|
|
||||||
/* free all memory used by the read (old method - NOT DLL EXPORTED) */
|
/* Free all memory used by the read (old method - NOT DLL EXPORTED) */
|
||||||
extern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr,
|
extern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr,
|
||||||
png_infop end_info_ptr));
|
png_infop end_info_ptr));
|
||||||
|
|
||||||
/* free any memory associated with the png_struct and the png_info_structs */
|
/* Free any memory associated with the png_struct and the png_info_structs */
|
||||||
extern PNG_EXPORT(void,png_destroy_write_struct)
|
extern PNG_EXPORT(void,png_destroy_write_struct)
|
||||||
PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr));
|
PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr));
|
||||||
|
|
||||||
/* free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */
|
/* Free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */
|
||||||
extern void png_write_destroy PNGARG((png_structp png_ptr));
|
extern void png_write_destroy PNGARG((png_structp png_ptr));
|
||||||
|
|
||||||
/* set the libpng method of handling chunk CRC errors */
|
/* Set the libpng method of handling chunk CRC errors */
|
||||||
extern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr,
|
||||||
int crit_action, int ancil_action));
|
int crit_action, int ancil_action));
|
||||||
|
|
||||||
@@ -1866,7 +1885,7 @@ extern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr,
|
|||||||
* header file (zlib.h) for an explination of the compression functions.
|
* header file (zlib.h) for an explination of the compression functions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* set the filtering method(s) used by libpng. Currently, the only valid
|
/* Set the filtering method(s) used by libpng. Currently, the only valid
|
||||||
* value for "method" is 0.
|
* value for "method" is 0.
|
||||||
*/
|
*/
|
||||||
extern PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method,
|
extern PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method,
|
||||||
@@ -2063,11 +2082,11 @@ extern PNG_EXPORT(void,png_set_progressive_read_fn) PNGARG((png_structp png_ptr,
|
|||||||
png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn,
|
png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn,
|
||||||
png_progressive_end_ptr end_fn));
|
png_progressive_end_ptr end_fn));
|
||||||
|
|
||||||
/* returns the user pointer associated with the push read functions */
|
/* Returns the user pointer associated with the push read functions */
|
||||||
extern PNG_EXPORT(png_voidp,png_get_progressive_ptr)
|
extern PNG_EXPORT(png_voidp,png_get_progressive_ptr)
|
||||||
PNGARG((png_structp png_ptr));
|
PNGARG((png_structp png_ptr));
|
||||||
|
|
||||||
/* function to be called when data becomes available */
|
/* Function to be called when data becomes available */
|
||||||
extern PNG_EXPORT(void,png_process_data) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_process_data) PNGARG((png_structp png_ptr,
|
||||||
png_infop info_ptr, png_bytep buffer, png_size_t buffer_size));
|
png_infop info_ptr, png_bytep buffer, png_size_t buffer_size));
|
||||||
|
|
||||||
@@ -2089,7 +2108,7 @@ extern PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr,
|
|||||||
png_uint_32 size));
|
png_uint_32 size));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* frees a pointer allocated by png_malloc() */
|
/* Frees a pointer allocated by png_malloc() */
|
||||||
extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr));
|
extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr));
|
||||||
|
|
||||||
#if defined(PNG_1_0_X)
|
#if defined(PNG_1_0_X)
|
||||||
@@ -2106,11 +2125,12 @@ extern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr,
|
|||||||
png_infop info_ptr, png_uint_32 free_me, int num));
|
png_infop info_ptr, png_uint_32 free_me, int num));
|
||||||
#ifdef PNG_FREE_ME_SUPPORTED
|
#ifdef PNG_FREE_ME_SUPPORTED
|
||||||
/* Reassign responsibility for freeing existing data, whether allocated
|
/* Reassign responsibility for freeing existing data, whether allocated
|
||||||
* by libpng or by the application */
|
* by libpng or by the application
|
||||||
|
*/
|
||||||
extern PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr,
|
||||||
png_infop info_ptr, int freer, png_uint_32 mask));
|
png_infop info_ptr, int freer, png_uint_32 mask));
|
||||||
#endif
|
#endif
|
||||||
/* assignments for png_data_freer */
|
/* Assignments for png_data_freer */
|
||||||
#define PNG_DESTROY_WILL_FREE_DATA 1
|
#define PNG_DESTROY_WILL_FREE_DATA 1
|
||||||
#define PNG_SET_WILL_FREE_DATA 1
|
#define PNG_SET_WILL_FREE_DATA 1
|
||||||
#define PNG_USER_WILL_FREE_DATA 2
|
#define PNG_USER_WILL_FREE_DATA 2
|
||||||
@@ -2194,11 +2214,13 @@ png_infop info_ptr));
|
|||||||
|
|
||||||
#if defined(PNG_INFO_IMAGE_SUPPORTED)
|
#if defined(PNG_INFO_IMAGE_SUPPORTED)
|
||||||
/* Returns row_pointers, which is an array of pointers to scanlines that was
|
/* Returns row_pointers, which is an array of pointers to scanlines that was
|
||||||
returned from png_read_png(). */
|
* returned from png_read_png().
|
||||||
|
*/
|
||||||
extern PNG_EXPORT(png_bytepp,png_get_rows) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(png_bytepp,png_get_rows) PNGARG((png_structp png_ptr,
|
||||||
png_infop info_ptr));
|
png_infop info_ptr));
|
||||||
/* Set row_pointers, which is an array of pointers to scanlines for use
|
/* Set row_pointers, which is an array of pointers to scanlines for use
|
||||||
by png_write_png(). */
|
* by png_write_png().
|
||||||
|
*/
|
||||||
extern PNG_EXPORT(void,png_set_rows) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void,png_set_rows) PNGARG((png_structp png_ptr,
|
||||||
png_infop info_ptr, png_bytepp row_pointers));
|
png_infop info_ptr, png_bytepp row_pointers));
|
||||||
#endif
|
#endif
|
||||||
@@ -2499,8 +2521,8 @@ extern PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr,
|
|||||||
#endif
|
#endif
|
||||||
#endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */
|
#endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */
|
||||||
|
|
||||||
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
|
#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||||
/* provide a list of chunks and how they are to be handled, if the built-in
|
/* Provide a list of chunks and how they are to be handled, if the built-in
|
||||||
handling or default unknown chunk handling is not desired. Any chunks not
|
handling or default unknown chunk handling is not desired. Any chunks not
|
||||||
listed will be handled in the default manner. The IHDR and IEND chunks
|
listed will be handled in the default manner. The IHDR and IEND chunks
|
||||||
must not be listed.
|
must not be listed.
|
||||||
@@ -2511,6 +2533,10 @@ extern PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr,
|
|||||||
*/
|
*/
|
||||||
extern PNG_EXPORT(void, png_set_keep_unknown_chunks) PNGARG((png_structp
|
extern PNG_EXPORT(void, png_set_keep_unknown_chunks) PNGARG((png_structp
|
||||||
png_ptr, int keep, png_bytep chunk_list, int num_chunks));
|
png_ptr, int keep, png_bytep chunk_list, int num_chunks));
|
||||||
|
PNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep
|
||||||
|
chunk_name));
|
||||||
|
#endif
|
||||||
|
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
|
||||||
extern PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr,
|
||||||
png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns));
|
png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns));
|
||||||
extern PNG_EXPORT(void, png_set_unknown_chunk_location)
|
extern PNG_EXPORT(void, png_set_unknown_chunk_location)
|
||||||
@@ -2518,14 +2544,11 @@ extern PNG_EXPORT(void, png_set_unknown_chunk_location)
|
|||||||
extern PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp
|
extern PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp
|
||||||
png_ptr, png_infop info_ptr, png_unknown_chunkpp entries));
|
png_ptr, png_infop info_ptr, png_unknown_chunkpp entries));
|
||||||
#endif
|
#endif
|
||||||
#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
|
||||||
PNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep
|
|
||||||
chunk_name));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Png_free_data() will turn off the "valid" flag for anything it frees.
|
/* 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,
|
* 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); */
|
* you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK);
|
||||||
|
*/
|
||||||
extern PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr,
|
extern PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr,
|
||||||
png_infop info_ptr, int mask));
|
png_infop info_ptr, int mask));
|
||||||
|
|
||||||
@@ -2570,8 +2593,9 @@ extern PNG_EXPORT(void, png_write_png) PNGARG((png_structp png_ptr,
|
|||||||
#endif /* PNG_DEBUG_FILE */
|
#endif /* PNG_DEBUG_FILE */
|
||||||
|
|
||||||
#if (PNG_DEBUG > 1)
|
#if (PNG_DEBUG > 1)
|
||||||
/* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on
|
/* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on non-ISO
|
||||||
* non-ISO compilers */
|
* compilers.
|
||||||
|
*/
|
||||||
# ifdef __STDC__
|
# ifdef __STDC__
|
||||||
# ifndef png_debug
|
# ifndef png_debug
|
||||||
# define png_debug(l,m) \
|
# define png_debug(l,m) \
|
||||||
@@ -2732,7 +2756,8 @@ extern PNG_EXPORT(int,png_mmx_support) PNGARG((void));
|
|||||||
#endif /* PNG_ASSEMBLER_CODE_SUPPORTED */
|
#endif /* PNG_ASSEMBLER_CODE_SUPPORTED */
|
||||||
|
|
||||||
/* Strip the prepended error numbers ("#nnn ") from error and warning
|
/* Strip the prepended error numbers ("#nnn ") from error and warning
|
||||||
* messages before passing them to the error or warning handler. */
|
* messages before passing them to the error or warning handler.
|
||||||
|
*/
|
||||||
#ifdef PNG_ERROR_NUMBERS_SUPPORTED
|
#ifdef PNG_ERROR_NUMBERS_SUPPORTED
|
||||||
extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
|
extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
|
||||||
png_ptr, png_uint_32 strip_mode));
|
png_ptr, png_uint_32 strip_mode));
|
||||||
@@ -2749,7 +2774,9 @@ extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Maintainer: Put new public prototypes here ^, in libpng.3, and project defs */
|
/* Maintainer: Put new public prototypes here ^, in libpng.3, and in
|
||||||
|
* project defs
|
||||||
|
*/
|
||||||
|
|
||||||
#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
|
#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
|
||||||
/* With these routines we avoid an integer divide, which will be slower on
|
/* With these routines we avoid an integer divide, which will be slower on
|
||||||
@@ -2778,7 +2805,7 @@ extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp
|
|||||||
(png_uint_32)(alpha)) + (png_uint_32)32768L); \
|
(png_uint_32)(alpha)) + (png_uint_32)32768L); \
|
||||||
(composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); }
|
(composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); }
|
||||||
|
|
||||||
#else /* standard method using integer division */
|
#else /* Standard method using integer division */
|
||||||
|
|
||||||
# define png_composite(composite, fg, alpha, bg) \
|
# define png_composite(composite, fg, alpha, bg) \
|
||||||
(composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \
|
(composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \
|
||||||
@@ -2861,7 +2888,7 @@ extern PNG_EXPORT(void,png_save_uint_16)
|
|||||||
#define PNG_HAVE_PNG_SIGNATURE 0x1000
|
#define PNG_HAVE_PNG_SIGNATURE 0x1000
|
||||||
#define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */
|
#define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */
|
||||||
|
|
||||||
/* flags for the transformations the PNG library does on the image data */
|
/* Flags for the transformations the PNG library does on the image data */
|
||||||
#define PNG_BGR 0x0001
|
#define PNG_BGR 0x0001
|
||||||
#define PNG_INTERLACE 0x0002
|
#define PNG_INTERLACE 0x0002
|
||||||
#define PNG_PACK 0x0004
|
#define PNG_PACK 0x0004
|
||||||
@@ -2895,7 +2922,7 @@ extern PNG_EXPORT(void,png_save_uint_16)
|
|||||||
/* 0x20000000L unused */
|
/* 0x20000000L unused */
|
||||||
/* 0x40000000L unused */
|
/* 0x40000000L unused */
|
||||||
|
|
||||||
/* flags for png_create_struct */
|
/* Flags for png_create_struct */
|
||||||
#define PNG_STRUCT_PNG 0x0001
|
#define PNG_STRUCT_PNG 0x0001
|
||||||
#define PNG_STRUCT_INFO 0x0002
|
#define PNG_STRUCT_INFO 0x0002
|
||||||
|
|
||||||
@@ -2905,7 +2932,7 @@ extern PNG_EXPORT(void,png_save_uint_16)
|
|||||||
#define PNG_COST_SHIFT 3
|
#define PNG_COST_SHIFT 3
|
||||||
#define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT))
|
#define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT))
|
||||||
|
|
||||||
/* flags for the png_ptr->flags rather than declaring a byte for each one */
|
/* Flags for the png_ptr->flags rather than declaring a byte for each one */
|
||||||
#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001
|
#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001
|
||||||
#define PNG_FLAG_ZLIB_CUSTOM_LEVEL 0x0002
|
#define PNG_FLAG_ZLIB_CUSTOM_LEVEL 0x0002
|
||||||
#define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL 0x0004
|
#define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL 0x0004
|
||||||
@@ -2947,7 +2974,7 @@ extern PNG_EXPORT(void,png_save_uint_16)
|
|||||||
#define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \
|
#define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \
|
||||||
PNG_FLAG_CRC_CRITICAL_MASK)
|
PNG_FLAG_CRC_CRITICAL_MASK)
|
||||||
|
|
||||||
/* save typing and make code easier to understand */
|
/* Save typing and make code easier to understand */
|
||||||
|
|
||||||
#define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \
|
#define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \
|
||||||
abs((int)((c1).green) - (int)((c2).green)) + \
|
abs((int)((c1).green) - (int)((c2).green)) + \
|
||||||
@@ -2960,13 +2987,14 @@ extern PNG_EXPORT(void,png_save_uint_16)
|
|||||||
(( ((width) * ((png_uint_32)(pixel_bits))) + 7) >> 3) )
|
(( ((width) * ((png_uint_32)(pixel_bits))) + 7) >> 3) )
|
||||||
|
|
||||||
/* PNG_OUT_OF_RANGE returns true if value is outside the range
|
/* PNG_OUT_OF_RANGE returns true if value is outside the range
|
||||||
ideal-delta..ideal+delta. Each argument is evaluated twice.
|
* ideal-delta..ideal+delta. Each argument is evaluated twice.
|
||||||
"ideal" and "delta" should be constants, normally simple
|
* "ideal" and "delta" should be constants, normally simple
|
||||||
integers, "value" a variable. Added to libpng-1.2.6 JB */
|
* integers, "value" a variable. Added to libpng-1.2.6 JB
|
||||||
|
*/
|
||||||
#define PNG_OUT_OF_RANGE(value, ideal, delta) \
|
#define PNG_OUT_OF_RANGE(value, ideal, delta) \
|
||||||
( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) )
|
( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) )
|
||||||
|
|
||||||
/* variables declared in png.c - only it needs to define PNG_NO_EXTERN */
|
/* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */
|
||||||
#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
|
#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
|
||||||
/* place to hold the signature string for a PNG file. */
|
/* place to hold the signature string for a PNG file. */
|
||||||
#ifdef PNG_USE_GLOBAL_ARRAYS
|
#ifdef PNG_USE_GLOBAL_ARRAYS
|
||||||
@@ -3087,7 +3115,8 @@ PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr));
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Next four functions are used internally as callbacks. PNGAPI is required
|
/* Next four functions are used internally as callbacks. PNGAPI is required
|
||||||
* but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3. */
|
* but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3.
|
||||||
|
*/
|
||||||
|
|
||||||
PNG_EXTERN void PNGAPI png_default_read_data PNGARG((png_structp png_ptr,
|
PNG_EXTERN void PNGAPI png_default_read_data PNGARG((png_structp png_ptr,
|
||||||
png_bytep data, png_size_t length));
|
png_bytep data, png_size_t length));
|
||||||
@@ -3152,10 +3181,10 @@ PNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr, png_bytep ptr,
|
|||||||
PNG_EXTERN void png_flush PNGARG((png_structp png_ptr));
|
PNG_EXTERN void png_flush PNGARG((png_structp png_ptr));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* simple function to write the signature */
|
/* Simple function to write the signature */
|
||||||
PNG_EXTERN void png_write_sig PNGARG((png_structp png_ptr));
|
PNG_EXTERN void png_write_sig PNGARG((png_structp png_ptr));
|
||||||
|
|
||||||
/* write various chunks */
|
/* Write various chunks */
|
||||||
|
|
||||||
/* Write the IHDR chunk, and update the png_struct with the necessary
|
/* Write the IHDR chunk, and update the png_struct with the necessary
|
||||||
* information.
|
* information.
|
||||||
@@ -3307,12 +3336,12 @@ PNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr));
|
|||||||
PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr));
|
PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* combine a row of data, dealing with alpha, etc. if requested */
|
/* Combine a row of data, dealing with alpha, etc. if requested */
|
||||||
PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row,
|
PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row,
|
||||||
int mask));
|
int mask));
|
||||||
|
|
||||||
#if defined(PNG_READ_INTERLACING_SUPPORTED)
|
#if defined(PNG_READ_INTERLACING_SUPPORTED)
|
||||||
/* expand an interlaced row */
|
/* Expand an interlaced row */
|
||||||
/* OLD pre-1.0.9 interface:
|
/* OLD pre-1.0.9 interface:
|
||||||
PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info,
|
PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info,
|
||||||
png_bytep row, int pass, png_uint_32 transformations));
|
png_bytep row, int pass, png_uint_32 transformations));
|
||||||
@@ -3323,12 +3352,12 @@ PNG_EXTERN void png_do_read_interlace PNGARG((png_structp png_ptr));
|
|||||||
/* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */
|
/* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */
|
||||||
|
|
||||||
#if defined(PNG_WRITE_INTERLACING_SUPPORTED)
|
#if defined(PNG_WRITE_INTERLACING_SUPPORTED)
|
||||||
/* grab pixels out of a row for an interlaced pass */
|
/* Grab pixels out of a row for an interlaced pass */
|
||||||
PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info,
|
PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info,
|
||||||
png_bytep row, int pass));
|
png_bytep row, int pass));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* unfilter a row */
|
/* Unfilter a row */
|
||||||
PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr,
|
PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr,
|
||||||
png_row_infop row_info, png_bytep row, png_bytep prev_row, int filter));
|
png_row_infop row_info, png_bytep row, png_bytep prev_row, int filter));
|
||||||
|
|
||||||
@@ -3339,16 +3368,16 @@ PNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr,
|
|||||||
/* Write out the filtered row. */
|
/* Write out the filtered row. */
|
||||||
PNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr,
|
PNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr,
|
||||||
png_bytep filtered_row));
|
png_bytep filtered_row));
|
||||||
/* finish a row while reading, dealing with interlacing passes, etc. */
|
/* Finish a row while reading, dealing with interlacing passes, etc. */
|
||||||
PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr));
|
PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr));
|
||||||
|
|
||||||
/* initialize the row buffers, etc. */
|
/* Initialize the row buffers, etc. */
|
||||||
PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr));
|
PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr));
|
||||||
/* optional call to update the users info structure */
|
/* Optional call to update the users info structure */
|
||||||
PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr,
|
PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr,
|
||||||
png_infop info_ptr));
|
png_infop info_ptr));
|
||||||
|
|
||||||
/* these are the functions that do the transformations */
|
/* These are the functions that do the transformations */
|
||||||
#if defined(PNG_READ_FILLER_SUPPORTED)
|
#if defined(PNG_READ_FILLER_SUPPORTED)
|
||||||
PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info,
|
PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info,
|
||||||
png_bytep row, png_uint_32 filler, png_uint_32 flags));
|
png_bytep row, png_uint_32 filler, png_uint_32 flags));
|
||||||
@@ -3470,7 +3499,7 @@ PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info,
|
|||||||
* then calls the appropriate callback for the chunk if it is valid.
|
* then calls the appropriate callback for the chunk if it is valid.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* decode the IHDR chunk */
|
/* Decode the IHDR chunk */
|
||||||
PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr,
|
PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr,
|
||||||
png_uint_32 length));
|
png_uint_32 length));
|
||||||
PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr,
|
PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr,
|
||||||
@@ -3569,7 +3598,7 @@ PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr,
|
|||||||
PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr,
|
PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr,
|
||||||
png_bytep chunk_name));
|
png_bytep chunk_name));
|
||||||
|
|
||||||
/* handle the transformations for reading and writing */
|
/* Handle the transformations for reading and writing */
|
||||||
PNG_EXTERN void png_do_read_transformations PNGARG((png_structp png_ptr));
|
PNG_EXTERN void png_do_read_transformations PNGARG((png_structp png_ptr));
|
||||||
PNG_EXTERN void png_do_write_transformations PNGARG((png_structp png_ptr));
|
PNG_EXTERN void png_do_write_transformations PNGARG((png_structp png_ptr));
|
||||||
|
|
||||||
@@ -3672,6 +3701,14 @@ PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr,
|
|||||||
png_fixed_point int_blue_y));
|
png_fixed_point int_blue_y));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(PNG_cHRM_SUPPORTED)
|
||||||
|
#if !defined(PNG_NO_CHECK_cHRM)
|
||||||
|
/* Added at libpng version 1.2.34 */
|
||||||
|
PNG_EXTERN void png_64bit_product (long v1, long v2, unsigned long *hi_product,
|
||||||
|
unsigned long *lo_product);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
|
/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
|
||||||
|
|
||||||
#endif /* PNG_INTERNAL */
|
#endif /* PNG_INTERNAL */
|
||||||
@@ -3681,5 +3718,5 @@ PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* PNG_VERSION_INFO_ONLY */
|
#endif /* PNG_VERSION_INFO_ONLY */
|
||||||
/* do not put anything past this line */
|
/* Do not put anything past this line */
|
||||||
#endif /* PNG_H */
|
#endif /* PNG_H */
|
||||||
|
|||||||
+54
-42
@@ -1,11 +1,14 @@
|
|||||||
|
|
||||||
/* pngconf.h - machine configurable file for libpng
|
/* pngconf.h - machine configurable file for libpng
|
||||||
*
|
*
|
||||||
* libpng version 1.2.37 - June 4, 2009
|
* libpng version 1.2.39 - August 13, 2009
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
/* Any machine specific code is near the front of this file, so if you
|
||||||
@@ -19,7 +22,7 @@
|
|||||||
|
|
||||||
#define PNG_1_2_X
|
#define PNG_1_2_X
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PNG_USER_CONFIG has to be defined on the compiler command line. This
|
* PNG_USER_CONFIG has to be defined on the compiler command line. This
|
||||||
* includes the resource compiler for Windows DLL configurations.
|
* includes the resource compiler for Windows DLL configurations.
|
||||||
*/
|
*/
|
||||||
@@ -39,7 +42,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Added at libpng-1.2.8
|
* Added at libpng-1.2.8
|
||||||
*
|
*
|
||||||
* If you create a private DLL you need to define in "pngusr.h" the followings:
|
* If you create a private DLL you need to define in "pngusr.h" the followings:
|
||||||
* #define PNG_USER_PRIVATEBUILD <Describes by whom and why this version of
|
* #define PNG_USER_PRIVATEBUILD <Describes by whom and why this version of
|
||||||
* the DLL was built>
|
* the DLL was built>
|
||||||
@@ -50,8 +53,8 @@
|
|||||||
* number and must match your private DLL name>
|
* number and must match your private DLL name>
|
||||||
* e.g. // private DLL "libpng13gx.dll"
|
* e.g. // private DLL "libpng13gx.dll"
|
||||||
* #define PNG_USER_DLLFNAME_POSTFIX "gx"
|
* #define PNG_USER_DLLFNAME_POSTFIX "gx"
|
||||||
*
|
*
|
||||||
* The following macros are also at your disposal if you want to complete the
|
* The following macros are also at your disposal if you want to complete the
|
||||||
* DLL VERSIONINFO structure.
|
* DLL VERSIONINFO structure.
|
||||||
* - PNG_USER_VERSIONINFO_COMMENTS
|
* - PNG_USER_VERSIONINFO_COMMENTS
|
||||||
* - PNG_USER_VERSIONINFO_COMPANYNAME
|
* - PNG_USER_VERSIONINFO_COMPANYNAME
|
||||||
@@ -147,9 +150,9 @@
|
|||||||
* 'Cygwin' defines/defaults:
|
* 'Cygwin' defines/defaults:
|
||||||
* PNG_BUILD_DLL -- (ignored) building the dll
|
* PNG_BUILD_DLL -- (ignored) building the dll
|
||||||
* (no define) -- (ignored) building an application, linking to the dll
|
* (no define) -- (ignored) building an application, linking to the dll
|
||||||
* PNG_STATIC -- (ignored) building the static lib, or building an
|
* PNG_STATIC -- (ignored) building the static lib, or building an
|
||||||
* application that links to the static lib.
|
* application that links to the static lib.
|
||||||
* ALL_STATIC -- (ignored) building various static libs, or building an
|
* ALL_STATIC -- (ignored) building various static libs, or building an
|
||||||
* application that links to the static libs.
|
* application that links to the static libs.
|
||||||
* Thus,
|
* Thus,
|
||||||
* a cygwin user should define either PNG_BUILD_DLL or PNG_STATIC, and
|
* a cygwin user should define either PNG_BUILD_DLL or PNG_STATIC, and
|
||||||
@@ -162,12 +165,12 @@
|
|||||||
* PNG_BUILD_DLL
|
* PNG_BUILD_DLL
|
||||||
* PNG_STATIC
|
* PNG_STATIC
|
||||||
* (nothing) == PNG_USE_DLL
|
* (nothing) == PNG_USE_DLL
|
||||||
*
|
*
|
||||||
* CYGWIN (2002-01-20): The preceding is now obsolete. With the advent
|
* CYGWIN (2002-01-20): The preceding is now obsolete. With the advent
|
||||||
* of auto-import in binutils, we no longer need to worry about
|
* of auto-import in binutils, we no longer need to worry about
|
||||||
* __declspec(dllexport) / __declspec(dllimport) and friends. Therefore,
|
* __declspec(dllexport) / __declspec(dllimport) and friends. Therefore,
|
||||||
* we don't need to worry about PNG_STATIC or ALL_STATIC when it comes
|
* we don't need to worry about PNG_STATIC or ALL_STATIC when it comes
|
||||||
* to __declspec() stuff. However, we DO need to worry about
|
* to __declspec() stuff. However, we DO need to worry about
|
||||||
* PNG_BUILD_DLL and PNG_STATIC because those change some defaults
|
* PNG_BUILD_DLL and PNG_STATIC because those change some defaults
|
||||||
* such as CONSOLE_IO and whether GLOBAL_ARRAYS are allowed.
|
* such as CONSOLE_IO and whether GLOBAL_ARRAYS are allowed.
|
||||||
*/
|
*/
|
||||||
@@ -211,8 +214,8 @@
|
|||||||
# if !defined(PNG_DLL)
|
# if !defined(PNG_DLL)
|
||||||
# define PNG_DLL
|
# define PNG_DLL
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -487,7 +490,7 @@
|
|||||||
* iTXt support was added. iTXt support was turned off by default through
|
* iTXt support was added. iTXt support was turned off by default through
|
||||||
* libpng-1.2.x, to support old apps that malloc the png_text structure
|
* libpng-1.2.x, to support old apps that malloc the png_text structure
|
||||||
* instead of calling png_set_text() and letting libpng malloc it. It
|
* instead of calling png_set_text() and letting libpng malloc it. It
|
||||||
* was turned on by default in libpng-1.3.0.
|
* will be turned on by default in libpng-1.4.0.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
|
#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
|
||||||
@@ -521,6 +524,7 @@
|
|||||||
# define PNG_NO_FREE_ME
|
# define PNG_NO_FREE_ME
|
||||||
# define PNG_NO_READ_UNKNOWN_CHUNKS
|
# define PNG_NO_READ_UNKNOWN_CHUNKS
|
||||||
# define PNG_NO_WRITE_UNKNOWN_CHUNKS
|
# define PNG_NO_WRITE_UNKNOWN_CHUNKS
|
||||||
|
# define PNG_NO_HANDLE_AS_UNKNOWN
|
||||||
# define PNG_NO_READ_USER_CHUNKS
|
# define PNG_NO_READ_USER_CHUNKS
|
||||||
# define PNG_NO_READ_iCCP
|
# define PNG_NO_READ_iCCP
|
||||||
# define PNG_NO_WRITE_iCCP
|
# define PNG_NO_WRITE_iCCP
|
||||||
@@ -550,7 +554,7 @@
|
|||||||
# define PNG_FREE_ME_SUPPORTED
|
# define PNG_FREE_ME_SUPPORTED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PNG_READ_SUPPORTED)
|
#ifdef PNG_READ_SUPPORTED
|
||||||
|
|
||||||
#if !defined(PNG_READ_TRANSFORMS_NOT_SUPPORTED) && \
|
#if !defined(PNG_READ_TRANSFORMS_NOT_SUPPORTED) && \
|
||||||
!defined(PNG_NO_READ_TRANSFORMS)
|
!defined(PNG_NO_READ_TRANSFORMS)
|
||||||
@@ -638,7 +642,7 @@
|
|||||||
|
|
||||||
#endif /* PNG_READ_SUPPORTED */
|
#endif /* PNG_READ_SUPPORTED */
|
||||||
|
|
||||||
#if defined(PNG_WRITE_SUPPORTED)
|
#ifdef PNG_WRITE_SUPPORTED
|
||||||
|
|
||||||
# if !defined(PNG_WRITE_TRANSFORMS_NOT_SUPPORTED) && \
|
# if !defined(PNG_WRITE_TRANSFORMS_NOT_SUPPORTED) && \
|
||||||
!defined(PNG_NO_WRITE_TRANSFORMS)
|
!defined(PNG_NO_WRITE_TRANSFORMS)
|
||||||
@@ -741,7 +745,7 @@
|
|||||||
# define PNG_EASY_ACCESS_SUPPORTED
|
# define PNG_EASY_ACCESS_SUPPORTED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* PNG_ASSEMBLER_CODE was enabled by default in version 1.2.0
|
/* PNG_ASSEMBLER_CODE was enabled by default in version 1.2.0
|
||||||
* and removed from version 1.2.20. The following will be removed
|
* and removed from version 1.2.20. The following will be removed
|
||||||
* from libpng-1.4.0
|
* from libpng-1.4.0
|
||||||
*/
|
*/
|
||||||
@@ -940,14 +944,22 @@
|
|||||||
# define PNG_READ_zTXt_SUPPORTED
|
# define PNG_READ_zTXt_SUPPORTED
|
||||||
# define PNG_zTXt_SUPPORTED
|
# define PNG_zTXt_SUPPORTED
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef PNG_NO_READ_OPT_PLTE
|
||||||
|
# define PNG_READ_OPT_PLTE_SUPPORTED /* only affects support of the */
|
||||||
|
#endif /* optional PLTE chunk in RGB and RGBA images */
|
||||||
|
#if defined(PNG_READ_iTXt_SUPPORTED) || defined(PNG_READ_tEXt_SUPPORTED) || \
|
||||||
|
defined(PNG_READ_zTXt_SUPPORTED)
|
||||||
|
# define PNG_READ_TEXT_SUPPORTED
|
||||||
|
# define PNG_TEXT_SUPPORTED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */
|
||||||
|
|
||||||
#ifndef PNG_NO_READ_UNKNOWN_CHUNKS
|
#ifndef PNG_NO_READ_UNKNOWN_CHUNKS
|
||||||
# define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
|
# define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
|
# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
# define PNG_UNKNOWN_CHUNKS_SUPPORTED
|
# define PNG_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
# endif
|
# endif
|
||||||
# ifndef PNG_NO_HANDLE_AS_UNKNOWN
|
|
||||||
# define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
#if !defined(PNG_NO_READ_USER_CHUNKS) && \
|
#if !defined(PNG_NO_READ_USER_CHUNKS) && \
|
||||||
defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
|
defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
|
||||||
@@ -960,17 +972,14 @@
|
|||||||
# undef PNG_NO_HANDLE_AS_UNKNOWN
|
# undef PNG_NO_HANDLE_AS_UNKNOWN
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#ifndef PNG_NO_READ_OPT_PLTE
|
|
||||||
# define PNG_READ_OPT_PLTE_SUPPORTED /* only affects support of the */
|
#ifndef PNG_NO_HANDLE_AS_UNKNOWN
|
||||||
#endif /* optional PLTE chunk in RGB and RGBA images */
|
# ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||||
#if defined(PNG_READ_iTXt_SUPPORTED) || defined(PNG_READ_tEXt_SUPPORTED) || \
|
# define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||||
defined(PNG_READ_zTXt_SUPPORTED)
|
# endif
|
||||||
# define PNG_READ_TEXT_SUPPORTED
|
|
||||||
# define PNG_TEXT_SUPPORTED
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */
|
#ifdef PNG_WRITE_SUPPORTED
|
||||||
|
|
||||||
#ifdef PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
|
#ifdef PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
|
||||||
|
|
||||||
#ifdef PNG_NO_WRITE_TEXT
|
#ifdef PNG_NO_WRITE_TEXT
|
||||||
@@ -1082,17 +1091,6 @@
|
|||||||
# define PNG_zTXt_SUPPORTED
|
# define PNG_zTXt_SUPPORTED
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS
|
|
||||||
# define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
|
|
||||||
# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
|
|
||||||
# define PNG_UNKNOWN_CHUNKS_SUPPORTED
|
|
||||||
# endif
|
|
||||||
# ifndef PNG_NO_HANDLE_AS_UNKNOWN
|
|
||||||
# ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
|
||||||
# define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
#if defined(PNG_WRITE_iTXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \
|
#if defined(PNG_WRITE_iTXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \
|
||||||
defined(PNG_WRITE_zTXt_SUPPORTED)
|
defined(PNG_WRITE_zTXt_SUPPORTED)
|
||||||
# define PNG_WRITE_TEXT_SUPPORTED
|
# define PNG_WRITE_TEXT_SUPPORTED
|
||||||
@@ -1103,6 +1101,20 @@
|
|||||||
|
|
||||||
#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */
|
#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */
|
||||||
|
|
||||||
|
#ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS
|
||||||
|
# define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
|
# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
|
# define PNG_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PNG_NO_HANDLE_AS_UNKNOWN
|
||||||
|
# ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||||
|
# define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#endif /* PNG_WRITE_SUPPORTED */
|
||||||
|
|
||||||
/* Turn this off to disable png_read_png() and
|
/* Turn this off to disable png_read_png() and
|
||||||
* png_write_png() and leave the row_pointers member
|
* png_write_png() and leave the row_pointers member
|
||||||
* out of the info structure.
|
* out of the info structure.
|
||||||
@@ -1248,7 +1260,7 @@ typedef char FAR * FAR * FAR * png_charppp;
|
|||||||
|
|
||||||
#if defined(PNG_1_0_X) || defined(PNG_1_2_X)
|
#if defined(PNG_1_0_X) || defined(PNG_1_2_X)
|
||||||
/* SPC - Is this stuff deprecated? */
|
/* SPC - Is this stuff deprecated? */
|
||||||
/* It'll be removed as of libpng-1.3.0 - GR-P */
|
/* It'll be removed as of libpng-1.4.0 - GR-P */
|
||||||
/* libpng typedefs for types in zlib. If zlib changes
|
/* libpng typedefs for types in zlib. If zlib changes
|
||||||
* or another compression library is used, then change these.
|
* or another compression library is used, then change these.
|
||||||
* Eliminates need to change all the source files.
|
* Eliminates need to change all the source files.
|
||||||
@@ -1321,7 +1333,7 @@ typedef z_stream FAR * png_zstreamp;
|
|||||||
# define PNGAPI __cdecl
|
# define PNGAPI __cdecl
|
||||||
# undef PNG_IMPEXP
|
# undef PNG_IMPEXP
|
||||||
# define PNG_IMPEXP
|
# define PNG_IMPEXP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall",
|
/* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall",
|
||||||
* you may get warnings regarding the linkage of png_zalloc and png_zfree.
|
* you may get warnings regarding the linkage of png_zalloc and png_zfree.
|
||||||
|
|||||||
@@ -8,8 +8,10 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
|
|||||||
If you modify libpng you may insert additional notices immediately following
|
If you modify libpng you may insert additional notices immediately following
|
||||||
this sentence.
|
this sentence.
|
||||||
|
|
||||||
libpng versions 1.2.6, August 15, 2004, through 1.2.35, February 14, 2009, are
|
This code is released under the libpng license.
|
||||||
Copyright (c) 2004, 2006-2008 Glenn Randers-Pehrson, and are
|
|
||||||
|
libpng versions 1.2.6, August 15, 2004, through 1.2.39, August 13, 2009, are
|
||||||
|
Copyright (c) 2004, 2006-2009 Glenn Randers-Pehrson, and are
|
||||||
distributed according to the same disclaimer and license as libpng-1.2.5
|
distributed according to the same disclaimer and license as libpng-1.2.5
|
||||||
with the following individual added to the list of Contributing Authors
|
with the following individual added to the list of Contributing Authors
|
||||||
|
|
||||||
@@ -106,4 +108,4 @@ certification mark of the Open Source Initiative.
|
|||||||
|
|
||||||
Glenn Randers-Pehrson
|
Glenn Randers-Pehrson
|
||||||
glennrp at users.sourceforge.net
|
glennrp at users.sourceforge.net
|
||||||
February 14, 2009
|
August 13, 2009
|
||||||
|
|||||||
+13
-9
@@ -1,11 +1,14 @@
|
|||||||
|
|
||||||
/* png.c - location for general purpose libpng functions
|
/* png.c - location for general purpose libpng functions
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.37 [June 4, 2009]
|
* Last changed in libpng 1.2.39 [August 13, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define PNG_INTERNAL
|
#define PNG_INTERNAL
|
||||||
@@ -13,7 +16,7 @@
|
|||||||
#include "png.h"
|
#include "png.h"
|
||||||
|
|
||||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||||
typedef version_1_2_37 Your_png_h_is_not_version_1_2_37;
|
typedef version_1_2_39 Your_png_h_is_not_version_1_2_39;
|
||||||
|
|
||||||
/* Version information for C files. This had better match the version
|
/* Version information for C files. This had better match the version
|
||||||
* string defined in png.h. */
|
* string defined in png.h. */
|
||||||
@@ -145,7 +148,7 @@ png_check_sig(png_bytep sig, int num)
|
|||||||
#ifdef PNG_1_0_X
|
#ifdef PNG_1_0_X
|
||||||
voidpf PNGAPI
|
voidpf PNGAPI
|
||||||
#else
|
#else
|
||||||
voidpf /* private */
|
voidpf /* PRIVATE */
|
||||||
#endif
|
#endif
|
||||||
png_zalloc(voidpf png_ptr, uInt items, uInt size)
|
png_zalloc(voidpf png_ptr, uInt items, uInt size)
|
||||||
{
|
{
|
||||||
@@ -189,7 +192,7 @@ png_zalloc(voidpf png_ptr, uInt items, uInt size)
|
|||||||
#ifdef PNG_1_0_X
|
#ifdef PNG_1_0_X
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
#else
|
#else
|
||||||
void /* private */
|
void /* PRIVATE */
|
||||||
#endif
|
#endif
|
||||||
png_zfree(voidpf png_ptr, voidpf ptr)
|
png_zfree(voidpf png_ptr, voidpf ptr)
|
||||||
{
|
{
|
||||||
@@ -602,7 +605,7 @@ png_info_destroy(png_structp png_ptr, png_infop info_ptr)
|
|||||||
|
|
||||||
png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
|
png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
|
||||||
|
|
||||||
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
|
#if defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
|
||||||
if (png_ptr->num_chunk_list)
|
if (png_ptr->num_chunk_list)
|
||||||
{
|
{
|
||||||
png_free(png_ptr, png_ptr->chunk_list);
|
png_free(png_ptr, png_ptr->chunk_list);
|
||||||
@@ -702,7 +705,7 @@ png_charp PNGAPI
|
|||||||
png_get_copyright(png_structp png_ptr)
|
png_get_copyright(png_structp png_ptr)
|
||||||
{
|
{
|
||||||
png_ptr = png_ptr; /* Silence compiler warning about unused png_ptr */
|
png_ptr = png_ptr; /* Silence compiler warning about unused png_ptr */
|
||||||
return ((png_charp) "\n libpng version 1.2.37 - June 4, 2009\n\
|
return ((png_charp) "\n libpng version 1.2.39 - August 13, 2009\n\
|
||||||
Copyright (c) 1998-2009 Glenn Randers-Pehrson\n\
|
Copyright (c) 1998-2009 Glenn Randers-Pehrson\n\
|
||||||
Copyright (c) 1996-1997 Andreas Dilger\n\
|
Copyright (c) 1996-1997 Andreas Dilger\n\
|
||||||
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
|
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
|
||||||
@@ -825,7 +828,8 @@ png_convert_size(size_t size)
|
|||||||
* A and D, and X || Y is (X << 16) + Y.
|
* A and D, and X || Y is (X << 16) + Y.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void png_64bit_product (long v1, long v2, unsigned long *hi_product,
|
void /* PRIVATE */
|
||||||
|
png_64bit_product (long v1, long v2, unsigned long *hi_product,
|
||||||
unsigned long *lo_product)
|
unsigned long *lo_product)
|
||||||
{
|
{
|
||||||
int a, b, c, d;
|
int a, b, c, d;
|
||||||
@@ -849,7 +853,7 @@ void png_64bit_product (long v1, long v2, unsigned long *hi_product,
|
|||||||
*lo_product = (unsigned long)lo;
|
*lo_product = (unsigned long)lo;
|
||||||
}
|
}
|
||||||
|
|
||||||
int /* private */
|
int /* PRIVATE */
|
||||||
png_check_cHRM_fixed(png_structp png_ptr,
|
png_check_cHRM_fixed(png_structp png_ptr,
|
||||||
png_fixed_point white_x, png_fixed_point white_y, png_fixed_point red_x,
|
png_fixed_point white_x, png_fixed_point white_y, png_fixed_point red_x,
|
||||||
png_fixed_point red_y, png_fixed_point green_x, png_fixed_point green_y,
|
png_fixed_point red_y, png_fixed_point green_x, png_fixed_point green_y,
|
||||||
|
|||||||
@@ -2,11 +2,14 @@
|
|||||||
/* pngerror.c - stub functions for i/o and memory allocation
|
/* pngerror.c - stub functions for i/o and memory allocation
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.37 [June 4, 2009]
|
* Last changed in libpng 1.2.37 [June 4, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
|
*
|
||||||
* This file provides a location for all error handling. Users who
|
* This file provides a location for all error handling. Users who
|
||||||
* need special error handling are expected to write replacement functions
|
* need special error handling are expected to write replacement functions
|
||||||
* and use png_set_error_fn() to use those functions. See the instructions
|
* and use png_set_error_fn() to use those functions. See the instructions
|
||||||
|
|||||||
@@ -2,10 +2,14 @@
|
|||||||
/* pngget.c - retrieval of values from info struct
|
/* pngget.c - retrieval of values from info struct
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.37 [June 4, 2009]
|
* Last changed in libpng 1.2.37 [June 4, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define PNG_INTERNAL
|
#define PNG_INTERNAL
|
||||||
@@ -934,6 +938,6 @@ png_get_user_height_max (png_structp png_ptr)
|
|||||||
return (png_ptr? png_ptr->user_height_max : 0);
|
return (png_ptr? png_ptr->user_height_max : 0);
|
||||||
}
|
}
|
||||||
#endif /* ?PNG_SET_USER_LIMITS_SUPPORTED */
|
#endif /* ?PNG_SET_USER_LIMITS_SUPPORTED */
|
||||||
|
|
||||||
|
|
||||||
#endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */
|
#endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */
|
||||||
|
|||||||
@@ -2,11 +2,14 @@
|
|||||||
/* pngmem.c - stub functions for memory allocation
|
/* pngmem.c - stub functions for memory allocation
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.37 [June 4, 2009]
|
* Last changed in libpng 1.2.37 [June 4, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
|
*
|
||||||
* This file provides a location for all memory allocation. Users who
|
* This file provides a location for all memory allocation. Users who
|
||||||
* need special memory handling are expected to supply replacement
|
* need special memory handling are expected to supply replacement
|
||||||
* functions for png_malloc() and png_free(), and to use
|
* functions for png_malloc() and png_free(), and to use
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
|
|
||||||
/* pngpread.c - read a png file in push mode
|
/* pngpread.c - read a png file in push mode
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.37 [June 4, 2009]
|
* Last changed in libpng 1.2.38 [July 16, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define PNG_INTERNAL
|
#define PNG_INTERNAL
|
||||||
|
|||||||
@@ -2,11 +2,14 @@
|
|||||||
/* pngread.c - read a PNG file
|
/* pngread.c - read a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.37 [June 4, 2009]
|
* Last changed in libpng 1.2.37 [June 4, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
|
*
|
||||||
* This file contains routines that an application calls directly to
|
* This file contains routines that an application calls directly to
|
||||||
* read a PNG file or stream.
|
* read a PNG file or stream.
|
||||||
*/
|
*/
|
||||||
@@ -102,7 +105,7 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
|
png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
|
||||||
|
|
||||||
|
|
||||||
if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH)
|
if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,11 +2,14 @@
|
|||||||
/* pngrio.c - functions for data input
|
/* pngrio.c - functions for data input
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.37 [June 4, 2009]
|
* Last changed in libpng 1.2.37 [June 4, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
|
*
|
||||||
* This file provides a location for all input. Users who need
|
* This file provides a location for all input. Users who need
|
||||||
* special handling are expected to write a function that has the same
|
* special handling are expected to write a function that has the same
|
||||||
* arguments as this and performs a similar function, but that possibly
|
* arguments as this and performs a similar function, but that possibly
|
||||||
|
|||||||
+12
-13
@@ -1,12 +1,15 @@
|
|||||||
|
|
||||||
/* pngrtran.c - transforms the data in a row for PNG readers
|
/* pngrtran.c - transforms the data in a row for PNG readers
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.37 [June 4, 2009]
|
* Last changed in libpng 1.2.38 [July 16, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
|
*
|
||||||
* This file contains functions optionally called by an application
|
* This file contains functions optionally called by an application
|
||||||
* in order to tell libpng how to handle data when reading a PNG.
|
* in order to tell libpng how to handle data when reading a PNG.
|
||||||
* Transformations that are used in both reading and writing are
|
* Transformations that are used in both reading and writing are
|
||||||
@@ -714,8 +717,8 @@ png_set_rgb_to_gray_fixed(png_structp png_ptr, int error_action,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
|
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
|
||||||
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
|
defined(PNG_LEGACY_SUPPORTED) || \
|
||||||
defined(PNG_LEGACY_SUPPORTED)
|
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
png_set_read_user_transform_fn(png_structp png_ptr, png_user_transform_ptr
|
png_set_read_user_transform_fn(png_structp png_ptr, png_user_transform_ptr
|
||||||
read_user_transform_fn)
|
read_user_transform_fn)
|
||||||
@@ -1177,10 +1180,6 @@ png_read_transform_info(png_structp png_ptr, png_infop info_ptr)
|
|||||||
{
|
{
|
||||||
if (png_ptr->transformations & PNG_EXPAND_tRNS)
|
if (png_ptr->transformations & PNG_EXPAND_tRNS)
|
||||||
info_ptr->color_type |= PNG_COLOR_MASK_ALPHA;
|
info_ptr->color_type |= PNG_COLOR_MASK_ALPHA;
|
||||||
#if 0 /* Removed from libpng-1.2.27 */
|
|
||||||
else
|
|
||||||
info_ptr->color_type |= PNG_COLOR_MASK_COLOR;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
if (info_ptr->bit_depth < 8)
|
if (info_ptr->bit_depth < 8)
|
||||||
info_ptr->bit_depth = 8;
|
info_ptr->bit_depth = 8;
|
||||||
@@ -1374,12 +1373,12 @@ png_do_read_transformations(png_structp png_ptr)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* From Andreas Dilger e-mail to png-implement, 26 March 1998:
|
/* From Andreas Dilger e-mail to png-implement, 26 March 1998:
|
||||||
*
|
*
|
||||||
* In most cases, the "simple transparency" should be done prior to doing
|
* In most cases, the "simple transparency" should be done prior to doing
|
||||||
* gray-to-RGB, or you will have to test 3x as many bytes to check if a
|
* gray-to-RGB, or you will have to test 3x as many bytes to check if a
|
||||||
* pixel is transparent. You would also need to make sure that the
|
* pixel is transparent. You would also need to make sure that the
|
||||||
* transparency information is upgraded to RGB.
|
* transparency information is upgraded to RGB.
|
||||||
*
|
*
|
||||||
* To summarize, the current flow is:
|
* To summarize, the current flow is:
|
||||||
* - Gray + simple transparency -> compare 1 or 2 gray bytes and composite
|
* - Gray + simple transparency -> compare 1 or 2 gray bytes and composite
|
||||||
* with background "in place" if transparent,
|
* with background "in place" if transparent,
|
||||||
@@ -4202,7 +4201,7 @@ png_build_gamma_table(png_structp png_ptr)
|
|||||||
|
|
||||||
png_ptr->gamma_16_table = (png_uint_16pp)png_malloc(png_ptr,
|
png_ptr->gamma_16_table = (png_uint_16pp)png_malloc(png_ptr,
|
||||||
(png_uint_32)(num * png_sizeof(png_uint_16p)));
|
(png_uint_32)(num * png_sizeof(png_uint_16p)));
|
||||||
png_memset(png_ptr->gamma_16_table, 0, num * png_sizeof(png_uint_16p));
|
png_memset(png_ptr->gamma_16_table, 0, num * png_sizeof(png_uint_16p));
|
||||||
|
|
||||||
if (png_ptr->transformations & (PNG_16_TO_8 | PNG_BACKGROUND))
|
if (png_ptr->transformations & (PNG_16_TO_8 | PNG_BACKGROUND))
|
||||||
{
|
{
|
||||||
@@ -4264,7 +4263,7 @@ png_build_gamma_table(png_structp png_ptr)
|
|||||||
|
|
||||||
png_ptr->gamma_16_to_1 = (png_uint_16pp)png_malloc(png_ptr,
|
png_ptr->gamma_16_to_1 = (png_uint_16pp)png_malloc(png_ptr,
|
||||||
(png_uint_32)(num * png_sizeof(png_uint_16p )));
|
(png_uint_32)(num * png_sizeof(png_uint_16p )));
|
||||||
png_memset(png_ptr->gamma_16_to_1, 0, num * png_sizeof(png_uint_16p));
|
png_memset(png_ptr->gamma_16_to_1, 0, num * png_sizeof(png_uint_16p));
|
||||||
|
|
||||||
for (i = 0; i < num; i++)
|
for (i = 0; i < num; i++)
|
||||||
{
|
{
|
||||||
@@ -4290,7 +4289,7 @@ png_build_gamma_table(png_structp png_ptr)
|
|||||||
png_ptr->gamma_16_from_1 = (png_uint_16pp)png_malloc(png_ptr,
|
png_ptr->gamma_16_from_1 = (png_uint_16pp)png_malloc(png_ptr,
|
||||||
(png_uint_32)(num * png_sizeof(png_uint_16p)));
|
(png_uint_32)(num * png_sizeof(png_uint_16p)));
|
||||||
png_memset(png_ptr->gamma_16_from_1, 0,
|
png_memset(png_ptr->gamma_16_from_1, 0,
|
||||||
num * png_sizeof(png_uint_16p));
|
num * png_sizeof(png_uint_16p));
|
||||||
|
|
||||||
for (i = 0; i < num; i++)
|
for (i = 0; i < num; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
+14
-6
@@ -1,12 +1,15 @@
|
|||||||
|
|
||||||
/* pngrutil.c - utilities to read a PNG file
|
/* pngrutil.c - utilities to read a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.37 [June 4, 2009]
|
* Last changed in libpng 1.2.38 [July 16, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
|
*
|
||||||
* This file contains routines that are only called from within
|
* This file contains routines that are only called from within
|
||||||
* libpng itself during the course of reading an image.
|
* libpng itself during the course of reading an image.
|
||||||
*/
|
*/
|
||||||
@@ -2251,7 +2254,7 @@ png_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
|
|
||||||
if (!(png_ptr->chunk_name[0] & 0x20))
|
if (!(png_ptr->chunk_name[0] & 0x20))
|
||||||
{
|
{
|
||||||
#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
|
#if defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
|
||||||
if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
|
if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
|
||||||
PNG_HANDLE_CHUNK_ALWAYS
|
PNG_HANDLE_CHUNK_ALWAYS
|
||||||
#if defined(PNG_READ_USER_CHUNKS_SUPPORTED)
|
#if defined(PNG_READ_USER_CHUNKS_SUPPORTED)
|
||||||
@@ -2263,8 +2266,11 @@ png_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
|
#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
|
||||||
if ((png_ptr->flags & PNG_FLAG_KEEP_UNKNOWN_CHUNKS) ||
|
if ((png_ptr->flags & PNG_FLAG_KEEP_UNKNOWN_CHUNKS)
|
||||||
(png_ptr->read_user_chunk_fn != NULL))
|
#if defined(PNG_READ_USER_CHUNKS_SUPPORTED)
|
||||||
|
|| (png_ptr->read_user_chunk_fn != NULL)
|
||||||
|
#endif
|
||||||
|
)
|
||||||
{
|
{
|
||||||
#ifdef PNG_MAX_MALLOC_64K
|
#ifdef PNG_MAX_MALLOC_64K
|
||||||
if (length > (png_uint_32)65535L)
|
if (length > (png_uint_32)65535L)
|
||||||
@@ -2275,7 +2281,7 @@ png_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
png_memcpy((png_charp)png_ptr->unknown_chunk.name,
|
png_memcpy((png_charp)png_ptr->unknown_chunk.name,
|
||||||
(png_charp)png_ptr->chunk_name,
|
(png_charp)png_ptr->chunk_name,
|
||||||
png_sizeof(png_ptr->unknown_chunk.name));
|
png_sizeof(png_ptr->unknown_chunk.name));
|
||||||
png_ptr->unknown_chunk.name[png_sizeof(png_ptr->unknown_chunk.name)-1] = '\0';
|
png_ptr->unknown_chunk.name[png_sizeof(png_ptr->unknown_chunk.name)-1] = '\0';
|
||||||
png_ptr->unknown_chunk.size = (png_size_t)length;
|
png_ptr->unknown_chunk.size = (png_size_t)length;
|
||||||
@@ -2298,8 +2304,10 @@ png_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
{
|
{
|
||||||
if (!(png_ptr->chunk_name[0] & 0x20))
|
if (!(png_ptr->chunk_name[0] & 0x20))
|
||||||
|
#if defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
|
||||||
if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
|
if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
|
||||||
PNG_HANDLE_CHUNK_ALWAYS)
|
PNG_HANDLE_CHUNK_ALWAYS)
|
||||||
|
#endif
|
||||||
png_chunk_error(png_ptr, "unknown critical chunk");
|
png_chunk_error(png_ptr, "unknown critical chunk");
|
||||||
png_set_unknown_chunks(png_ptr, info_ptr,
|
png_set_unknown_chunks(png_ptr, info_ptr,
|
||||||
&png_ptr->unknown_chunk, 1);
|
&png_ptr->unknown_chunk, 1);
|
||||||
|
|||||||
+16
-12
@@ -1,12 +1,15 @@
|
|||||||
|
|
||||||
/* pngset.c - storage of image information into info struct
|
/* pngset.c - storage of image information into info struct
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.37 [June 4, 2009]
|
* Last changed in libpng 1.2.39 [August 13, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
|
*
|
||||||
* The functions here are used during reads to store data from the file
|
* The functions here are used during reads to store data from the file
|
||||||
* into the info struct, and during writes to store application data
|
* into the info struct, and during writes to store application data
|
||||||
* into the info struct for writing into the file. This abstracts the
|
* into the info struct for writing into the file. This abstracts the
|
||||||
@@ -243,7 +246,7 @@ png_set_IHDR(png_structp png_ptr, png_infop info_ptr,
|
|||||||
|
|
||||||
/* Check other values */
|
/* Check other values */
|
||||||
if (bit_depth != 1 && bit_depth != 2 && bit_depth != 4 &&
|
if (bit_depth != 1 && bit_depth != 2 && bit_depth != 4 &&
|
||||||
bit_depth != 8 && bit_depth != 16)
|
bit_depth != 8 && bit_depth != 16)
|
||||||
png_error(png_ptr, "Invalid bit depth in IHDR");
|
png_error(png_ptr, "Invalid bit depth in IHDR");
|
||||||
|
|
||||||
if (color_type < 0 || color_type == 1 ||
|
if (color_type < 0 || color_type == 1 ||
|
||||||
@@ -354,7 +357,7 @@ png_set_pCAL(png_structp png_ptr, png_infop info_ptr,
|
|||||||
info_ptr->pcal_purpose = (png_charp)png_malloc_warn(png_ptr, length);
|
info_ptr->pcal_purpose = (png_charp)png_malloc_warn(png_ptr, length);
|
||||||
if (info_ptr->pcal_purpose == NULL)
|
if (info_ptr->pcal_purpose == NULL)
|
||||||
{
|
{
|
||||||
png_warning(png_ptr, "Insufficient memory for pCAL purpose.");
|
png_warning(png_ptr, "Insufficient memory for pCAL purpose.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
png_memcpy(info_ptr->pcal_purpose, purpose, (png_size_t)length);
|
png_memcpy(info_ptr->pcal_purpose, purpose, (png_size_t)length);
|
||||||
@@ -371,7 +374,7 @@ png_set_pCAL(png_structp png_ptr, png_infop info_ptr,
|
|||||||
info_ptr->pcal_units = (png_charp)png_malloc_warn(png_ptr, length);
|
info_ptr->pcal_units = (png_charp)png_malloc_warn(png_ptr, length);
|
||||||
if (info_ptr->pcal_units == NULL)
|
if (info_ptr->pcal_units == NULL)
|
||||||
{
|
{
|
||||||
png_warning(png_ptr, "Insufficient memory for pCAL units.");
|
png_warning(png_ptr, "Insufficient memory for pCAL units.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
png_memcpy(info_ptr->pcal_units, units, (png_size_t)length);
|
png_memcpy(info_ptr->pcal_units, units, (png_size_t)length);
|
||||||
@@ -380,7 +383,7 @@ png_set_pCAL(png_structp png_ptr, png_infop info_ptr,
|
|||||||
(png_uint_32)((nparams + 1) * png_sizeof(png_charp)));
|
(png_uint_32)((nparams + 1) * png_sizeof(png_charp)));
|
||||||
if (info_ptr->pcal_params == NULL)
|
if (info_ptr->pcal_params == NULL)
|
||||||
{
|
{
|
||||||
png_warning(png_ptr, "Insufficient memory for pCAL params.");
|
png_warning(png_ptr, "Insufficient memory for pCAL params.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -394,8 +397,8 @@ png_set_pCAL(png_structp png_ptr, png_infop info_ptr,
|
|||||||
info_ptr->pcal_params[i] = (png_charp)png_malloc_warn(png_ptr, length);
|
info_ptr->pcal_params[i] = (png_charp)png_malloc_warn(png_ptr, length);
|
||||||
if (info_ptr->pcal_params[i] == NULL)
|
if (info_ptr->pcal_params[i] == NULL)
|
||||||
{
|
{
|
||||||
png_warning(png_ptr, "Insufficient memory for pCAL parameter.");
|
png_warning(png_ptr, "Insufficient memory for pCAL parameter.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
png_memcpy(info_ptr->pcal_params[i], params[i], (png_size_t)length);
|
png_memcpy(info_ptr->pcal_params[i], params[i], (png_size_t)length);
|
||||||
}
|
}
|
||||||
@@ -705,7 +708,8 @@ png_set_text_2(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr,
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
png_debug1(1, "in %s storage function", (png_ptr->chunk_name[0] == '\0' ?
|
png_debug1(1, "in %s storage function", ((png_ptr == NULL ||
|
||||||
|
png_ptr->chunk_name[0] == '\0') ?
|
||||||
"text" : (png_const_charp)png_ptr->chunk_name));
|
"text" : (png_const_charp)png_ptr->chunk_name));
|
||||||
|
|
||||||
if (png_ptr == NULL || info_ptr == NULL || num_text == 0)
|
if (png_ptr == NULL || info_ptr == NULL || num_text == 0)
|
||||||
@@ -1013,7 +1017,7 @@ png_set_unknown_chunks(png_structp png_ptr,
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (png_ptr == NULL || info_ptr == NULL || num_unknowns == 0)
|
if (png_ptr == NULL || info_ptr == NULL || num_unknowns == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
np = (png_unknown_chunkp)png_malloc_warn(png_ptr,
|
np = (png_unknown_chunkp)png_malloc_warn(png_ptr,
|
||||||
(png_uint_32)((info_ptr->unknown_chunks_num + num_unknowns) *
|
(png_uint_32)((info_ptr->unknown_chunks_num + num_unknowns) *
|
||||||
@@ -1035,8 +1039,8 @@ png_set_unknown_chunks(png_structp png_ptr,
|
|||||||
png_unknown_chunkp to = np + info_ptr->unknown_chunks_num + i;
|
png_unknown_chunkp to = np + info_ptr->unknown_chunks_num + i;
|
||||||
png_unknown_chunkp from = unknowns + i;
|
png_unknown_chunkp from = unknowns + i;
|
||||||
|
|
||||||
png_memcpy((png_charp)to->name,
|
png_memcpy((png_charp)to->name,
|
||||||
(png_charp)from->name,
|
(png_charp)from->name,
|
||||||
png_sizeof(from->name));
|
png_sizeof(from->name));
|
||||||
to->name[png_sizeof(to->name)-1] = '\0';
|
to->name[png_sizeof(to->name)-1] = '\0';
|
||||||
to->size = from->size;
|
to->size = from->size;
|
||||||
|
|||||||
@@ -2,10 +2,13 @@
|
|||||||
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
|
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.36 [May 14, 2009]
|
* Last changed in libpng 1.2.36 [May 14, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define PNG_INTERNAL
|
#define PNG_INTERNAL
|
||||||
@@ -634,8 +637,8 @@ png_do_bgr(png_row_infop row_info, png_bytep row)
|
|||||||
#endif /* PNG_READ_BGR_SUPPORTED or PNG_WRITE_BGR_SUPPORTED */
|
#endif /* PNG_READ_BGR_SUPPORTED or PNG_WRITE_BGR_SUPPORTED */
|
||||||
|
|
||||||
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
|
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
|
||||||
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
|
defined(PNG_LEGACY_SUPPORTED) || \
|
||||||
defined(PNG_LEGACY_SUPPORTED)
|
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
png_set_user_transform_info(png_structp png_ptr, png_voidp
|
png_set_user_transform_info(png_structp png_ptr, png_voidp
|
||||||
user_transform_ptr, int user_transform_depth, int user_transform_channels)
|
user_transform_ptr, int user_transform_depth, int user_transform_channels)
|
||||||
|
|||||||
@@ -2,11 +2,14 @@
|
|||||||
/* pngwio.c - functions for data output
|
/* pngwio.c - functions for data output
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.37 [June 4, 2009]
|
* Last changed in libpng 1.2.37 [June 4, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
|
*
|
||||||
* This file provides a location for all output. Users who need
|
* This file provides a location for all output. Users who need
|
||||||
* special handling are expected to write functions that have the same
|
* special handling are expected to write functions that have the same
|
||||||
* arguments as these and perform similar functions, but that possibly
|
* arguments as these and perform similar functions, but that possibly
|
||||||
|
|||||||
@@ -2,10 +2,13 @@
|
|||||||
/* pngwrite.c - general routines to write a PNG file
|
/* pngwrite.c - general routines to write a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.37 [June 4, 2009]
|
* Last changed in libpng 1.2.37 [June 4, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Get internal access to png.h */
|
/* Get internal access to png.h */
|
||||||
|
|||||||
@@ -2,10 +2,13 @@
|
|||||||
/* pngwtran.c - transforms the data in a row for PNG writers
|
/* pngwtran.c - transforms the data in a row for PNG writers
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.37 [June 4, 2009]
|
* Last changed in libpng 1.2.37 [June 4, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define PNG_INTERNAL
|
#define PNG_INTERNAL
|
||||||
|
|||||||
+19
-5
@@ -1,11 +1,14 @@
|
|||||||
|
|
||||||
/* pngwutil.c - utilities to write a PNG file
|
/* pngwutil.c - utilities to write a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.2.36 [June 4, 2009]
|
* Last changed in libpng 1.2.39 [August 13, 2009]
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
|
||||||
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (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
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define PNG_INTERNAL
|
#define PNG_INTERNAL
|
||||||
@@ -785,6 +788,14 @@ png_write_iCCP(png_structp png_ptr, png_charp name, int compression_type,
|
|||||||
((*( (png_bytep)profile + 2))<< 8) |
|
((*( (png_bytep)profile + 2))<< 8) |
|
||||||
((*( (png_bytep)profile + 3)) );
|
((*( (png_bytep)profile + 3)) );
|
||||||
|
|
||||||
|
if (embedded_profile_len < 0)
|
||||||
|
{
|
||||||
|
png_warning(png_ptr,
|
||||||
|
"Embedded profile length in iCCP chunk is negative");
|
||||||
|
png_free(png_ptr, new_name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (profile_len < embedded_profile_len)
|
if (profile_len < embedded_profile_len)
|
||||||
{
|
{
|
||||||
png_warning(png_ptr,
|
png_warning(png_ptr,
|
||||||
@@ -988,7 +999,7 @@ png_write_cHRM(png_structp png_ptr, double white_x, double white_y,
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
/* Each value is saved in 1/100,000ths */
|
/* Each value is saved in 1/100,000ths */
|
||||||
|
|
||||||
png_save_uint_32(buf, int_white_x);
|
png_save_uint_32(buf, int_white_x);
|
||||||
png_save_uint_32(buf + 4, int_white_y);
|
png_save_uint_32(buf + 4, int_white_y);
|
||||||
|
|
||||||
@@ -2116,9 +2127,12 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
|
|||||||
png_uint_32 mins, bpp;
|
png_uint_32 mins, bpp;
|
||||||
png_byte filter_to_do = png_ptr->do_filter;
|
png_byte filter_to_do = png_ptr->do_filter;
|
||||||
png_uint_32 row_bytes = row_info->rowbytes;
|
png_uint_32 row_bytes = row_info->rowbytes;
|
||||||
#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
|
#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
|
||||||
int num_p_filters = (int)png_ptr->num_prev_filters;
|
int num_p_filters = (int)png_ptr->num_prev_filters;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
png_debug(1, "in png_write_find_filter");
|
||||||
|
|
||||||
|
|
||||||
png_debug(1, "in png_write_find_filter");
|
png_debug(1, "in png_write_find_filter");
|
||||||
/* Find out how many bytes offset each pixel is */
|
/* Find out how many bytes offset each pixel is */
|
||||||
|
|||||||
Reference in New Issue
Block a user