mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
[master] Imported from libpng-1.6.14.tar
This commit is contained in:
parent
d55c4f32fc
commit
eed640dbe8
74
ANNOUNCE
74
ANNOUNCE
@ -1,4 +1,4 @@
|
|||||||
Libpng 1.6.13 - August 21, 2014
|
Libpng 1.6.14 - October 23, 2014
|
||||||
|
|
||||||
This is a public release of libpng, intended for use in production codes.
|
This is a public release of libpng, intended for use in production codes.
|
||||||
|
|
||||||
@ -7,48 +7,52 @@ Files available for download:
|
|||||||
Source files with LF line endings (for Unix/Linux) and with a
|
Source files with LF line endings (for Unix/Linux) and with a
|
||||||
"configure" script
|
"configure" script
|
||||||
|
|
||||||
libpng-1.6.13.tar.xz (LZMA-compressed, recommended)
|
libpng-1.6.14.tar.xz (LZMA-compressed, recommended)
|
||||||
libpng-1.6.13.tar.gz
|
libpng-1.6.14.tar.gz
|
||||||
|
|
||||||
Source files with CRLF line endings (for Windows), without the
|
Source files with CRLF line endings (for Windows), without the
|
||||||
"configure" script
|
"configure" script
|
||||||
|
|
||||||
lpng1613.7z (LZMA-compressed, recommended)
|
lpng1614.7z (LZMA-compressed, recommended)
|
||||||
lpng1613.zip
|
lpng1614.zip
|
||||||
|
|
||||||
Other information:
|
Other information:
|
||||||
|
|
||||||
libpng-1.6.13-README.txt
|
libpng-1.6.14-README.txt
|
||||||
libpng-1.6.13-LICENSE.txt
|
libpng-1.6.14-LICENSE.txt
|
||||||
libpng-1.6.13-*.asc (armored detached GPG signatures)
|
libpng-1.6.14-*.asc (armored detached GPG signatures)
|
||||||
|
|
||||||
Changes since the last public release (1.6.12):
|
Changes since the last public release (1.6.13):
|
||||||
|
Guard usage of png_ptr->options with #ifdef PNG_SET_OPTION_SUPPORTED.
|
||||||
Quieted -Wsign-compare and -Wclobber compiler warnings in
|
Do not build contrib/tools/pngfix.c when PNG_SETJMP_NOT_SUPPORTED,
|
||||||
contrib/pngminus/*.c
|
to allow "make" to complete without setjmp support (bug report by
|
||||||
Added "(void) png_ptr;" where needed in contrib/gregbook to quiet
|
Claudio Fontana)
|
||||||
compiler complaints about unused pointers.
|
Add "#include <setjmp.h>" to contrib/tools/pngfix.c (John Bowler)
|
||||||
Split a long output string in contrib/gregbook/rpng2-x.c.
|
Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
|
||||||
Added "PNG_SET_OPTION" requirement for sRGB chunk support to pnglibconf.dfa,
|
because usleep() is deprecated.
|
||||||
Needed for write-only support (John Bowler).
|
Define usleep() in contrib/gregbook/rpng2-x.c if not already defined
|
||||||
Changed "if defined(__ARM_NEON__)" to
|
in unistd.h and nanosleep() is not available; fixes error introduced
|
||||||
"if (defined(__ARM_NEON__) || defined(__ARM_NEON))" (James Wu).
|
in libpng-1.6.13.
|
||||||
Fixed clang no-warning builds: png_digit was defined but never used.
|
Define FE_DIVBYZERO, FE_INVALID, and FE_OVERFLOW in pngvalid.c if not
|
||||||
Fixed an incorrect separator ("/" should be "\") in scripts/makefile.vcwin32
|
already defined (bug report by "zootus at users.sourceforge.net").
|
||||||
(bug report from Wolfgang S. Kechel). Bug was introduced in libpng-1.6.11.
|
Fixed incorrect handling of the iTXt compression flag in pngrutil.c
|
||||||
Also fixed makefile.bc32, makefile.bor, makefile.msc, makefile.intel, and
|
(bug report by Shunsaku Hirata). Bug was introduced in libpng-1.6.0.
|
||||||
makefile.tc3 similarly.
|
Added "option READ_iCCP enables READ_COMPRESSED_TEXT" to pnglibconf.dfa
|
||||||
Removed scripts/makefile.elf. It has not worked since libpng-1.5.0beta14
|
Removed unused "text_len" parameter from private function png_write_zTXt().
|
||||||
due to elimination of the PNG_FUNCTION_EXPORT and PNG_DATA_EXPORT
|
Conditionally compile some code in png_deflate_claim(), when
|
||||||
definitions from pngconf.h.
|
PNG_WARNINGS_SUPPORTED and PNG_ERROR_TEXT_SUPPORTED are disabled.
|
||||||
Ensure that CMakeLists.txt makes the target "lib" directory before making
|
Replaced repeated code in pngpread.c with PNG_PUSH_SAVE_BUFFER_IF_FULL.
|
||||||
symbolic link into it (SourceForge bug report #226 by Rolf Timmermans).
|
Added "chunk iTXt enables TEXT" and "chunk zTXt enables TEXT"
|
||||||
Added opinion that the ECCN (Export Control Classification Number) for
|
to pnglibconf.dfa.
|
||||||
libpng is EAR99 to the README file.
|
Removed "option READ_COMPRESSED_TEXT enables READ_TEXT" from pnglibconf.dfa,
|
||||||
Eliminated use of "$<" in makefile explicit rules, when copying
|
to make it possible to configure a libpng that supports iCCP but not TEXT.
|
||||||
$PNGLIBCONF_H_PREBUILT. This does not work on some versions of make;
|
Removed "option WRITE_COMPRESSED_TEXT enables WRITE_TEXT" from pnglibconf.dfa
|
||||||
bug introduced in libpng version 1.6.11.
|
Only mark text chunks as written after successfully writing them.
|
||||||
Made "ccopts" agree with "CFLAGS" in scripts/makefile.hp* and makefile.*sunu
|
Fixed some typos in comments.
|
||||||
|
Changed png_convert_to_rfc_1123() to png_convert_to_rfc_1123_buffer()
|
||||||
|
in the manual, to reflect the change made in libpng-1.6.0.
|
||||||
|
Updated README file to explain that direct access to the png_struct
|
||||||
|
and info_struct members has not been permitted since libpng-1.5.0.
|
||||||
|
|
||||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
||||||
(subscription required; visit
|
(subscription required; visit
|
||||||
|
|||||||
57
CHANGES
57
CHANGES
@ -4430,7 +4430,7 @@ Version 1.6.1beta05 [March 1, 2013]
|
|||||||
Version 1.6.1beta06 [March 4, 2013]
|
Version 1.6.1beta06 [March 4, 2013]
|
||||||
Better documentation of unknown handling API interactions.
|
Better documentation of unknown handling API interactions.
|
||||||
Corrected Android builds and corrected libpng.vers with symbol
|
Corrected Android builds and corrected libpng.vers with symbol
|
||||||
prefixing This adds an API to set optimization options externally,
|
prefixing. This adds an API to set optimization options externally,
|
||||||
providing an alternative and general solution for the non-portable
|
providing an alternative and general solution for the non-portable
|
||||||
run-time tests used by the ARM Neon code. It also makes those tests
|
run-time tests used by the ARM Neon code. It also makes those tests
|
||||||
compile and link on Android.
|
compile and link on Android.
|
||||||
@ -4978,6 +4978,61 @@ Version 1.6.13rc01 [August 14, 2014]
|
|||||||
Version 1.6.13 [August 21, 2014]
|
Version 1.6.13 [August 21, 2014]
|
||||||
No changes.
|
No changes.
|
||||||
|
|
||||||
|
Version 1.6.14beta01 [September 14, 2014]
|
||||||
|
Guard usage of png_ptr->options with #ifdef PNG_SET_OPTION_SUPPORTED.
|
||||||
|
Do not build contrib/tools/pngfix.c when PNG_SETJMP_NOT_SUPPORTED,
|
||||||
|
to allow "make" to complete without setjmp support (bug report by
|
||||||
|
Claudio Fontana)
|
||||||
|
Add "#include <setjmp.h>" to contrib/tools/pngfix.c (John Bowler)
|
||||||
|
|
||||||
|
Version 1.6.14beta02 [September 18, 2014]
|
||||||
|
Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
|
||||||
|
because usleep() is deprecated.
|
||||||
|
Define usleep() in contrib/gregbook/rpng2-x.c if not already defined
|
||||||
|
in unistd.h and nanosleep() is not available; fixes error introduced
|
||||||
|
in libpng-1.6.13.
|
||||||
|
Disable floating point exception handling in pngvalid.c when
|
||||||
|
PNG_FLOATING_ARITHMETIC is not supported (bug report by "zootus
|
||||||
|
at users.sourceforge.net").
|
||||||
|
|
||||||
|
Version 1.6.14beta03 [September 19, 2014]
|
||||||
|
Define FE_DIVBYZERO, FE_INVALID, and FE_OVERFLOW in pngvalid.c if not
|
||||||
|
already defined. Revert floating point exception handling in pngvalid.c
|
||||||
|
to version 1.6.14beta01 behavior.
|
||||||
|
|
||||||
|
Version 1.6.14beta04 [September 27, 2014]
|
||||||
|
Fixed incorrect handling of the iTXt compression flag in pngrutil.c
|
||||||
|
(bug report by Shunsaku Hirata). Bug was introduced in libpng-1.6.0.
|
||||||
|
|
||||||
|
Version 1.6.14beta05 [October 1, 2014]
|
||||||
|
Added "option READ_iCCP enables READ_COMPRESSED_TEXT" to pnglibconf.dfa
|
||||||
|
|
||||||
|
Version 1.6.14beta06 [October 5, 2014]
|
||||||
|
Removed unused "text_len" parameter from private function png_write_zTXt().
|
||||||
|
Conditionally compile some code in png_deflate_claim(), when
|
||||||
|
PNG_WARNINGS_SUPPORTED and PNG_ERROR_TEXT_SUPPORTED are disabled.
|
||||||
|
Replaced repeated code in pngpread.c with PNG_PUSH_SAVE_BUFFER_IF_FULL.
|
||||||
|
Added "chunk iTXt enables TEXT" and "chunk zTXt enables TEXT"
|
||||||
|
to pnglibconf.dfa.
|
||||||
|
Removed "option READ_COMPRESSED_TEXT enables READ_TEXT" from pnglibconf.dfa,
|
||||||
|
to make it possible to configure a libpng that supports iCCP but not TEXT.
|
||||||
|
|
||||||
|
Version 1.6.14beta07 [October 7, 2014]
|
||||||
|
Removed "option WRITE_COMPRESSED_TEXT enables WRITE_TEXT" from pnglibconf.dfa
|
||||||
|
Only mark text chunks as written after successfully writing them.
|
||||||
|
|
||||||
|
Version 1.6.14rc01 [October 15, 2014]
|
||||||
|
Fixed some typos in comments.
|
||||||
|
|
||||||
|
Version 1.6.14rc02 [October 17, 2014]
|
||||||
|
Changed png_convert_to_rfc_1123() to png_convert_to_rfc_1123_buffer()
|
||||||
|
in the manual, to reflect the change made in libpng-1.6.0.
|
||||||
|
Updated README file to explain that direct access to the png_struct
|
||||||
|
and info_struct members has not been permitted since libpng-1.5.0.
|
||||||
|
|
||||||
|
Version 1.6.14 [October 23, 2014]
|
||||||
|
No changes.
|
||||||
|
|
||||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
||||||
(subscription required; visit
|
(subscription required; visit
|
||||||
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
||||||
|
|||||||
@ -16,7 +16,7 @@ enable_testing()
|
|||||||
|
|
||||||
set(PNGLIB_MAJOR 1)
|
set(PNGLIB_MAJOR 1)
|
||||||
set(PNGLIB_MINOR 6)
|
set(PNGLIB_MINOR 6)
|
||||||
set(PNGLIB_RELEASE 13)
|
set(PNGLIB_RELEASE 14)
|
||||||
set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR})
|
set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR})
|
||||||
set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE})
|
set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE})
|
||||||
|
|
||||||
@ -253,7 +253,7 @@ endif(NOT WIN32 OR CYGWIN OR MINGW)
|
|||||||
# SET UP LINKS
|
# SET UP LINKS
|
||||||
if(PNG_SHARED)
|
if(PNG_SHARED)
|
||||||
set_target_properties(${PNG_LIB_NAME} PROPERTIES
|
set_target_properties(${PNG_LIB_NAME} PROPERTIES
|
||||||
# VERSION 16.${PNGLIB_RELEASE}.1.6.13
|
# VERSION 16.${PNGLIB_RELEASE}.1.6.14
|
||||||
VERSION 16.${PNGLIB_RELEASE}.0
|
VERSION 16.${PNGLIB_RELEASE}.0
|
||||||
SOVERSION 16
|
SOVERSION 16
|
||||||
CLEAN_DIRECT_OUTPUT 1)
|
CLEAN_DIRECT_OUTPUT 1)
|
||||||
|
|||||||
15
INSTALL
15
INSTALL
@ -333,7 +333,7 @@ built. pngconf.h no longer includes pngusr.h; therefore, pngusr.h is ignored
|
|||||||
after the build of pnglibconf.h and it is never included in an application
|
after the build of pnglibconf.h and it is never included in an application
|
||||||
build.
|
build.
|
||||||
|
|
||||||
The rarely used alternative of adding a list of feature macros to the
|
The formerly used alternative of adding a list of feature macros to the
|
||||||
CPPFLAGS setting in the build also still works; however, the macros will be
|
CPPFLAGS setting in the build also still works; however, the macros will be
|
||||||
copied to pnglibconf.h and this may produce macro redefinition warnings
|
copied to pnglibconf.h and this may produce macro redefinition warnings
|
||||||
when the individual C files are compiled.
|
when the individual C files are compiled.
|
||||||
@ -349,12 +349,19 @@ functioning awk called 'nawk'.
|
|||||||
|
|
||||||
Configuration options are now documented in scripts/pnglibconf.dfa. This
|
Configuration options are now documented in scripts/pnglibconf.dfa. This
|
||||||
file also includes dependency information that ensures a configuration is
|
file also includes dependency information that ensures a configuration is
|
||||||
consistent; that is, if a feature is switched off dependent features are
|
consistent; that is, if a feature is switched off, dependent features are
|
||||||
also removed. As a recommended alternative to using feature macros in
|
also switched off. As a recommended alternative to using feature macros in
|
||||||
pngusr.h a system builder may also define equivalent options in pngusr.dfa
|
pngusr.h a system builder may also define equivalent options in pngusr.dfa
|
||||||
(or, indeed, any file) and add that to the configuration by setting
|
(or, indeed, any file) and add that to the configuration by setting
|
||||||
DFA_XTRA to the file name. The makefiles in contrib/pngminim illustrate
|
DFA_XTRA to the file name. The makefiles in contrib/pngminim illustrate
|
||||||
how to do this, and illustrate a case where pngusr.h is still required.
|
how to do this, and also illustrate a case where pngusr.h is still required.
|
||||||
|
|
||||||
|
After you have built libpng, the definitions that were recorded in
|
||||||
|
pnglibconf.h are available to your application (pnglibconf.h is included
|
||||||
|
in png.h and gets installed alongside png.h and pngconf.h in your
|
||||||
|
$PREFIX/include directory). Do not edit pnglibconf.h after you have built
|
||||||
|
libpng, because than the settings would not accurately reflect the settings
|
||||||
|
that were used to build libpng.
|
||||||
|
|
||||||
XV. Configuring libpng for multiprocessing
|
XV. Configuring libpng for multiprocessing
|
||||||
|
|
||||||
|
|||||||
4
LICENSE
4
LICENSE
@ -10,7 +10,7 @@ this sentence.
|
|||||||
|
|
||||||
This code is released under the libpng license.
|
This code is released under the libpng license.
|
||||||
|
|
||||||
libpng versions 1.2.6, August 15, 2004, through 1.6.13, August 21, 2014, are
|
libpng versions 1.2.6, August 15, 2004, through 1.6.14, October 23, 2014, are
|
||||||
Copyright (c) 2004, 2006-2014 Glenn Randers-Pehrson, and are
|
Copyright (c) 2004, 2006-2014 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
|
||||||
@ -108,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
|
||||||
August 21, 2014
|
October 23, 2014
|
||||||
|
|||||||
21
README
21
README
@ -1,4 +1,4 @@
|
|||||||
README for libpng version 1.6.13 - August 21, 2014 (shared library 16.0)
|
README for libpng version 1.6.14 - October 23, 2014 (shared library 16.0)
|
||||||
See the note about version numbers near the top of png.h
|
See the note about version numbers near the top of png.h
|
||||||
|
|
||||||
See INSTALL for instructions on how to install libpng.
|
See INSTALL for instructions on how to install libpng.
|
||||||
@ -23,18 +23,25 @@ earlier versions if you are using a shared library. The type of the
|
|||||||
png_uint_32, which will affect shared-library applications that use
|
png_uint_32, which will affect shared-library applications that use
|
||||||
this function.
|
this function.
|
||||||
|
|
||||||
To avoid problems with changes to the internals of png_info_struct,
|
To avoid problems with changes to the internals of png info_struct,
|
||||||
new APIs have been made available in 0.95 to avoid direct application
|
new APIs have been made available in 0.95 to avoid direct application
|
||||||
access to info_ptr. These functions are the png_set_<chunk> and
|
access to info_ptr. These functions are the png_set_<chunk> and
|
||||||
png_get_<chunk> functions. These functions should be used when
|
png_get_<chunk> functions. These functions should be used when
|
||||||
accessing/storing the info_struct data, rather than manipulating it
|
accessing/storing the info_struct data, rather than manipulating it
|
||||||
directly, to avoid such problems in the future.
|
directly, to avoid such problems in the future.
|
||||||
|
|
||||||
It is important to note that the APIs do not make current programs
|
It is important to note that the APIs did not make current programs
|
||||||
that access the info struct directly incompatible with the new
|
that access the info struct directly incompatible with the new
|
||||||
library. However, it is strongly suggested that new programs use
|
library, through libpng-1.2.x. In libpng-1.4.x, which was meant to
|
||||||
the new APIs (as shown in example.c and pngtest.c), and older programs
|
be a transitional release, members of the png_struct and the
|
||||||
be converted to the new format, to facilitate upgrades in the future.
|
info_struct can still be accessed, but the compiler will issue a
|
||||||
|
warning about deprecated usage. Since libpng-1.5.0, direct access
|
||||||
|
to these structs is not allowed, and the definitions of the structs
|
||||||
|
reside in private pngstruct.h and pnginfo.h header files that are not
|
||||||
|
accessible to applications. It is strongly suggested that new
|
||||||
|
programs use the new APIs (as shown in example.c and pngtest.c), and
|
||||||
|
older programs be converted to the new format, to facilitate upgrades
|
||||||
|
in the future.
|
||||||
****
|
****
|
||||||
|
|
||||||
Additions since 0.90 include the ability to compile libpng as a
|
Additions since 0.90 include the ability to compile libpng as a
|
||||||
@ -183,7 +190,7 @@ Files in this distribution:
|
|||||||
pngminus => Simple pnm2png and png2pnm programs
|
pngminus => Simple pnm2png and png2pnm programs
|
||||||
pngsuite => Test images
|
pngsuite => Test images
|
||||||
tools => Various tools
|
tools => Various tools
|
||||||
visupng => Contains a MSVC workspace for VisualPng
|
visupng => Contains a MSVC workspace for VisualPng
|
||||||
projects => Contains project files and workspaces for
|
projects => Contains project files and workspaces for
|
||||||
building a DLL
|
building a DLL
|
||||||
owatcom => Contains a WATCOM project for building libpng
|
owatcom => Contains a WATCOM project for building libpng
|
||||||
|
|||||||
@ -18,7 +18,7 @@ AC_PREREQ([2.68])
|
|||||||
|
|
||||||
dnl Version number stuff here:
|
dnl Version number stuff here:
|
||||||
|
|
||||||
AC_INIT([libpng],[1.6.13],[png-mng-implement@lists.sourceforge.net])
|
AC_INIT([libpng],[1.6.14],[png-mng-implement@lists.sourceforge.net])
|
||||||
AC_CONFIG_MACRO_DIR([scripts])
|
AC_CONFIG_MACRO_DIR([scripts])
|
||||||
|
|
||||||
# libpng does not follow GNU file name conventions (hence 'foreign')
|
# libpng does not follow GNU file name conventions (hence 'foreign')
|
||||||
@ -39,10 +39,10 @@ dnl automake, so the following is not necessary (and is not defined anyway):
|
|||||||
dnl AM_PREREQ([1.11.2])
|
dnl AM_PREREQ([1.11.2])
|
||||||
dnl stop configure from automagically running automake
|
dnl stop configure from automagically running automake
|
||||||
|
|
||||||
PNGLIB_VERSION=1.6.13
|
PNGLIB_VERSION=1.6.14
|
||||||
PNGLIB_MAJOR=1
|
PNGLIB_MAJOR=1
|
||||||
PNGLIB_MINOR=6
|
PNGLIB_MINOR=6
|
||||||
PNGLIB_RELEASE=13
|
PNGLIB_RELEASE=14
|
||||||
|
|
||||||
dnl End of version number stuff
|
dnl End of version number stuff
|
||||||
|
|
||||||
|
|||||||
@ -103,9 +103,6 @@
|
|||||||
#define RESNAME "rpng2" /* our X resource application name */
|
#define RESNAME "rpng2" /* our X resource application name */
|
||||||
#define RESCLASS "Rpng" /* our X resource class name */
|
#define RESCLASS "Rpng" /* our X resource class name */
|
||||||
|
|
||||||
/* This is temporary until the code is rewritten to use nanosleep(). */
|
|
||||||
#define usleep(x) sleep(((x)+499999)/1000000)
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
@ -118,6 +115,18 @@
|
|||||||
#include <X11/Xos.h>
|
#include <X11/Xos.h>
|
||||||
#include <X11/keysym.h> /* defines XK_* macros */
|
#include <X11/keysym.h> /* defines XK_* macros */
|
||||||
|
|
||||||
|
#if _POSIX_C_SOURCE >= 199309L /* have nanosleep() */
|
||||||
|
# undef usleep
|
||||||
|
# define usleep(usec) { \
|
||||||
|
struct timespec ts; \
|
||||||
|
ts.tv_nsec = (usec) * 1000; \
|
||||||
|
nanosleep(&ts, NULL); }
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#ifndef usleep /* have neither nanosleep() nor usleep() */
|
||||||
|
# define usleep(x) sleep(((x)+499999)/1000000)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef VMS
|
#ifdef VMS
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -52,6 +52,6 @@ main(void)
|
|||||||
fwrite(signature, sizeof signature, 1, stdout);
|
fwrite(signature, sizeof signature, 1, stdout);
|
||||||
put_chunk(IHDR, sizeof IHDR);
|
put_chunk(IHDR, sizeof IHDR);
|
||||||
|
|
||||||
for(;;)
|
for (;;)
|
||||||
put_chunk(unknown, sizeof unknown);
|
put_chunk(unknown, sizeof unknown);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngvalid.c - validate libpng by constructing then reading png files.
|
/* pngvalid.c - validate libpng by constructing then reading png files.
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.6.10 [March 6, 2014]
|
* Last changed in libpng 1.6.14 [October 23, 2014]
|
||||||
* Copyright (c) 2014 Glenn Randers-Pehrson
|
* Copyright (c) 2014 Glenn Randers-Pehrson
|
||||||
* Written by John Cunningham Bowler
|
* Written by John Cunningham Bowler
|
||||||
*
|
*
|
||||||
@ -34,6 +34,16 @@
|
|||||||
# include <fenv.h>
|
# include <fenv.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef FE_DIVBYZERO
|
||||||
|
# define FE_DIVBYZERO 0
|
||||||
|
#endif
|
||||||
|
#ifndef FE_INVALID
|
||||||
|
# define FE_INVALID 0
|
||||||
|
#endif
|
||||||
|
#ifndef FE_OVERFLOW
|
||||||
|
# define FE_OVERFLOW 0
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Define the following to use this test against your installed libpng, rather
|
/* Define the following to use this test against your installed libpng, rather
|
||||||
* than the one being built here:
|
* than the one being built here:
|
||||||
*/
|
*/
|
||||||
@ -686,7 +696,7 @@ static png_uint_32
|
|||||||
random_32(void)
|
random_32(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
for(;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
png_byte mark[4];
|
png_byte mark[4];
|
||||||
png_uint_32 result;
|
png_uint_32 result;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2014 John Cunningham Bowler
|
* Copyright (c) 2014 John Cunningham Bowler
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.6.10 [March 6, 2014]
|
* Last changed in libpng 1.6.14 [October 23, 2014]
|
||||||
*
|
*
|
||||||
* This code is released under the libpng license.
|
* This code is released under the libpng license.
|
||||||
* For conditions of distribution and use, see the disclaimer
|
* For conditions of distribution and use, see the disclaimer
|
||||||
@ -49,6 +49,9 @@
|
|||||||
# error "pngfix will not work with libpng prior to 1.6.3"
|
# error "pngfix will not work with libpng prior to 1.6.3"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PNG_SETJMP_SUPPORTED
|
||||||
|
#include <setjmp.h>
|
||||||
|
|
||||||
#if defined(PNG_READ_SUPPORTED) && defined(PNG_EASY_ACCESS_SUPPORTED)
|
#if defined(PNG_READ_SUPPORTED) && defined(PNG_EASY_ACCESS_SUPPORTED)
|
||||||
/* zlib.h defines the structure z_stream, an instance of which is included
|
/* zlib.h defines the structure z_stream, an instance of which is included
|
||||||
* in this structure and is required for decompressing the LZ compressed
|
* in this structure and is required for decompressing the LZ compressed
|
||||||
@ -4034,3 +4037,12 @@ main(void)
|
|||||||
return 77;
|
return 77;
|
||||||
}
|
}
|
||||||
#endif /* PNG_READ_SUPPORTED && PNG_EASY_ACCESS_SUPPORTED */
|
#endif /* PNG_READ_SUPPORTED && PNG_EASY_ACCESS_SUPPORTED */
|
||||||
|
#else /* No setjmp support */
|
||||||
|
int
|
||||||
|
main(void)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "pngfix does not work without setjmp support\n");
|
||||||
|
return 77;
|
||||||
|
}
|
||||||
|
#endif /* PNG_SETJMP_SUPPORTED */
|
||||||
|
|
||||||
|
|||||||
@ -188,13 +188,13 @@ int main(int argc, const char **argv)
|
|||||||
*
|
*
|
||||||
* Don't repeatedly convert between the 8-bit and 16-bit forms. There is
|
* Don't repeatedly convert between the 8-bit and 16-bit forms. There is
|
||||||
* significant data loss when 16-bit data is converted to the 8-bit encoding and
|
* significant data loss when 16-bit data is converted to the 8-bit encoding and
|
||||||
* the current libpng implementation of convertion to 16-bit is also
|
* the current libpng implementation of conversion to 16-bit is also
|
||||||
* significantly lossy. The latter will be fixed in the future, but the former
|
* significantly lossy. The latter will be fixed in the future, but the former
|
||||||
* is unavoidable - the 8-bit format just doesn't have enough resolution.
|
* is unavoidable - the 8-bit format just doesn't have enough resolution.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* If your program needs more information from the PNG data it reads, or if you
|
/* If your program needs more information from the PNG data it reads, or if you
|
||||||
* need to do more complex transformations, or minimise transformations, on the
|
* need to do more complex transformations, or minimize transformations, on the
|
||||||
* data you read, then you must use one of the several lower level libpng
|
* data you read, then you must use one of the several lower level libpng
|
||||||
* interfaces.
|
* interfaces.
|
||||||
*
|
*
|
||||||
@ -932,7 +932,7 @@ void write_png(char *file_name /* , ... other image information ... */)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Once we write out the header, the compression type on the text
|
/* Once we write out the header, the compression type on the text
|
||||||
* chunks gets changed to PNG_TEXT_COMPRESSION_NONE_WR or
|
* chunk gets changed to PNG_TEXT_COMPRESSION_NONE_WR or
|
||||||
* PNG_TEXT_COMPRESSION_zTXt_WR, so it doesn't get written out again
|
* PNG_TEXT_COMPRESSION_zTXt_WR, so it doesn't get written out again
|
||||||
* at the end.
|
* at the end.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
libpng-manual.txt - A description on how to use and modify libpng
|
libpng-manual.txt - A description on how to use and modify libpng
|
||||||
|
|
||||||
libpng version 1.6.13 - August 21, 2014
|
libpng version 1.6.14 - October 23, 2014
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
<glennrp at users.sourceforge.net>
|
<glennrp at users.sourceforge.net>
|
||||||
Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
||||||
@ -11,7 +11,7 @@ libpng-manual.txt - A description on how to use and modify libpng
|
|||||||
|
|
||||||
Based on:
|
Based on:
|
||||||
|
|
||||||
libpng versions 0.97, January 1998, through 1.6.13 - August 21, 2014
|
libpng versions 0.97, January 1998, through 1.6.14 - October 23, 2014
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
||||||
|
|
||||||
@ -3261,7 +3261,7 @@ tEXt chunk use RFC 1123 format dates (e.g. "22 May 1997 18:07:10 GMT"),
|
|||||||
although this isn't a requirement. Unlike the tIME chunk, the
|
although this isn't a requirement. Unlike the tIME chunk, the
|
||||||
"Creation Time" tEXt chunk is not expected to be automatically changed
|
"Creation Time" tEXt chunk is not expected to be automatically changed
|
||||||
by the software. To facilitate the use of RFC 1123 dates, a function
|
by the software. To facilitate the use of RFC 1123 dates, a function
|
||||||
png_convert_to_rfc1123_buffer(png_ptr, buffer, png_timep) is provided to
|
png_convert_to_rfc1123_buffer(buffer, png_timep) is provided to
|
||||||
convert from PNG time to an RFC 1123 format string. The caller must provide
|
convert from PNG time to an RFC 1123 format string. The caller must provide
|
||||||
a writeable buffer of at least 29 bytes.
|
a writeable buffer of at least 29 bytes.
|
||||||
|
|
||||||
@ -5223,12 +5223,15 @@ We mark all non-exported functions with "/* PRIVATE */"":
|
|||||||
}
|
}
|
||||||
|
|
||||||
The prototypes for non-exported functions (except for those in
|
The prototypes for non-exported functions (except for those in
|
||||||
pngtest) appear in
|
pngtest) appear in pngpriv.h above the comment that says
|
||||||
pngpriv.h
|
|
||||||
above the comment that says
|
|
||||||
|
|
||||||
/* Maintainer: Put new private prototypes here ^ */
|
/* Maintainer: Put new private prototypes here ^ */
|
||||||
|
|
||||||
|
To avoid polluting the global namespace, the names of all exported
|
||||||
|
functions and variables begin with "png_", and all publicly visible C
|
||||||
|
preprocessor macros begin with "PNG". We request that applications that
|
||||||
|
use libpng *not* begin any of their own symbols with either of these strings.
|
||||||
|
|
||||||
We put a space after the "sizeof" operator and we omit the
|
We put a space after the "sizeof" operator and we omit the
|
||||||
optional parentheses around its argument when the argument
|
optional parentheses around its argument when the argument
|
||||||
is an expression, not a type name, and we always enclose the
|
is an expression, not a type name, and we always enclose the
|
||||||
@ -5240,10 +5243,8 @@ sizeof operator, with its argument, in parentheses:
|
|||||||
Prior to libpng-1.6.0 we used a "png_sizeof()" macro, formatted as
|
Prior to libpng-1.6.0 we used a "png_sizeof()" macro, formatted as
|
||||||
though it were a function.
|
though it were a function.
|
||||||
|
|
||||||
To avoid polluting the global namespace, the names of all exported
|
Control keywords if, for, while, and switch are always followed by a space
|
||||||
functions and variables begin with "png_", and all publicly visible C
|
to distinguish them from function calls, which have no trailing space.
|
||||||
preprocessor macros begin with "PNG". We request that applications that
|
|
||||||
use libpng *not* begin any of their own symbols with either of these strings.
|
|
||||||
|
|
||||||
We put a space after each comma and after each semicolon
|
We put a space after each comma and after each semicolon
|
||||||
in "for" statements, and we put spaces before and after each
|
in "for" statements, and we put spaces before and after each
|
||||||
@ -5276,13 +5277,13 @@ Other rules can be inferred by inspecting the libpng source.
|
|||||||
|
|
||||||
XVI. Y2K Compliance in libpng
|
XVI. Y2K Compliance in libpng
|
||||||
|
|
||||||
August 21, 2014
|
October 23, 2014
|
||||||
|
|
||||||
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.6.13 are Y2K compliant. It is my belief that earlier
|
upward through 1.6.14 are Y2K compliant. It is my belief that earlier
|
||||||
versions were also Y2K compliant.
|
versions were also Y2K compliant.
|
||||||
|
|
||||||
Libpng only has two year fields. One is a 2-byte unsigned integer
|
Libpng only has two year fields. One is a 2-byte unsigned integer
|
||||||
@ -5298,8 +5299,9 @@ in libpng-1.6.x and will be removed from libpng-1.7.0.
|
|||||||
|
|
||||||
There are seven time-related functions:
|
There are seven time-related functions:
|
||||||
|
|
||||||
png_convert_to_rfc_1123() in png.c
|
png_convert_to_rfc_1123_buffer() in png.c
|
||||||
(formerly png_convert_to_rfc_1152() in error)
|
(formerly png_convert_to_rfc_1152() in error, and
|
||||||
|
also formerly png_convert_to_rfc_1123())
|
||||||
png_convert_from_struct_tm() in pngwrite.c, called
|
png_convert_from_struct_tm() in pngwrite.c, called
|
||||||
in pngwrite.c
|
in pngwrite.c
|
||||||
png_convert_from_time_t() in pngwrite.c
|
png_convert_from_time_t() in pngwrite.c
|
||||||
|
|||||||
43
libpng.3
43
libpng.3
@ -1,6 +1,6 @@
|
|||||||
.TH LIBPNG 3 "August 21, 2014"
|
.TH LIBPNG 3 "October 23, 2014"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.13
|
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.14
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
\fB
|
\fB
|
||||||
#include <png.h>\fP
|
#include <png.h>\fP
|
||||||
@ -504,7 +504,7 @@ Following is a copy of the libpng-manual.txt file that accompanies libpng.
|
|||||||
.SH LIBPNG.TXT
|
.SH LIBPNG.TXT
|
||||||
libpng-manual.txt - A description on how to use and modify libpng
|
libpng-manual.txt - A description on how to use and modify libpng
|
||||||
|
|
||||||
libpng version 1.6.13 - August 21, 2014
|
libpng version 1.6.14 - October 23, 2014
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
<glennrp at users.sourceforge.net>
|
<glennrp at users.sourceforge.net>
|
||||||
Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
||||||
@ -515,7 +515,7 @@ libpng-manual.txt - A description on how to use and modify libpng
|
|||||||
|
|
||||||
Based on:
|
Based on:
|
||||||
|
|
||||||
libpng versions 0.97, January 1998, through 1.6.13 - August 21, 2014
|
libpng versions 0.97, January 1998, through 1.6.14 - October 23, 2014
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
||||||
|
|
||||||
@ -3765,7 +3765,7 @@ tEXt chunk use RFC 1123 format dates (e.g. "22 May 1997 18:07:10 GMT"),
|
|||||||
although this isn't a requirement. Unlike the tIME chunk, the
|
although this isn't a requirement. Unlike the tIME chunk, the
|
||||||
"Creation Time" tEXt chunk is not expected to be automatically changed
|
"Creation Time" tEXt chunk is not expected to be automatically changed
|
||||||
by the software. To facilitate the use of RFC 1123 dates, a function
|
by the software. To facilitate the use of RFC 1123 dates, a function
|
||||||
png_convert_to_rfc1123_buffer(png_ptr, buffer, png_timep) is provided to
|
png_convert_to_rfc1123_buffer(buffer, png_timep) is provided to
|
||||||
convert from PNG time to an RFC 1123 format string. The caller must provide
|
convert from PNG time to an RFC 1123 format string. The caller must provide
|
||||||
a writeable buffer of at least 29 bytes.
|
a writeable buffer of at least 29 bytes.
|
||||||
|
|
||||||
@ -5727,12 +5727,15 @@ We mark all non-exported functions with "/* PRIVATE */"":
|
|||||||
}
|
}
|
||||||
|
|
||||||
The prototypes for non-exported functions (except for those in
|
The prototypes for non-exported functions (except for those in
|
||||||
pngtest) appear in
|
pngtest) appear in pngpriv.h above the comment that says
|
||||||
pngpriv.h
|
|
||||||
above the comment that says
|
|
||||||
|
|
||||||
/* Maintainer: Put new private prototypes here ^ */
|
/* Maintainer: Put new private prototypes here ^ */
|
||||||
|
|
||||||
|
To avoid polluting the global namespace, the names of all exported
|
||||||
|
functions and variables begin with "png_", and all publicly visible C
|
||||||
|
preprocessor macros begin with "PNG". We request that applications that
|
||||||
|
use libpng *not* begin any of their own symbols with either of these strings.
|
||||||
|
|
||||||
We put a space after the "sizeof" operator and we omit the
|
We put a space after the "sizeof" operator and we omit the
|
||||||
optional parentheses around its argument when the argument
|
optional parentheses around its argument when the argument
|
||||||
is an expression, not a type name, and we always enclose the
|
is an expression, not a type name, and we always enclose the
|
||||||
@ -5744,10 +5747,8 @@ sizeof operator, with its argument, in parentheses:
|
|||||||
Prior to libpng-1.6.0 we used a "png_sizeof()" macro, formatted as
|
Prior to libpng-1.6.0 we used a "png_sizeof()" macro, formatted as
|
||||||
though it were a function.
|
though it were a function.
|
||||||
|
|
||||||
To avoid polluting the global namespace, the names of all exported
|
Control keywords if, for, while, and switch are always followed by a space
|
||||||
functions and variables begin with "png_", and all publicly visible C
|
to distinguish them from function calls, which have no trailing space.
|
||||||
preprocessor macros begin with "PNG". We request that applications that
|
|
||||||
use libpng *not* begin any of their own symbols with either of these strings.
|
|
||||||
|
|
||||||
We put a space after each comma and after each semicolon
|
We put a space after each comma and after each semicolon
|
||||||
in "for" statements, and we put spaces before and after each
|
in "for" statements, and we put spaces before and after each
|
||||||
@ -5780,13 +5781,13 @@ Other rules can be inferred by inspecting the libpng source.
|
|||||||
|
|
||||||
.SH XVI. Y2K Compliance in libpng
|
.SH XVI. Y2K Compliance in libpng
|
||||||
|
|
||||||
August 21, 2014
|
October 23, 2014
|
||||||
|
|
||||||
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.6.13 are Y2K compliant. It is my belief that earlier
|
upward through 1.6.14 are Y2K compliant. It is my belief that earlier
|
||||||
versions were also Y2K compliant.
|
versions were also Y2K compliant.
|
||||||
|
|
||||||
Libpng only has two year fields. One is a 2-byte unsigned integer
|
Libpng only has two year fields. One is a 2-byte unsigned integer
|
||||||
@ -5802,8 +5803,9 @@ in libpng-1.6.x and will be removed from libpng-1.7.0.
|
|||||||
|
|
||||||
There are seven time-related functions:
|
There are seven time-related functions:
|
||||||
|
|
||||||
png_convert_to_rfc_1123() in png.c
|
png_convert_to_rfc_1123_buffer() in png.c
|
||||||
(formerly png_convert_to_rfc_1152() in error)
|
(formerly png_convert_to_rfc_1152() in error, and
|
||||||
|
also formerly png_convert_to_rfc_1123())
|
||||||
png_convert_from_struct_tm() in pngwrite.c, called
|
png_convert_from_struct_tm() in pngwrite.c, called
|
||||||
in pngwrite.c
|
in pngwrite.c
|
||||||
png_convert_from_time_t() in pngwrite.c
|
png_convert_from_time_t() in pngwrite.c
|
||||||
@ -6028,6 +6030,9 @@ the first widely used release:
|
|||||||
1.6.13beta01-04 16 10613 16.so.16.13[.0]
|
1.6.13beta01-04 16 10613 16.so.16.13[.0]
|
||||||
1.6.13rc01-02 16 10613 16.so.16.13[.0]
|
1.6.13rc01-02 16 10613 16.so.16.13[.0]
|
||||||
1.6.13 16 10613 16.so.16.13[.0]
|
1.6.13 16 10613 16.so.16.13[.0]
|
||||||
|
1.6.14beta01-07 16 10614 16.so.16.14[.0]
|
||||||
|
1.6.14rc01-02 16 10614 16.so.16.14[.0]
|
||||||
|
1.6.14 16 10614 16.so.16.14[.0]
|
||||||
|
|
||||||
Henceforth the source version will match the shared-library minor
|
Henceforth the source version will match the shared-library minor
|
||||||
and patch numbers; the shared-library major version number will be
|
and patch numbers; the shared-library major version number will be
|
||||||
@ -6084,7 +6089,7 @@ possible without all of you.
|
|||||||
|
|
||||||
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
||||||
|
|
||||||
Libpng version 1.6.13 - August 21, 2014:
|
Libpng version 1.6.14 - October 23, 2014:
|
||||||
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
||||||
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
|
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
|
||||||
|
|
||||||
@ -6107,7 +6112,7 @@ this sentence.
|
|||||||
|
|
||||||
This code is released under the libpng license.
|
This code is released under the libpng license.
|
||||||
|
|
||||||
libpng versions 1.2.6, August 15, 2004, through 1.6.13, August 21, 2014, are
|
libpng versions 1.2.6, August 15, 2004, through 1.6.14, October 23, 2014, are
|
||||||
Copyright (c) 2004,2006-2014 Glenn Randers-Pehrson, and are
|
Copyright (c) 2004,2006-2014 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
|
||||||
@ -6206,7 +6211,7 @@ certification mark of the Open Source Initiative.
|
|||||||
|
|
||||||
Glenn Randers-Pehrson
|
Glenn Randers-Pehrson
|
||||||
glennrp at users.sourceforge.net
|
glennrp at users.sourceforge.net
|
||||||
August 21, 2014
|
October 23, 2014
|
||||||
|
|
||||||
.\" end of man page
|
.\" end of man page
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
.TH LIBPNGPF 3 "August 21, 2014"
|
.TH LIBPNGPF 3 "October 23, 2014"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.13
|
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.14
|
||||||
(private functions)
|
(private functions)
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
\fB#include \fI"pngpriv.h"
|
\fB#include \fI"pngpriv.h"
|
||||||
|
|||||||
2
png.5
2
png.5
@ -1,4 +1,4 @@
|
|||||||
.TH PNG 5 "August 21, 2014"
|
.TH PNG 5 "October 23, 2014"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
png \- Portable Network Graphics (PNG) format
|
png \- Portable Network Graphics (PNG) format
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
|
|||||||
27
png.c
27
png.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* png.c - location for general purpose libpng functions
|
/* png.c - location for general purpose libpng functions
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.6.12 [June 12, 2014]
|
* Last changed in libpng 1.6.14 [October 23, 2014]
|
||||||
* Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2014 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.)
|
||||||
@ -14,7 +14,7 @@
|
|||||||
#include "pngpriv.h"
|
#include "pngpriv.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 png_libpng_version_1_6_13 Your_png_h_is_not_version_1_6_13;
|
typedef png_libpng_version_1_6_14 Your_png_h_is_not_version_1_6_14;
|
||||||
|
|
||||||
/* Tells libpng that we have already handled the first "num_bytes" bytes
|
/* Tells libpng that we have already handled the first "num_bytes" bytes
|
||||||
* of the PNG file signature. If the PNG data is embedded into another
|
* of the PNG file signature. If the PNG data is embedded into another
|
||||||
@ -773,13 +773,13 @@ png_get_copyright(png_const_structrp png_ptr)
|
|||||||
#else
|
#else
|
||||||
# ifdef __STDC__
|
# ifdef __STDC__
|
||||||
return PNG_STRING_NEWLINE \
|
return PNG_STRING_NEWLINE \
|
||||||
"libpng version 1.6.13 - August 21, 2014" PNG_STRING_NEWLINE \
|
"libpng version 1.6.14 - October 23, 2014" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1998-2014 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
|
"Copyright (c) 1998-2014 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
|
"Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
|
"Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
|
||||||
PNG_STRING_NEWLINE;
|
PNG_STRING_NEWLINE;
|
||||||
# else
|
# else
|
||||||
return "libpng version 1.6.13 - August 21, 2014\
|
return "libpng version 1.6.14 - October 23, 2014\
|
||||||
Copyright (c) 1998-2014 Glenn Randers-Pehrson\
|
Copyright (c) 1998-2014 Glenn Randers-Pehrson\
|
||||||
Copyright (c) 1996-1997 Andreas Dilger\
|
Copyright (c) 1996-1997 Andreas Dilger\
|
||||||
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
|
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
|
||||||
@ -2219,10 +2219,12 @@ png_compare_ICC_profile_with_sRGB(png_const_structrp png_ptr,
|
|||||||
#endif
|
#endif
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
#ifdef PNG_SET_OPTION_SUPPORTED
|
||||||
/* First see if PNG_SKIP_sRGB_CHECK_PROFILE has been set to "on" */
|
/* First see if PNG_SKIP_sRGB_CHECK_PROFILE has been set to "on" */
|
||||||
if (((png_ptr->options >> PNG_SKIP_sRGB_CHECK_PROFILE) & 3) ==
|
if (((png_ptr->options >> PNG_SKIP_sRGB_CHECK_PROFILE) & 3) ==
|
||||||
PNG_OPTION_ON)
|
PNG_OPTION_ON)
|
||||||
return 0;
|
return 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
for (i=0; i < (sizeof png_sRGB_checks) / (sizeof png_sRGB_checks[0]); ++i)
|
for (i=0; i < (sizeof png_sRGB_checks) / (sizeof png_sRGB_checks[0]); ++i)
|
||||||
{
|
{
|
||||||
@ -3569,8 +3571,8 @@ png_log16bit(png_uint_32 x)
|
|||||||
* each case only the low 16 bits are relevant - the fraction - since the
|
* each case only the low 16 bits are relevant - the fraction - since the
|
||||||
* integer bits (the top 4) simply determine a shift.
|
* integer bits (the top 4) simply determine a shift.
|
||||||
*
|
*
|
||||||
* The worst case is the 16-bit distinction between 65535 and 65534, this
|
* The worst case is the 16-bit distinction between 65535 and 65534. This
|
||||||
* requires perhaps spurious accuracty in the decoding of the logarithm to
|
* requires perhaps spurious accuracy in the decoding of the logarithm to
|
||||||
* distinguish log2(65535/65534.5) - 10^-5 or 17 bits. There is little chance
|
* distinguish log2(65535/65534.5) - 10^-5 or 17 bits. There is little chance
|
||||||
* of getting this accuracy in practice.
|
* of getting this accuracy in practice.
|
||||||
*
|
*
|
||||||
@ -3658,7 +3660,7 @@ png_exp8bit(png_fixed_point lg2)
|
|||||||
/* Get a 32-bit value: */
|
/* Get a 32-bit value: */
|
||||||
png_uint_32 x = png_exp(lg2);
|
png_uint_32 x = png_exp(lg2);
|
||||||
|
|
||||||
/* Convert the 32-bit value to 0..255 by multiplying by 256-1, note that the
|
/* Convert the 32-bit value to 0..255 by multiplying by 256-1. Note that the
|
||||||
* second, rounding, step can't overflow because of the first, subtraction,
|
* second, rounding, step can't overflow because of the first, subtraction,
|
||||||
* step.
|
* step.
|
||||||
*/
|
*/
|
||||||
@ -3840,7 +3842,7 @@ png_build_16to8_table(png_structrp png_ptr, png_uint_16pp *ptable,
|
|||||||
|
|
||||||
/* 'num' is the number of tables and also the number of low bits of low
|
/* 'num' is the number of tables and also the number of low bits of low
|
||||||
* bits of the input 16-bit value used to select a table. Each table is
|
* bits of the input 16-bit value used to select a table. Each table is
|
||||||
* itself index by the high 8 bits of the value.
|
* itself indexed by the high 8 bits of the value.
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < num; i++)
|
for (i = 0; i < num; i++)
|
||||||
table[i] = (png_uint_16p)png_malloc(png_ptr,
|
table[i] = (png_uint_16p)png_malloc(png_ptr,
|
||||||
@ -3892,7 +3894,7 @@ png_build_16to8_table(png_structrp png_ptr, png_uint_16pp *ptable,
|
|||||||
|
|
||||||
/* Build a single 8-bit table: same as the 16-bit case but much simpler (and
|
/* Build a single 8-bit table: same as the 16-bit case but much simpler (and
|
||||||
* typically much faster). Note that libpng currently does no sBIT processing
|
* typically much faster). Note that libpng currently does no sBIT processing
|
||||||
* (apparently contrary to the spec) so a 256 entry table is always generated.
|
* (apparently contrary to the spec) so a 256-entry table is always generated.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
png_build_8bit_table(png_structrp png_ptr, png_bytepp ptable,
|
png_build_8bit_table(png_structrp png_ptr, png_bytepp ptable,
|
||||||
@ -4033,7 +4035,7 @@ png_build_gamma_table(png_structrp png_ptr, int bit_depth)
|
|||||||
* Where 'iv' is the input color value and 'ov' is the output value -
|
* Where 'iv' is the input color value and 'ov' is the output value -
|
||||||
* pow(iv, gamma).
|
* pow(iv, gamma).
|
||||||
*
|
*
|
||||||
* Thus the gamma table consists of up to 256 256 entry tables. The table
|
* Thus the gamma table consists of up to 256 256-entry tables. The table
|
||||||
* is selected by the (8-gamma_shift) most significant of the low 8 bits of
|
* is selected by the (8-gamma_shift) most significant of the low 8 bits of
|
||||||
* the color value then indexed by the upper 8 bits:
|
* the color value then indexed by the upper 8 bits:
|
||||||
*
|
*
|
||||||
@ -4141,7 +4143,7 @@ png_set_option(png_structrp png_ptr, int option, int onoff)
|
|||||||
*
|
*
|
||||||
* error: -0.513727 - 0.607759, 308 (0.469978%) of readings inexact
|
* error: -0.513727 - 0.607759, 308 (0.469978%) of readings inexact
|
||||||
*
|
*
|
||||||
* In all cases the inexact readings are off by one.
|
* In all cases the inexact readings are only off by one.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef PNG_SIMPLIFIED_READ_SUPPORTED
|
#ifdef PNG_SIMPLIFIED_READ_SUPPORTED
|
||||||
@ -4181,8 +4183,7 @@ const png_uint_16 png_sRGB_table[256] =
|
|||||||
57105,57646,58190,58737,59287,59840,60396,60955,
|
57105,57646,58190,58737,59287,59840,60396,60955,
|
||||||
61517,62082,62650,63221,63795,64372,64952,65535
|
61517,62082,62650,63221,63795,64372,64952,65535
|
||||||
};
|
};
|
||||||
|
#endif /* PNG_SIMPLIFIED_READ_SUPPORTED */
|
||||||
#endif /* simplified read only */
|
|
||||||
|
|
||||||
/* The base/delta tables are required for both read and write (but currently
|
/* The base/delta tables are required for both read and write (but currently
|
||||||
* only the simplified versions.)
|
* only the simplified versions.)
|
||||||
|
|||||||
37
png.h
37
png.h
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* png.h - header file for PNG reference library
|
/* png.h - header file for PNG reference library
|
||||||
*
|
*
|
||||||
* libpng version 1.6.13 - August 21, 2014
|
* libpng version 1.6.14 - October 23, 2014
|
||||||
* Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2014 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.)
|
||||||
@ -11,7 +11,7 @@
|
|||||||
* 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.6.13 - August 21, 2014: Glenn
|
* libpng versions 0.97, January 1998, through 1.6.14 - October 23, 2014: Glenn
|
||||||
* See also "Contributing Authors", below.
|
* See also "Contributing Authors", below.
|
||||||
*
|
*
|
||||||
* Note about libpng version numbers:
|
* Note about libpng version numbers:
|
||||||
@ -203,6 +203,9 @@
|
|||||||
* 1.6.13beta01-04 16 10613 16.so.16.13[.0]
|
* 1.6.13beta01-04 16 10613 16.so.16.13[.0]
|
||||||
* 1.6.13rc01-02 16 10613 16.so.16.13[.0]
|
* 1.6.13rc01-02 16 10613 16.so.16.13[.0]
|
||||||
* 1.6.13 16 10613 16.so.16.13[.0]
|
* 1.6.13 16 10613 16.so.16.13[.0]
|
||||||
|
* 1.6.14beta01-07 16 10614 16.so.16.14[.0]
|
||||||
|
* 1.6.14rc01-02 16 10614 16.so.16.14[.0]
|
||||||
|
* 1.6.14 16 10614 16.so.16.14[.0]
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -234,7 +237,7 @@
|
|||||||
*
|
*
|
||||||
* This code is released under the libpng license.
|
* This code is released under the libpng license.
|
||||||
*
|
*
|
||||||
* libpng versions 1.2.6, August 15, 2004, through 1.6.13, August 21, 2014, are
|
* libpng versions 1.2.6, August 15, 2004, through 1.6.14, October 23, 2014, are
|
||||||
* Copyright (c) 2004, 2006-2014 Glenn Randers-Pehrson, and are
|
* Copyright (c) 2004, 2006-2014 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:
|
||||||
@ -346,13 +349,13 @@
|
|||||||
* Y2K compliance in libpng:
|
* Y2K compliance in libpng:
|
||||||
* =========================
|
* =========================
|
||||||
*
|
*
|
||||||
* August 21, 2014
|
* October 23, 2014
|
||||||
*
|
*
|
||||||
* 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.6.13 are Y2K compliant. It is my belief that
|
* upward through 1.6.14 are Y2K compliant. It is my belief that
|
||||||
* earlier versions were also Y2K compliant.
|
* earlier versions were also Y2K compliant.
|
||||||
*
|
*
|
||||||
* Libpng only has two year fields. One is a 2-byte unsigned integer
|
* Libpng only has two year fields. One is a 2-byte unsigned integer
|
||||||
@ -414,9 +417,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.6.13"
|
#define PNG_LIBPNG_VER_STRING "1.6.14"
|
||||||
#define PNG_HEADER_VERSION_STRING \
|
#define PNG_HEADER_VERSION_STRING \
|
||||||
" libpng version 1.6.13 - August 21, 2014\n"
|
" libpng version 1.6.14 - October 23, 2014\n"
|
||||||
|
|
||||||
#define PNG_LIBPNG_VER_SONUM 16
|
#define PNG_LIBPNG_VER_SONUM 16
|
||||||
#define PNG_LIBPNG_VER_DLLNUM 16
|
#define PNG_LIBPNG_VER_DLLNUM 16
|
||||||
@ -424,7 +427,7 @@
|
|||||||
/* 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 6
|
#define PNG_LIBPNG_VER_MINOR 6
|
||||||
#define PNG_LIBPNG_VER_RELEASE 13
|
#define PNG_LIBPNG_VER_RELEASE 14
|
||||||
|
|
||||||
/* 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:
|
||||||
@ -455,7 +458,7 @@
|
|||||||
* 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 10613 /* 1.6.13 */
|
#define PNG_LIBPNG_VER 10614 /* 1.6.14 */
|
||||||
|
|
||||||
/* Library configuration: these options cannot be changed after
|
/* Library configuration: these options cannot be changed after
|
||||||
* the library has been built.
|
* the library has been built.
|
||||||
@ -560,7 +563,7 @@ extern "C" {
|
|||||||
/* 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 char* png_libpng_version_1_6_13;
|
typedef char* png_libpng_version_1_6_14;
|
||||||
|
|
||||||
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
|
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
|
||||||
*
|
*
|
||||||
@ -2745,6 +2748,8 @@ PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i));
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) || \
|
||||||
|
defined(PNG_SIMPLIFIED_WRITE_SUPPORTED)
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* SIMPLIFIED API
|
* SIMPLIFIED API
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
@ -2816,7 +2821,7 @@ typedef struct
|
|||||||
# define PNG_IMAGE_WARNING 1
|
# define PNG_IMAGE_WARNING 1
|
||||||
# define PNG_IMAGE_ERROR 2
|
# define PNG_IMAGE_ERROR 2
|
||||||
/*
|
/*
|
||||||
* The result is a two bit code such that a value more than 1 indicates
|
* The result is a two-bit code such that a value more than 1 indicates
|
||||||
* a failure in the API just called:
|
* a failure in the API just called:
|
||||||
*
|
*
|
||||||
* 0 - no warning or error
|
* 0 - no warning or error
|
||||||
@ -3197,6 +3202,7 @@ PNG_EXPORT(240, int, png_image_write_to_stdio, (png_imagep image, FILE *file,
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* END OF SIMPLIFIED API
|
* END OF SIMPLIFIED API
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
#endif /* PNG_SIMPLIFIED_{READ|WRITE}_SUPPORTED */
|
||||||
|
|
||||||
#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED
|
#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED
|
||||||
PNG_EXPORT(242, void, png_set_check_for_invalid_index,
|
PNG_EXPORT(242, void, png_set_check_for_invalid_index,
|
||||||
@ -3244,19 +3250,18 @@ PNG_EXPORT(243, int, png_get_palette_max, (png_const_structp png_ptr,
|
|||||||
|
|
||||||
PNG_EXPORT(244, int, png_set_option, (png_structrp png_ptr, int option,
|
PNG_EXPORT(244, int, png_set_option, (png_structrp png_ptr, int option,
|
||||||
int onoff));
|
int onoff));
|
||||||
#endif
|
#endif /* PNG_SET_OPTION_SUPPORTED */
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* END OF HARDWARE AND SOFTWARE OPTIONS
|
* END OF HARDWARE AND SOFTWARE OPTIONS
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
/* Maintainer: Put new public prototypes here ^, in libpng.3, and project
|
/* Maintainer: Put new public prototypes here ^, in libpng.3, in project
|
||||||
* defs, scripts/pnglibconf.h, and scripts/pnglibconf.h.prebuilt
|
* defs, and in scripts/symbols.def.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* The last ordinal number (this is the *last* one already used; the next
|
/* The last ordinal number (this is the *last* one already used; the next
|
||||||
* one to use is one more than this.) Maintainer, remember to add an entry to
|
* one to use is one more than this.)
|
||||||
* scripts/symbols.def as well.
|
|
||||||
*/
|
*/
|
||||||
#ifdef PNG_EXPORT_LAST_ORDINAL
|
#ifdef PNG_EXPORT_LAST_ORDINAL
|
||||||
PNG_EXPORT_LAST_ORDINAL(244);
|
PNG_EXPORT_LAST_ORDINAL(244);
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngconf.h - machine configurable file for libpng
|
/* pngconf.h - machine configurable file for libpng
|
||||||
*
|
*
|
||||||
* libpng version 1.6.13 - August 21, 2014
|
* libpng version 1.6.14 - October 23, 2014
|
||||||
*
|
*
|
||||||
* Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
|||||||
197
pngpread.c
197
pngpread.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngpread.c - read a png file in push mode
|
/* pngpread.c - read a png file in push mode
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.6.11 [June 5, 2014]
|
* Last changed in libpng 1.6.14 [October 23, 2014]
|
||||||
* Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2014 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.)
|
||||||
@ -26,6 +26,13 @@
|
|||||||
#define PNG_READ_iTXt_MODE 7
|
#define PNG_READ_iTXt_MODE 7
|
||||||
#define PNG_ERROR_MODE 8
|
#define PNG_ERROR_MODE 8
|
||||||
|
|
||||||
|
#define PNG_PUSH_SAVE_BUFFER_IF_FULL \
|
||||||
|
if (png_ptr->push_length + 4 > png_ptr->buffer_size) \
|
||||||
|
{ png_push_save_buffer(png_ptr); return; }
|
||||||
|
#define PNG_PUSH_SAVE_BUFFER_IF_LT(N) \
|
||||||
|
if (png_ptr->buffer_size < N) \
|
||||||
|
{ png_push_save_buffer(png_ptr); return; }
|
||||||
|
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
png_process_data(png_structrp png_ptr, png_inforp info_ptr,
|
png_process_data(png_structrp png_ptr, png_inforp info_ptr,
|
||||||
png_bytep buffer, png_size_t buffer_size)
|
png_bytep buffer, png_size_t buffer_size)
|
||||||
@ -46,7 +53,7 @@ png_process_data_pause(png_structrp png_ptr, int save)
|
|||||||
{
|
{
|
||||||
if (png_ptr != NULL)
|
if (png_ptr != NULL)
|
||||||
{
|
{
|
||||||
/* It's easiest for the caller if we do the save, then the caller doesn't
|
/* It's easiest for the caller if we do the save; then the caller doesn't
|
||||||
* have to supply the same data again:
|
* have to supply the same data again:
|
||||||
*/
|
*/
|
||||||
if (save != 0)
|
if (save != 0)
|
||||||
@ -189,10 +196,10 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
int keep; /* unknown handling method */
|
int keep; /* unknown handling method */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* First we make sure we have enough data for the 4 byte chunk name
|
/* First we make sure we have enough data for the 4-byte chunk name
|
||||||
* and the 4 byte chunk length before proceeding with decoding the
|
* and the 4-byte chunk length before proceeding with decoding the
|
||||||
* chunk data. To fully decode each of these chunks, we also make
|
* chunk data. To fully decode each of these chunks, we also make
|
||||||
* sure we have enough data in the buffer for the 4 byte CRC at the
|
* sure we have enough data in the buffer for the 4-byte CRC at the
|
||||||
* end of every chunk (except IDAT, which is handled separately).
|
* end of every chunk (except IDAT, which is handled separately).
|
||||||
*/
|
*/
|
||||||
if (!(png_ptr->mode & PNG_HAVE_CHUNK_HEADER))
|
if (!(png_ptr->mode & PNG_HAVE_CHUNK_HEADER))
|
||||||
@ -200,12 +207,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
png_byte chunk_length[4];
|
png_byte chunk_length[4];
|
||||||
png_byte chunk_tag[4];
|
png_byte chunk_tag[4];
|
||||||
|
|
||||||
if (png_ptr->buffer_size < 8)
|
PNG_PUSH_SAVE_BUFFER_IF_LT(8)
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_push_fill_buffer(png_ptr, chunk_length, 4);
|
png_push_fill_buffer(png_ptr, chunk_length, 4);
|
||||||
png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length);
|
png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length);
|
||||||
png_reset_crc(png_ptr);
|
png_reset_crc(png_ptr);
|
||||||
@ -249,23 +251,13 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
if (png_ptr->push_length != 13)
|
if (png_ptr->push_length != 13)
|
||||||
png_error(png_ptr, "Invalid IHDR length");
|
png_error(png_ptr, "Invalid IHDR length");
|
||||||
|
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_IHDR(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_IHDR(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (chunk_name == png_IEND)
|
else if (chunk_name == png_IEND)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_IEND(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_IEND(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
|
|
||||||
png_ptr->process_mode = PNG_READ_DONE_MODE;
|
png_ptr->process_mode = PNG_READ_DONE_MODE;
|
||||||
@ -275,12 +267,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||||
else if ((keep = png_chunk_unknown_handling(png_ptr, chunk_name)) != 0)
|
else if ((keep = png_chunk_unknown_handling(png_ptr, chunk_name)) != 0)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length, keep);
|
png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length, keep);
|
||||||
|
|
||||||
if (chunk_name == png_PLTE)
|
if (chunk_name == png_PLTE)
|
||||||
@ -290,11 +277,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
|
|
||||||
else if (chunk_name == png_PLTE)
|
else if (chunk_name == png_PLTE)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
png_handle_PLTE(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_PLTE(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -313,12 +296,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_gAMA_SUPPORTED
|
#ifdef PNG_READ_gAMA_SUPPORTED
|
||||||
else if (png_ptr->chunk_name == png_gAMA)
|
else if (png_ptr->chunk_name == png_gAMA)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_gAMA(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_gAMA(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -326,12 +304,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_sBIT_SUPPORTED
|
#ifdef PNG_READ_sBIT_SUPPORTED
|
||||||
else if (png_ptr->chunk_name == png_sBIT)
|
else if (png_ptr->chunk_name == png_sBIT)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_sBIT(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_sBIT(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,12 +312,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_cHRM_SUPPORTED
|
#ifdef PNG_READ_cHRM_SUPPORTED
|
||||||
else if (png_ptr->chunk_name == png_cHRM)
|
else if (png_ptr->chunk_name == png_cHRM)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_cHRM(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_cHRM(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -352,12 +320,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_sRGB_SUPPORTED
|
#ifdef PNG_READ_sRGB_SUPPORTED
|
||||||
else if (chunk_name == png_sRGB)
|
else if (chunk_name == png_sRGB)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_sRGB(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_sRGB(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -365,12 +328,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_iCCP_SUPPORTED
|
#ifdef PNG_READ_iCCP_SUPPORTED
|
||||||
else if (png_ptr->chunk_name == png_iCCP)
|
else if (png_ptr->chunk_name == png_iCCP)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_iCCP(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_iCCP(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -378,12 +336,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_sPLT_SUPPORTED
|
#ifdef PNG_READ_sPLT_SUPPORTED
|
||||||
else if (chunk_name == png_sPLT)
|
else if (chunk_name == png_sPLT)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_sPLT(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_sPLT(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -391,12 +344,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_tRNS_SUPPORTED
|
#ifdef PNG_READ_tRNS_SUPPORTED
|
||||||
else if (chunk_name == png_tRNS)
|
else if (chunk_name == png_tRNS)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_tRNS(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_tRNS(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -404,12 +352,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_bKGD_SUPPORTED
|
#ifdef PNG_READ_bKGD_SUPPORTED
|
||||||
else if (chunk_name == png_bKGD)
|
else if (chunk_name == png_bKGD)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_bKGD(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_bKGD(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -417,12 +360,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_hIST_SUPPORTED
|
#ifdef PNG_READ_hIST_SUPPORTED
|
||||||
else if (chunk_name == png_hIST)
|
else if (chunk_name == png_hIST)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_hIST(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_hIST(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -430,12 +368,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_pHYs_SUPPORTED
|
#ifdef PNG_READ_pHYs_SUPPORTED
|
||||||
else if (chunk_name == png_pHYs)
|
else if (chunk_name == png_pHYs)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_pHYs(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_pHYs(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -443,12 +376,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_oFFs_SUPPORTED
|
#ifdef PNG_READ_oFFs_SUPPORTED
|
||||||
else if (chunk_name == png_oFFs)
|
else if (chunk_name == png_oFFs)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_oFFs(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_oFFs(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -456,12 +384,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_pCAL_SUPPORTED
|
#ifdef PNG_READ_pCAL_SUPPORTED
|
||||||
else if (chunk_name == png_pCAL)
|
else if (chunk_name == png_pCAL)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_pCAL(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_pCAL(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -469,12 +392,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_sCAL_SUPPORTED
|
#ifdef PNG_READ_sCAL_SUPPORTED
|
||||||
else if (chunk_name == png_sCAL)
|
else if (chunk_name == png_sCAL)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_sCAL(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_sCAL(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -482,12 +400,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_tIME_SUPPORTED
|
#ifdef PNG_READ_tIME_SUPPORTED
|
||||||
else if (chunk_name == png_tIME)
|
else if (chunk_name == png_tIME)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_tIME(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_tIME(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -495,12 +408,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_tEXt_SUPPORTED
|
#ifdef PNG_READ_tEXt_SUPPORTED
|
||||||
else if (chunk_name == png_tEXt)
|
else if (chunk_name == png_tEXt)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_tEXt(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_tEXt(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -508,12 +416,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_zTXt_SUPPORTED
|
#ifdef PNG_READ_zTXt_SUPPORTED
|
||||||
else if (chunk_name == png_zTXt)
|
else if (chunk_name == png_zTXt)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_zTXt(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_zTXt(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -521,23 +424,14 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_READ_iTXt_SUPPORTED
|
#ifdef PNG_READ_iTXt_SUPPORTED
|
||||||
else if (chunk_name == png_iTXt)
|
else if (chunk_name == png_iTXt)
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (png_ptr->push_length + 4 > png_ptr->buffer_size)
|
PNG_PUSH_SAVE_BUFFER_IF_FULL
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length,
|
png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length,
|
||||||
PNG_HANDLE_CHUNK_AS_DEFAULT);
|
PNG_HANDLE_CHUNK_AS_DEFAULT);
|
||||||
}
|
}
|
||||||
@ -602,12 +496,7 @@ png_push_crc_finish(png_structrp png_ptr)
|
|||||||
}
|
}
|
||||||
if (!png_ptr->skip_length)
|
if (!png_ptr->skip_length)
|
||||||
{
|
{
|
||||||
if (png_ptr->buffer_size < 4)
|
PNG_PUSH_SAVE_BUFFER_IF_LT(4)
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_crc_finish(png_ptr, 0);
|
png_crc_finish(png_ptr, 0);
|
||||||
png_ptr->process_mode = PNG_READ_CHUNK_MODE;
|
png_ptr->process_mode = PNG_READ_CHUNK_MODE;
|
||||||
}
|
}
|
||||||
@ -732,12 +621,7 @@ png_push_read_IDAT(png_structrp png_ptr)
|
|||||||
png_byte chunk_tag[4];
|
png_byte chunk_tag[4];
|
||||||
|
|
||||||
/* TODO: this code can be commoned up with the same code in push_read */
|
/* TODO: this code can be commoned up with the same code in push_read */
|
||||||
if (png_ptr->buffer_size < 8)
|
PNG_PUSH_SAVE_BUFFER_IF_LT(8)
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_push_fill_buffer(png_ptr, chunk_length, 4);
|
png_push_fill_buffer(png_ptr, chunk_length, 4);
|
||||||
png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length);
|
png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length);
|
||||||
png_reset_crc(png_ptr);
|
png_reset_crc(png_ptr);
|
||||||
@ -812,12 +696,7 @@ png_push_read_IDAT(png_structrp png_ptr)
|
|||||||
}
|
}
|
||||||
if (!png_ptr->idat_size)
|
if (!png_ptr->idat_size)
|
||||||
{
|
{
|
||||||
if (png_ptr->buffer_size < 4)
|
PNG_PUSH_SAVE_BUFFER_IF_LT(4)
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_crc_finish(png_ptr, 0);
|
png_crc_finish(png_ptr, 0);
|
||||||
png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
|
png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
|
||||||
png_ptr->mode |= PNG_AFTER_IDAT;
|
png_ptr->mode |= PNG_AFTER_IDAT;
|
||||||
|
|||||||
@ -1090,7 +1090,7 @@ PNG_INTERNAL_FUNCTION(void,png_write_tEXt,(png_structrp png_ptr,
|
|||||||
|
|
||||||
#ifdef PNG_WRITE_zTXt_SUPPORTED
|
#ifdef PNG_WRITE_zTXt_SUPPORTED
|
||||||
PNG_INTERNAL_FUNCTION(void,png_write_zTXt,(png_structrp png_ptr, png_const_charp
|
PNG_INTERNAL_FUNCTION(void,png_write_zTXt,(png_structrp png_ptr, png_const_charp
|
||||||
key, png_const_charp text, png_size_t text_len, int compression),PNG_EMPTY);
|
key, png_const_charp text, int compression),PNG_EMPTY);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_WRITE_iTXt_SUPPORTED
|
#ifdef PNG_WRITE_iTXt_SUPPORTED
|
||||||
|
|||||||
@ -396,6 +396,7 @@ png_read_row(png_structrp png_ptr, png_bytep row, png_bytep dsp_row)
|
|||||||
row_info.pixel_depth = png_ptr->pixel_depth;
|
row_info.pixel_depth = png_ptr->pixel_depth;
|
||||||
row_info.rowbytes = PNG_ROWBYTES(row_info.pixel_depth, row_info.width);
|
row_info.rowbytes = PNG_ROWBYTES(row_info.pixel_depth, row_info.width);
|
||||||
|
|
||||||
|
#ifdef PNG_WARNINGS_SUPPORTED
|
||||||
if (png_ptr->row_number == 0 && png_ptr->pass == 0)
|
if (png_ptr->row_number == 0 && png_ptr->pass == 0)
|
||||||
{
|
{
|
||||||
/* Check for transforms that have been set but were defined out */
|
/* Check for transforms that have been set but were defined out */
|
||||||
@ -435,6 +436,7 @@ png_read_row(png_structrp png_ptr, png_bytep row, png_bytep dsp_row)
|
|||||||
png_warning(png_ptr, "PNG_READ_SWAP_SUPPORTED is not defined");
|
png_warning(png_ptr, "PNG_READ_SWAP_SUPPORTED is not defined");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#endif /* PNG_WARNINGS_SUPPORTED */
|
||||||
|
|
||||||
#ifdef PNG_READ_INTERLACING_SUPPORTED
|
#ifdef PNG_READ_INTERLACING_SUPPORTED
|
||||||
/* If interlaced and we do not need a new row, combine row and return.
|
/* If interlaced and we do not need a new row, combine row and return.
|
||||||
|
|||||||
@ -959,7 +959,7 @@ png_set_rgb_to_gray_fixed(png_structrp png_ptr, int error_action,
|
|||||||
if (!png_rtran_ok(png_ptr, 1))
|
if (!png_rtran_ok(png_ptr, 1))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
switch(error_action)
|
switch (error_action)
|
||||||
{
|
{
|
||||||
case PNG_ERROR_ACTION_NONE:
|
case PNG_ERROR_ACTION_NONE:
|
||||||
png_ptr->transformations |= PNG_RGB_TO_GRAY;
|
png_ptr->transformations |= PNG_RGB_TO_GRAY;
|
||||||
|
|||||||
89
pngrutil.c
89
pngrutil.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngrutil.c - utilities to read a PNG file
|
/* pngrutil.c - utilities to read a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.6.11 [June 5, 2014]
|
* Last changed in libpng 1.6.14 [October 23, 2014]
|
||||||
* Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2014 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.)
|
||||||
@ -341,12 +341,12 @@ png_inflate_claim(png_structrp png_ptr, png_uint_32 owner)
|
|||||||
* are minimal.
|
* are minimal.
|
||||||
*/
|
*/
|
||||||
(void)png_safecat(msg, (sizeof msg), 4, " using zstream");
|
(void)png_safecat(msg, (sizeof msg), 4, " using zstream");
|
||||||
# if PNG_LIBPNG_BUILD_BASE_TYPE >= PNG_LIBPNG_BUILD_RC
|
#if PNG_LIBPNG_BUILD_BASE_TYPE >= PNG_LIBPNG_BUILD_RC
|
||||||
png_chunk_warning(png_ptr, msg);
|
png_chunk_warning(png_ptr, msg);
|
||||||
png_ptr->zowner = 0;
|
png_ptr->zowner = 0;
|
||||||
# else
|
#else
|
||||||
png_chunk_error(png_ptr, msg);
|
png_chunk_error(png_ptr, msg);
|
||||||
# endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Implementation note: unlike 'png_deflate_claim' this internal function
|
/* Implementation note: unlike 'png_deflate_claim' this internal function
|
||||||
@ -364,22 +364,21 @@ png_inflate_claim(png_structrp png_ptr, png_uint_32 owner)
|
|||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int ret; /* zlib return code */
|
int ret; /* zlib return code */
|
||||||
# if PNG_ZLIB_VERNUM >= 0x1240
|
#if PNG_ZLIB_VERNUM >= 0x1240
|
||||||
|
|
||||||
# if defined(PNG_SET_OPTION_SUPPORTED) && \
|
# if defined(PNG_SET_OPTION_SUPPORTED) && defined(PNG_MAXIMUM_INFLATE_WINDOW)
|
||||||
defined(PNG_MAXIMUM_INFLATE_WINDOW)
|
int window_bits;
|
||||||
int window_bits;
|
|
||||||
|
|
||||||
if (((png_ptr->options >> PNG_MAXIMUM_INFLATE_WINDOW) & 3) ==
|
if (((png_ptr->options >> PNG_MAXIMUM_INFLATE_WINDOW) & 3) ==
|
||||||
PNG_OPTION_ON)
|
PNG_OPTION_ON)
|
||||||
window_bits = 15;
|
window_bits = 15;
|
||||||
|
|
||||||
else
|
else
|
||||||
window_bits = 0;
|
window_bits = 0;
|
||||||
# else
|
# else
|
||||||
# define window_bits 0
|
# define window_bits 0
|
||||||
# endif
|
# endif
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* Set this for safety, just in case the previous owner left pointers to
|
/* Set this for safety, just in case the previous owner left pointers to
|
||||||
* memory allocations.
|
* memory allocations.
|
||||||
@ -391,20 +390,20 @@ png_inflate_claim(png_structrp png_ptr, png_uint_32 owner)
|
|||||||
|
|
||||||
if (png_ptr->flags & PNG_FLAG_ZSTREAM_INITIALIZED)
|
if (png_ptr->flags & PNG_FLAG_ZSTREAM_INITIALIZED)
|
||||||
{
|
{
|
||||||
# if PNG_ZLIB_VERNUM < 0x1240
|
#if PNG_ZLIB_VERNUM < 0x1240
|
||||||
ret = inflateReset(&png_ptr->zstream);
|
ret = inflateReset(&png_ptr->zstream);
|
||||||
# else
|
#else
|
||||||
ret = inflateReset2(&png_ptr->zstream, window_bits);
|
ret = inflateReset2(&png_ptr->zstream, window_bits);
|
||||||
# endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
# if PNG_ZLIB_VERNUM < 0x1240
|
#if PNG_ZLIB_VERNUM < 0x1240
|
||||||
ret = inflateInit(&png_ptr->zstream);
|
ret = inflateInit(&png_ptr->zstream);
|
||||||
# else
|
#else
|
||||||
ret = inflateInit2(&png_ptr->zstream, window_bits);
|
ret = inflateInit2(&png_ptr->zstream, window_bits);
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
if (ret == Z_OK)
|
if (ret == Z_OK)
|
||||||
png_ptr->flags |= PNG_FLAG_ZSTREAM_INITIALIZED;
|
png_ptr->flags |= PNG_FLAG_ZSTREAM_INITIALIZED;
|
||||||
@ -419,9 +418,9 @@ png_inflate_claim(png_structrp png_ptr, png_uint_32 owner)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
# ifdef window_bits
|
#ifdef window_bits
|
||||||
# undef window_bits
|
# undef window_bits
|
||||||
# endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PNG_READ_COMPRESSED_TEXT_SUPPORTED
|
#ifdef PNG_READ_COMPRESSED_TEXT_SUPPORTED
|
||||||
@ -518,7 +517,7 @@ png_inflate(png_structrp png_ptr, png_uint_32 owner, int finish,
|
|||||||
* end of the output buffer.
|
* end of the output buffer.
|
||||||
*/
|
*/
|
||||||
ret = inflate(&png_ptr->zstream, avail_out > 0 ? Z_NO_FLUSH :
|
ret = inflate(&png_ptr->zstream, avail_out > 0 ? Z_NO_FLUSH :
|
||||||
(finish ? Z_FINISH : Z_SYNC_FLUSH));
|
(finish ? Z_FINISH : Z_SYNC_FLUSH));
|
||||||
} while (ret == Z_OK);
|
} while (ret == Z_OK);
|
||||||
|
|
||||||
/* For safety kill the local buffer pointer now */
|
/* For safety kill the local buffer pointer now */
|
||||||
@ -576,14 +575,14 @@ png_decompress_chunk(png_structrp png_ptr,
|
|||||||
*/
|
*/
|
||||||
png_alloc_size_t limit = PNG_SIZE_MAX;
|
png_alloc_size_t limit = PNG_SIZE_MAX;
|
||||||
|
|
||||||
# ifdef PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
|
# ifdef PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
|
||||||
if (png_ptr->user_chunk_malloc_max > 0 &&
|
if (png_ptr->user_chunk_malloc_max > 0 &&
|
||||||
png_ptr->user_chunk_malloc_max < limit)
|
png_ptr->user_chunk_malloc_max < limit)
|
||||||
limit = png_ptr->user_chunk_malloc_max;
|
limit = png_ptr->user_chunk_malloc_max;
|
||||||
# elif PNG_USER_CHUNK_MALLOC_MAX > 0
|
# elif PNG_USER_CHUNK_MALLOC_MAX > 0
|
||||||
if (PNG_USER_CHUNK_MALLOC_MAX < limit)
|
if (PNG_USER_CHUNK_MALLOC_MAX < limit)
|
||||||
limit = PNG_USER_CHUNK_MALLOC_MAX;
|
limit = PNG_USER_CHUNK_MALLOC_MAX;
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
if (limit >= prefix_size + (terminate != 0))
|
if (limit >= prefix_size + (terminate != 0))
|
||||||
{
|
{
|
||||||
@ -1011,7 +1010,7 @@ png_handle_PLTE(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
|
|||||||
*/
|
*/
|
||||||
#ifdef PNG_READ_tRNS_SUPPORTED
|
#ifdef PNG_READ_tRNS_SUPPORTED
|
||||||
if (png_ptr->num_trans > 0 ||
|
if (png_ptr->num_trans > 0 ||
|
||||||
(info_ptr != NULL && (info_ptr->valid & PNG_INFO_tRNS) != 0))
|
(info_ptr != NULL && (info_ptr->valid & PNG_INFO_tRNS) != 0))
|
||||||
{
|
{
|
||||||
/* Cancel this because otherwise it would be used if the transforms
|
/* Cancel this because otherwise it would be used if the transforms
|
||||||
* require it. Don't cancel the 'valid' flag because this would prevent
|
* require it. Don't cancel the 'valid' flag because this would prevent
|
||||||
@ -2672,7 +2671,7 @@ png_handle_iTXt(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
|
|||||||
|
|
||||||
buffer[uncompressed_length+prefix_length] = 0;
|
buffer[uncompressed_length+prefix_length] = 0;
|
||||||
|
|
||||||
if (compressed != 0)
|
if (compressed == 0)
|
||||||
text.compression = PNG_ITXT_COMPRESSION_NONE;
|
text.compression = PNG_ITXT_COMPRESSION_NONE;
|
||||||
|
|
||||||
else
|
else
|
||||||
@ -3331,7 +3330,7 @@ png_combine_row(png_const_structrp png_ptr, png_bytep dp, int display)
|
|||||||
/* This can only be the RGB case, so each copy is exactly one
|
/* This can only be the RGB case, so each copy is exactly one
|
||||||
* pixel and it is not necessary to check for a partial copy.
|
* pixel and it is not necessary to check for a partial copy.
|
||||||
*/
|
*/
|
||||||
for(;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
dp[0] = sp[0], dp[1] = sp[1], dp[2] = sp[2];
|
dp[0] = sp[0], dp[1] = sp[1], dp[2] = sp[2];
|
||||||
|
|
||||||
|
|||||||
14
pngset.c
14
pngset.c
@ -726,7 +726,7 @@ png_set_text_2(png_const_structrp png_ptr, png_inforp info_ptr,
|
|||||||
else
|
else
|
||||||
max_text = INT_MAX;
|
max_text = INT_MAX;
|
||||||
|
|
||||||
/* Now allocate a new array and copy the old members in, this does all
|
/* Now allocate a new array and copy the old members in; this does all
|
||||||
* the overflow checks.
|
* the overflow checks.
|
||||||
*/
|
*/
|
||||||
new_text = png_voidcast(png_textp,png_realloc_array(png_ptr,
|
new_text = png_voidcast(png_textp,png_realloc_array(png_ptr,
|
||||||
@ -1020,8 +1020,8 @@ png_set_sPLT(png_const_structrp png_ptr,
|
|||||||
|
|
||||||
np->depth = entries->depth;
|
np->depth = entries->depth;
|
||||||
|
|
||||||
/* In the even of out-of-memory just return - there's no point keeping on
|
/* In the event of out-of-memory just return - there's no point keeping
|
||||||
* trying to add sPLT chunks.
|
* on trying to add sPLT chunks.
|
||||||
*/
|
*/
|
||||||
length = strlen(entries->name) + 1;
|
length = strlen(entries->name) + 1;
|
||||||
np->name = png_voidcast(png_charp, png_malloc_base(png_ptr, length));
|
np->name = png_voidcast(png_charp, png_malloc_base(png_ptr, length));
|
||||||
@ -1032,8 +1032,8 @@ png_set_sPLT(png_const_structrp png_ptr,
|
|||||||
memcpy(np->name, entries->name, length);
|
memcpy(np->name, entries->name, length);
|
||||||
|
|
||||||
/* IMPORTANT: we have memory now that won't get freed if something else
|
/* IMPORTANT: we have memory now that won't get freed if something else
|
||||||
* goes wrong, this code must free it. png_malloc_array produces no
|
* goes wrong; this code must free it. png_malloc_array produces no
|
||||||
* warnings, use a png_chunk_report (below) if there is an error.
|
* warnings; use a png_chunk_report (below) if there is an error.
|
||||||
*/
|
*/
|
||||||
np->entries = png_voidcast(png_sPLT_entryp, png_malloc_array(png_ptr,
|
np->entries = png_voidcast(png_sPLT_entryp, png_malloc_array(png_ptr,
|
||||||
entries->nentries, sizeof (png_sPLT_entry)));
|
entries->nentries, sizeof (png_sPLT_entry)));
|
||||||
@ -1072,7 +1072,7 @@ check_location(png_const_structrp png_ptr, int location)
|
|||||||
location &= (PNG_HAVE_IHDR|PNG_HAVE_PLTE|PNG_AFTER_IDAT);
|
location &= (PNG_HAVE_IHDR|PNG_HAVE_PLTE|PNG_AFTER_IDAT);
|
||||||
|
|
||||||
/* New in 1.6.0; copy the location and check it. This is an API
|
/* New in 1.6.0; copy the location and check it. This is an API
|
||||||
* change, previously the app had to use the
|
* change; previously the app had to use the
|
||||||
* png_set_unknown_chunk_location API below for each chunk.
|
* png_set_unknown_chunk_location API below for each chunk.
|
||||||
*/
|
*/
|
||||||
if (location == 0 && !(png_ptr->mode & PNG_IS_READ_STRUCT))
|
if (location == 0 && !(png_ptr->mode & PNG_IS_READ_STRUCT))
|
||||||
@ -1578,7 +1578,7 @@ png_set_benign_errors(png_structrp png_ptr, int allowed)
|
|||||||
* It is possible for an indexed (color-type==3) PNG file to contain
|
* It is possible for an indexed (color-type==3) PNG file to contain
|
||||||
* pixels with invalid (out-of-range) indexes if the PLTE chunk has
|
* pixels with invalid (out-of-range) indexes if the PLTE chunk has
|
||||||
* fewer entries than the image's bit-depth would allow. We recover
|
* fewer entries than the image's bit-depth would allow. We recover
|
||||||
* from this gracefully by filling any incomplete palette with zeroes
|
* from this gracefully by filling any incomplete palette with zeros
|
||||||
* (opaque black). By default, when this occurs libpng will issue
|
* (opaque black). By default, when this occurs libpng will issue
|
||||||
* a benign error. This API can be used to override that behavior.
|
* a benign error. This API can be used to override that behavior.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -646,7 +646,7 @@ set_location(png_structp png_ptr, struct user_chunk_data *data, int what)
|
|||||||
if ((data->location[0] & what) || (data->location[1] & what))
|
if ((data->location[0] & what) || (data->location[1] & what))
|
||||||
return 0; /* already have one of these */
|
return 0; /* already have one of these */
|
||||||
|
|
||||||
/* Find where we are (the code below zeros info_ptr to indicate that the
|
/* Find where we are (the code below zeroes info_ptr to indicate that the
|
||||||
* chunks before the first IDAT have been read.)
|
* chunks before the first IDAT have been read.)
|
||||||
*/
|
*/
|
||||||
if (data->info_ptr == NULL) /* after IDAT */
|
if (data->info_ptr == NULL) /* after IDAT */
|
||||||
@ -1991,4 +1991,4 @@ main(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* 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 png_libpng_version_1_6_13 Your_png_h_is_not_version_1_6_13;
|
typedef png_libpng_version_1_6_14 Your_png_h_is_not_version_1_6_14;
|
||||||
|
|||||||
@ -828,7 +828,7 @@ png_get_user_transform_ptr(png_const_structrp png_ptr)
|
|||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_current_row_number(png_const_structrp png_ptr)
|
png_get_current_row_number(png_const_structrp png_ptr)
|
||||||
{
|
{
|
||||||
/* See the comments in png.h - this is the sub-image row when reading and
|
/* See the comments in png.h - this is the sub-image row when reading an
|
||||||
* interlaced image.
|
* interlaced image.
|
||||||
*/
|
*/
|
||||||
if (png_ptr != NULL)
|
if (png_ptr != NULL)
|
||||||
|
|||||||
37
pngwrite.c
37
pngwrite.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngwrite.c - general routines to write a PNG file
|
/* pngwrite.c - general routines to write a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.6.11 [June 5, 2014]
|
* Last changed in libpng 1.6.14 [October 23, 2014]
|
||||||
* Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2014 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.)
|
||||||
@ -292,11 +292,14 @@ png_write_info(png_structrp png_ptr, png_const_inforp info_ptr)
|
|||||||
info_ptr->text[i].lang,
|
info_ptr->text[i].lang,
|
||||||
info_ptr->text[i].lang_key,
|
info_ptr->text[i].lang_key,
|
||||||
info_ptr->text[i].text);
|
info_ptr->text[i].text);
|
||||||
|
/* Mark this chunk as written */
|
||||||
|
if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE)
|
||||||
|
info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;
|
||||||
|
else
|
||||||
|
info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR;
|
||||||
#else
|
#else
|
||||||
png_warning(png_ptr, "Unable to write international text");
|
png_warning(png_ptr, "Unable to write international text");
|
||||||
#endif
|
#endif
|
||||||
/* Mark this chunk as written */
|
|
||||||
info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If we want a compressed text chunk */
|
/* If we want a compressed text chunk */
|
||||||
@ -305,13 +308,12 @@ png_write_info(png_structrp png_ptr, png_const_inforp info_ptr)
|
|||||||
#ifdef PNG_WRITE_zTXt_SUPPORTED
|
#ifdef PNG_WRITE_zTXt_SUPPORTED
|
||||||
/* Write compressed chunk */
|
/* Write compressed chunk */
|
||||||
png_write_zTXt(png_ptr, info_ptr->text[i].key,
|
png_write_zTXt(png_ptr, info_ptr->text[i].key,
|
||||||
info_ptr->text[i].text, 0,
|
info_ptr->text[i].text, info_ptr->text[i].compression);
|
||||||
info_ptr->text[i].compression);
|
/* Mark this chunk as written */
|
||||||
|
info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR;
|
||||||
#else
|
#else
|
||||||
png_warning(png_ptr, "Unable to write compressed text");
|
png_warning(png_ptr, "Unable to write compressed text");
|
||||||
#endif
|
#endif
|
||||||
/* Mark this chunk as written */
|
|
||||||
info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE)
|
else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE)
|
||||||
@ -387,11 +389,14 @@ png_write_end(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
info_ptr->text[i].lang,
|
info_ptr->text[i].lang,
|
||||||
info_ptr->text[i].lang_key,
|
info_ptr->text[i].lang_key,
|
||||||
info_ptr->text[i].text);
|
info_ptr->text[i].text);
|
||||||
|
/* Mark this chunk as written */
|
||||||
|
if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE)
|
||||||
|
info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;
|
||||||
|
else
|
||||||
|
info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR;
|
||||||
#else
|
#else
|
||||||
png_warning(png_ptr, "Unable to write international text");
|
png_warning(png_ptr, "Unable to write international text");
|
||||||
#endif
|
#endif
|
||||||
/* Mark this chunk as written */
|
|
||||||
info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (info_ptr->text[i].compression >= PNG_TEXT_COMPRESSION_zTXt)
|
else if (info_ptr->text[i].compression >= PNG_TEXT_COMPRESSION_zTXt)
|
||||||
@ -399,13 +404,12 @@ png_write_end(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
#ifdef PNG_WRITE_zTXt_SUPPORTED
|
#ifdef PNG_WRITE_zTXt_SUPPORTED
|
||||||
/* Write compressed chunk */
|
/* Write compressed chunk */
|
||||||
png_write_zTXt(png_ptr, info_ptr->text[i].key,
|
png_write_zTXt(png_ptr, info_ptr->text[i].key,
|
||||||
info_ptr->text[i].text, 0,
|
info_ptr->text[i].text, info_ptr->text[i].compression);
|
||||||
info_ptr->text[i].compression);
|
/* Mark this chunk as written */
|
||||||
|
info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR;
|
||||||
#else
|
#else
|
||||||
png_warning(png_ptr, "Unable to write compressed text");
|
png_warning(png_ptr, "Unable to write compressed text");
|
||||||
#endif
|
#endif
|
||||||
/* Mark this chunk as written */
|
|
||||||
info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE)
|
else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE)
|
||||||
@ -414,12 +418,11 @@ png_write_end(png_structrp png_ptr, png_inforp info_ptr)
|
|||||||
/* Write uncompressed chunk */
|
/* Write uncompressed chunk */
|
||||||
png_write_tEXt(png_ptr, info_ptr->text[i].key,
|
png_write_tEXt(png_ptr, info_ptr->text[i].key,
|
||||||
info_ptr->text[i].text, 0);
|
info_ptr->text[i].text, 0);
|
||||||
|
/* Mark this chunk as written */
|
||||||
|
info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;
|
||||||
#else
|
#else
|
||||||
png_warning(png_ptr, "Unable to write uncompressed text");
|
png_warning(png_ptr, "Unable to write uncompressed text");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Mark this chunk as written */
|
|
||||||
info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
27
pngwutil.c
27
pngwutil.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngwutil.c - utilities to write a PNG file
|
/* pngwutil.c - utilities to write a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.6.11 [June 5, 2014]
|
* Last changed in libpng 1.6.14 [October 23, 2014]
|
||||||
* Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2014 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.)
|
||||||
@ -136,7 +136,7 @@ png_write_chunk_data(png_structrp png_ptr, png_const_bytep data,
|
|||||||
png_write_data(png_ptr, data, length);
|
png_write_data(png_ptr, data, length);
|
||||||
|
|
||||||
/* Update the CRC after writing the data,
|
/* Update the CRC after writing the data,
|
||||||
* in case that the user I/O routine alters it.
|
* in case the user I/O routine alters it.
|
||||||
*/
|
*/
|
||||||
png_calculate_crc(png_ptr, data, length);
|
png_calculate_crc(png_ptr, data, length);
|
||||||
}
|
}
|
||||||
@ -181,7 +181,7 @@ png_write_complete_chunk(png_structrp png_ptr, png_uint_32 chunk_name,
|
|||||||
|
|
||||||
/* On 64 bit architectures 'length' may not fit in a png_uint_32. */
|
/* On 64 bit architectures 'length' may not fit in a png_uint_32. */
|
||||||
if (length > PNG_UINT_31_MAX)
|
if (length > PNG_UINT_31_MAX)
|
||||||
png_error(png_ptr, "length exceeds PNG maxima");
|
png_error(png_ptr, "length exceeds PNG maximum");
|
||||||
|
|
||||||
png_write_chunk_header(png_ptr, chunk_name, (png_uint_32)length);
|
png_write_chunk_header(png_ptr, chunk_name, (png_uint_32)length);
|
||||||
png_write_chunk_data(png_ptr, data, length);
|
png_write_chunk_data(png_ptr, data, length);
|
||||||
@ -204,7 +204,7 @@ png_write_chunk(png_structrp png_ptr, png_const_bytep chunk_string,
|
|||||||
static png_alloc_size_t
|
static png_alloc_size_t
|
||||||
png_image_size(png_structrp png_ptr)
|
png_image_size(png_structrp png_ptr)
|
||||||
{
|
{
|
||||||
/* Only return sizes up to the maximum of a png_uint_32, do this by limiting
|
/* Only return sizes up to the maximum of a png_uint_32; do this by limiting
|
||||||
* the width and height used to 15 bits.
|
* the width and height used to 15 bits.
|
||||||
*/
|
*/
|
||||||
png_uint_32 h = png_ptr->height;
|
png_uint_32 h = png_ptr->height;
|
||||||
@ -297,6 +297,7 @@ png_deflate_claim(png_structrp png_ptr, png_uint_32 owner,
|
|||||||
{
|
{
|
||||||
if (png_ptr->zowner != 0)
|
if (png_ptr->zowner != 0)
|
||||||
{
|
{
|
||||||
|
# if defined(PNG_WARNINGS_SUPPORTED) || defined(PNG_ERROR_TEXT_SUPPORTED)
|
||||||
char msg[64];
|
char msg[64];
|
||||||
|
|
||||||
PNG_STRING_FROM_CHUNK(msg, owner);
|
PNG_STRING_FROM_CHUNK(msg, owner);
|
||||||
@ -308,6 +309,7 @@ png_deflate_claim(png_structrp png_ptr, png_uint_32 owner,
|
|||||||
* are minimal.
|
* are minimal.
|
||||||
*/
|
*/
|
||||||
(void)png_safecat(msg, (sizeof msg), 10, " using zstream");
|
(void)png_safecat(msg, (sizeof msg), 10, " using zstream");
|
||||||
|
# endif
|
||||||
# if PNG_LIBPNG_BUILD_BASE_TYPE >= PNG_LIBPNG_BUILD_RC
|
# if PNG_LIBPNG_BUILD_BASE_TYPE >= PNG_LIBPNG_BUILD_RC
|
||||||
png_warning(png_ptr, msg);
|
png_warning(png_ptr, msg);
|
||||||
|
|
||||||
@ -492,7 +494,7 @@ png_text_compress(png_structrp png_ptr, png_uint_32 chunk_name,
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* To find the length of the output it is necessary to first compress the
|
/* To find the length of the output it is necessary to first compress the
|
||||||
* input, the result is buffered rather than using the two-pass algorithm
|
* input. The result is buffered rather than using the two-pass algorithm
|
||||||
* that is used on the inflate side; deflate is assumed to be slower and a
|
* that is used on the inflate side; deflate is assumed to be slower and a
|
||||||
* PNG writer is assumed to have more memory available than a PNG reader.
|
* PNG writer is assumed to have more memory available than a PNG reader.
|
||||||
*
|
*
|
||||||
@ -589,7 +591,7 @@ png_text_compress(png_structrp png_ptr, png_uint_32 chunk_name,
|
|||||||
}
|
}
|
||||||
while (ret == Z_OK);
|
while (ret == Z_OK);
|
||||||
|
|
||||||
/* There may be some space left in the last output buffer, this needs to
|
/* There may be some space left in the last output buffer. This needs to
|
||||||
* be subtracted from output_len.
|
* be subtracted from output_len.
|
||||||
*/
|
*/
|
||||||
output_len -= png_ptr->zstream.avail_out;
|
output_len -= png_ptr->zstream.avail_out;
|
||||||
@ -612,7 +614,7 @@ png_text_compress(png_structrp png_ptr, png_uint_32 chunk_name,
|
|||||||
/* Reset zlib for another zTXt/iTXt or image data */
|
/* Reset zlib for another zTXt/iTXt or image data */
|
||||||
png_ptr->zowner = 0;
|
png_ptr->zowner = 0;
|
||||||
|
|
||||||
/* The only success case is Z_STREAM_END, input_len must be 0, if not this
|
/* The only success case is Z_STREAM_END, input_len must be 0; if not this
|
||||||
* is an internal error.
|
* is an internal error.
|
||||||
*/
|
*/
|
||||||
if (ret == Z_STREAM_END && input_len == 0)
|
if (ret == Z_STREAM_END && input_len == 0)
|
||||||
@ -728,6 +730,7 @@ png_check_keyword(png_structrp png_ptr, png_const_charp key, png_bytep new_key)
|
|||||||
if (key_len == 0)
|
if (key_len == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
#ifdef PNG_WARNINGS_SUPPORTED
|
||||||
/* Try to only output one warning per keyword: */
|
/* Try to only output one warning per keyword: */
|
||||||
if (*key) /* keyword too long */
|
if (*key) /* keyword too long */
|
||||||
png_warning(png_ptr, "keyword truncated");
|
png_warning(png_ptr, "keyword truncated");
|
||||||
@ -741,6 +744,7 @@ png_check_keyword(png_structrp png_ptr, png_const_charp key, png_bytep new_key)
|
|||||||
|
|
||||||
png_formatted_warning(png_ptr, p, "keyword \"@1\": bad character '0x@2'");
|
png_formatted_warning(png_ptr, p, "keyword \"@1\": bad character '0x@2'");
|
||||||
}
|
}
|
||||||
|
#endif /* PNG_WARNINGS_SUPPORTED */
|
||||||
|
|
||||||
return key_len;
|
return key_len;
|
||||||
}
|
}
|
||||||
@ -998,7 +1002,7 @@ png_write_PLTE(png_structrp png_ptr, png_const_colorp palette,
|
|||||||
* Z_FINISH: this is the end of the input, do a Z_FINISH and clean up
|
* Z_FINISH: this is the end of the input, do a Z_FINISH and clean up
|
||||||
*
|
*
|
||||||
* The routine manages the acquire and release of the png_ptr->zstream by
|
* The routine manages the acquire and release of the png_ptr->zstream by
|
||||||
* checking and (at the end) clearing png_ptr->zowner, it does some sanity
|
* checking and (at the end) clearing png_ptr->zowner; it does some sanity
|
||||||
* checks on the 'mode' flags while doing this.
|
* checks on the 'mode' flags while doing this.
|
||||||
*/
|
*/
|
||||||
void /* PRIVATE */
|
void /* PRIVATE */
|
||||||
@ -1058,7 +1062,7 @@ png_compress_IDAT(png_structrp png_ptr, png_const_bytep input,
|
|||||||
input_len += png_ptr->zstream.avail_in;
|
input_len += png_ptr->zstream.avail_in;
|
||||||
png_ptr->zstream.avail_in = 0;
|
png_ptr->zstream.avail_in = 0;
|
||||||
|
|
||||||
/* OUTPUT: write complete IDAT chunks when avail_out drops to zero, note
|
/* OUTPUT: write complete IDAT chunks when avail_out drops to zero. Note
|
||||||
* that these two zstream fields are preserved across the calls, therefore
|
* that these two zstream fields are preserved across the calls, therefore
|
||||||
* there is no need to set these up on entry to the loop.
|
* there is no need to set these up on entry to the loop.
|
||||||
*/
|
*/
|
||||||
@ -1090,7 +1094,7 @@ png_compress_IDAT(png_structrp png_ptr, png_const_bytep input,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The order of these checks doesn't matter much; it just effect which
|
/* The order of these checks doesn't matter much; it just affects which
|
||||||
* possible error might be detected if multiple things go wrong at once.
|
* possible error might be detected if multiple things go wrong at once.
|
||||||
*/
|
*/
|
||||||
if (ret == Z_OK) /* most likely return code! */
|
if (ret == Z_OK) /* most likely return code! */
|
||||||
@ -1621,14 +1625,13 @@ png_write_tEXt(png_structrp png_ptr, png_const_charp key, png_const_charp text,
|
|||||||
/* Write a compressed text chunk */
|
/* Write a compressed text chunk */
|
||||||
void /* PRIVATE */
|
void /* PRIVATE */
|
||||||
png_write_zTXt(png_structrp png_ptr, png_const_charp key, png_const_charp text,
|
png_write_zTXt(png_structrp png_ptr, png_const_charp key, png_const_charp text,
|
||||||
png_size_t text_len, int compression)
|
int compression)
|
||||||
{
|
{
|
||||||
png_uint_32 key_len;
|
png_uint_32 key_len;
|
||||||
png_byte new_key[81];
|
png_byte new_key[81];
|
||||||
compression_state comp;
|
compression_state comp;
|
||||||
|
|
||||||
png_debug(1, "in png_write_zTXt");
|
png_debug(1, "in png_write_zTXt");
|
||||||
PNG_UNUSED(text_len) /* Always use strlen */
|
|
||||||
|
|
||||||
if (compression == PNG_TEXT_COMPRESSION_NONE)
|
if (compression == PNG_TEXT_COMPRESSION_NONE)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
VisualStudio instructions
|
VisualStudio instructions
|
||||||
|
|
||||||
libpng version 1.6.13 - August 21, 2014
|
libpng version 1.6.14 - October 23, 2014
|
||||||
|
|
||||||
Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* zlib.props - location of zlib source
|
* zlib.props - location of zlib source
|
||||||
*
|
*
|
||||||
* libpng version 1.6.13 - August 21, 2014
|
* libpng version 1.6.14 - October 23, 2014
|
||||||
*
|
*
|
||||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||||
*
|
*
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
Makefiles for libpng version 1.6.13 - August 21, 2014
|
Makefiles for libpng version 1.6.14 - October 23, 2014
|
||||||
|
|
||||||
pnglibconf.h.prebuilt => Stores configuration settings
|
pnglibconf.h.prebuilt => Stores configuration settings
|
||||||
makefile.linux => Linux/ELF makefile
|
makefile.linux => Linux/ELF makefile
|
||||||
(gcc, creates libpng16.so.16.1.6.13)
|
(gcc, creates libpng16.so.16.1.6.14)
|
||||||
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
||||||
makefile.knr => Archaic UNIX Makefile that converts files with
|
makefile.knr => Archaic UNIX Makefile that converts files with
|
||||||
ansi2knr (Requires ansi2knr.c from
|
ansi2knr (Requires ansi2knr.c from
|
||||||
@ -33,12 +33,12 @@ pnglibconf.h.prebuilt => Stores configuration settings
|
|||||||
makefile.os2 => OS/2 Makefile (gcc and emx, requires libpng.def)
|
makefile.os2 => OS/2 Makefile (gcc and emx, requires libpng.def)
|
||||||
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
||||||
makefile.sggcc => Silicon Graphics (gcc,
|
makefile.sggcc => Silicon Graphics (gcc,
|
||||||
creates libpng16.so.16.1.6.13)
|
creates libpng16.so.16.1.6.14)
|
||||||
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
|
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
|
||||||
makefile.solaris => Solaris 2.X makefile (gcc,
|
makefile.solaris => Solaris 2.X makefile (gcc,
|
||||||
creates libpng16.so.16.1.6.13)
|
creates libpng16.so.16.1.6.14)
|
||||||
makefile.so9 => Solaris 9 makefile (gcc,
|
makefile.so9 => Solaris 9 makefile (gcc,
|
||||||
creates libpng16.so.16.1.6.13)
|
creates libpng16.so.16.1.6.14)
|
||||||
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
||||||
makefile.sunos => Sun makefile
|
makefile.sunos => Sun makefile
|
||||||
makefile.32sunu => Sun Ultra 32-bit makefile
|
makefile.32sunu => Sun Ultra 32-bit makefile
|
||||||
|
|||||||
@ -21,7 +21,7 @@ PNG_DFN "OS2 DESCRIPTION "PNG image compression library""
|
|||||||
PNG_DFN "OS2 CODE PRELOAD MOVEABLE DISCARDABLE"
|
PNG_DFN "OS2 CODE PRELOAD MOVEABLE DISCARDABLE"
|
||||||
PNG_DFN ""
|
PNG_DFN ""
|
||||||
PNG_DFN "EXPORTS"
|
PNG_DFN "EXPORTS"
|
||||||
PNG_DFN ";Version 1.6.13"
|
PNG_DFN ";Version 1.6.14"
|
||||||
|
|
||||||
#define PNG_EXPORTA(ordinal, type, name, args, attributes)\
|
#define PNG_EXPORTA(ordinal, type, name, args, attributes)\
|
||||||
PNG_DFN "@" SYMBOL_PREFIX "@@" name "@"
|
PNG_DFN "@" SYMBOL_PREFIX "@@" name "@"
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
# Modeled after libxml-config.
|
# Modeled after libxml-config.
|
||||||
|
|
||||||
version=1.6.13
|
version=1.6.14
|
||||||
prefix=""
|
prefix=""
|
||||||
libdir=""
|
libdir=""
|
||||||
libs=""
|
libs=""
|
||||||
|
|||||||
@ -5,6 +5,6 @@ includedir=@includedir@/libpng16
|
|||||||
|
|
||||||
Name: libpng
|
Name: libpng
|
||||||
Description: Loads and saves PNG files
|
Description: Loads and saves PNG files
|
||||||
Version: 1.6.13
|
Version: 1.6.14
|
||||||
Libs: -L${libdir} -lpng16
|
Libs: -L${libdir} -lpng16
|
||||||
Cflags: -I${includedir}
|
Cflags: -I${includedir}
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
VERMAJ = 1
|
VERMAJ = 1
|
||||||
VERMIN = 6
|
VERMIN = 6
|
||||||
VERMIC = 13
|
VERMIC = 14
|
||||||
VER = $(VERMAJ).$(VERMIN).$(VERMIC)
|
VER = $(VERMAJ).$(VERMIN).$(VERMIC)
|
||||||
NAME = libpng
|
NAME = libpng
|
||||||
PACKAGE = $(NAME)-$(VER)
|
PACKAGE = $(NAME)-$(VER)
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
# Library name:
|
# Library name:
|
||||||
LIBNAME = libpng16
|
LIBNAME = libpng16
|
||||||
PNGMAJ = 16
|
PNGMAJ = 16
|
||||||
RELEASE = 13
|
RELEASE = 14
|
||||||
|
|
||||||
# Shared library names:
|
# Shared library names:
|
||||||
LIBSO=$(LIBNAME).so
|
LIBSO=$(LIBNAME).so
|
||||||
|
|||||||
@ -18,7 +18,7 @@ exec_prefix=$(prefix)
|
|||||||
# Library name:
|
# Library name:
|
||||||
LIBNAME = libpng16
|
LIBNAME = libpng16
|
||||||
PNGMAJ = 16
|
PNGMAJ = 16
|
||||||
RELEASE = 13
|
RELEASE = 14
|
||||||
|
|
||||||
# Shared library names:
|
# Shared library names:
|
||||||
LIBSO=$(LIBNAME).dll
|
LIBSO=$(LIBNAME).dll
|
||||||
|
|||||||
@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include/libpng16
|
|||||||
|
|
||||||
LIB= png16
|
LIB= png16
|
||||||
SHLIB_MAJOR= 0
|
SHLIB_MAJOR= 0
|
||||||
SHLIB_MINOR= 1.6.13
|
SHLIB_MINOR= 1.6.14
|
||||||
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
||||||
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
||||||
pngwtran.c pngmem.c pngerror.c pngpread.c
|
pngwtran.c pngmem.c pngerror.c pngpread.c
|
||||||
|
|||||||
@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include
|
|||||||
|
|
||||||
LIB= png
|
LIB= png
|
||||||
SHLIB_MAJOR= 16
|
SHLIB_MAJOR= 16
|
||||||
SHLIB_MINOR= 1.6.13
|
SHLIB_MINOR= 1.6.14
|
||||||
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
||||||
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
||||||
pngwtran.c pngmem.c pngerror.c pngpread.c
|
pngwtran.c pngmem.c pngerror.c pngpread.c
|
||||||
|
|||||||
@ -11,7 +11,7 @@ LIBDIR= ${PREFIX}/lib
|
|||||||
MANDIR= ${PREFIX}/man/cat
|
MANDIR= ${PREFIX}/man/cat
|
||||||
|
|
||||||
SHLIB_MAJOR= 16
|
SHLIB_MAJOR= 16
|
||||||
SHLIB_MINOR= 1.6.13
|
SHLIB_MINOR= 1.6.14
|
||||||
|
|
||||||
LIB= png
|
LIB= png
|
||||||
SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \
|
SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
#!/bin/awk -f
|
#!/bin/awk -f
|
||||||
# scripts/options.awk - library build configuration control
|
# scripts/options.awk - library build configuration control
|
||||||
#
|
#
|
||||||
# last changed in libpng version 1.5.7 - December 15, 2011
|
# last changed in libpng version 1.6.11 - June 5, 2014
|
||||||
#
|
#
|
||||||
# Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
# Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
||||||
#
|
#
|
||||||
# This code is released under the libpng license.
|
# This code is released under the libpng license.
|
||||||
# For conditions of distribution and use, see the disclaimer
|
# For conditions of distribution and use, see the disclaimer
|
||||||
|
|||||||
@ -8,7 +8,7 @@ com pnglibconf.h - library build configuration
|
|||||||
com
|
com
|
||||||
version
|
version
|
||||||
com
|
com
|
||||||
com Copyright (c) 1998-2012 Glenn Randers-Pehrson
|
com Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
||||||
com
|
com
|
||||||
com This code is released under the libpng license.
|
com This code is released under the libpng license.
|
||||||
com For conditions of distribution and use, see the disclaimer
|
com For conditions of distribution and use, see the disclaimer
|
||||||
@ -114,6 +114,13 @@ file pnglibconf.h scripts/pnglibconf.dfa PNGLCONF_H
|
|||||||
|
|
||||||
logunsupported = 1
|
logunsupported = 1
|
||||||
|
|
||||||
|
# The following allows the output from configure to modify the contents of
|
||||||
|
# pnglibconf.h
|
||||||
|
|
||||||
|
@#ifdef HAVE_CONFIG_H
|
||||||
|
@# include "config.h"
|
||||||
|
@#endif
|
||||||
|
|
||||||
# PNG_USER_CONFIG has to be defined on the compiler command line
|
# PNG_USER_CONFIG has to be defined on the compiler command line
|
||||||
# to cause pngusr.h to be read while constructing pnglibconf.h
|
# to cause pngusr.h to be read while constructing pnglibconf.h
|
||||||
#
|
#
|
||||||
@ -189,10 +196,6 @@ setting API_RULE default 0
|
|||||||
|
|
||||||
setting PREFIX
|
setting PREFIX
|
||||||
|
|
||||||
# Default to using the read macros
|
|
||||||
|
|
||||||
setting DEFAULT_READ_MACROS default 1
|
|
||||||
|
|
||||||
# Implementation specific control of the optimizations, enabled by those
|
# Implementation specific control of the optimizations, enabled by those
|
||||||
# hardware or software options that need it (typically when run-time choices
|
# hardware or software options that need it (typically when run-time choices
|
||||||
# must be made by the user)
|
# must be made by the user)
|
||||||
@ -227,19 +230,21 @@ option ARM_NEON_CHECK disabled requires ALIGNED_MEMORY,
|
|||||||
sets ARM_NEON_OPT 1
|
sets ARM_NEON_OPT 1
|
||||||
|
|
||||||
# These settings configure the default compression level (0-9) and 'strategy';
|
# These settings configure the default compression level (0-9) and 'strategy';
|
||||||
# strategy is as defined by the implementors of zlib, it describes the input
|
# strategy is as defined by the implementors of zlib. It describes the input
|
||||||
# data and modifies the zlib parameters in an attempt to optimize the balance
|
# data and modifies the zlib parameters in an attempt to optimize the balance
|
||||||
# between search and huffman encoding in the zlib algorithms. The defaults are
|
# between search and huffman encoding in the zlib algorithms. The defaults are
|
||||||
# the zlib.h defaults - the apparently recursive definition does not arise
|
# the zlib.h defaults - the apparently recursive definition does not arise
|
||||||
# because the name of the setting is prefixed by PNG_
|
# because the name of the setting is prefixed by PNG_
|
||||||
#
|
#
|
||||||
# The TEXT values are the defaults when writing compressed text (all forms)
|
# The TEXT values are the defaults when writing compressed text (all forms)
|
||||||
#
|
|
||||||
# Include the zlib header too, so that the defaults below are known
|
# Include the zlib header so that the defaults below are known
|
||||||
@# include <zlib.h>
|
@# include <zlib.h>
|
||||||
|
|
||||||
# The '@' here means to substitute the value when pnglibconf.h is built
|
# The '@' here means to substitute the value when pnglibconf.h is built
|
||||||
setting Z_DEFAULT_COMPRESSION default @Z_DEFAULT_COMPRESSION
|
setting Z_DEFAULT_COMPRESSION default @Z_DEFAULT_COMPRESSION
|
||||||
|
# TODO: why aren't these Z_RLE; zlib.h says that Z_RLE, specifically, is
|
||||||
|
# appropriate for PNG images, maybe it doesn't exist in all versions?
|
||||||
setting Z_DEFAULT_STRATEGY default @Z_FILTERED
|
setting Z_DEFAULT_STRATEGY default @Z_FILTERED
|
||||||
setting Z_DEFAULT_NOFILTER_STRATEGY default @Z_DEFAULT_STRATEGY
|
setting Z_DEFAULT_NOFILTER_STRATEGY default @Z_DEFAULT_STRATEGY
|
||||||
setting ZLIB_VERNUM default @ZLIB_VERNUM
|
setting ZLIB_VERNUM default @ZLIB_VERNUM
|
||||||
@ -247,6 +252,10 @@ setting ZLIB_VERNUM default @ZLIB_VERNUM
|
|||||||
setting TEXT_Z_DEFAULT_COMPRESSION default @Z_DEFAULT_COMPRESSION
|
setting TEXT_Z_DEFAULT_COMPRESSION default @Z_DEFAULT_COMPRESSION
|
||||||
setting TEXT_Z_DEFAULT_STRATEGY default @Z_DEFAULT_STRATEGY
|
setting TEXT_Z_DEFAULT_STRATEGY default @Z_DEFAULT_STRATEGY
|
||||||
|
|
||||||
|
# Default to using the read macros
|
||||||
|
|
||||||
|
setting DEFAULT_READ_MACROS default 1
|
||||||
|
|
||||||
# The alternative is to call functions to read PNG values, if
|
# The alternative is to call functions to read PNG values, if
|
||||||
# the functions are turned *off* the read macros must always
|
# the functions are turned *off* the read macros must always
|
||||||
# be enabled, so turning this off will actually force the
|
# be enabled, so turning this off will actually force the
|
||||||
@ -370,7 +379,16 @@ option SET_USER_LIMITS enables SET_CHUNK_MALLOC_LIMIT
|
|||||||
#
|
#
|
||||||
# If these settings are *not* set libpng will not limit the size of
|
# If these settings are *not* set libpng will not limit the size of
|
||||||
# images or the size of data in ancilliary chunks. This does lead to
|
# images or the size of data in ancilliary chunks. This does lead to
|
||||||
# security issues if PNG files come from untrusted sources.
|
# security issues if PNG files come from untrusted sources. Settings have the
|
||||||
|
# following interpretations:
|
||||||
|
#
|
||||||
|
# USER_WIDTH_MAX: maximum width of an image that will be read
|
||||||
|
# USER_HEIGHT_MAX: maximum height
|
||||||
|
# USER_CHUNK_MALLOC_MAX: maximum in-memory (decompressed) size of a single chunk
|
||||||
|
# USER_CHUNK_CACHE_MAX: maximum number of chunks to be cached
|
||||||
|
#
|
||||||
|
# Only chunks that are variable in number are counted towards the
|
||||||
|
# USER_CHUNK_CACHE_MAX limit
|
||||||
setting USER_WIDTH_MAX
|
setting USER_WIDTH_MAX
|
||||||
setting USER_HEIGHT_MAX
|
setting USER_HEIGHT_MAX
|
||||||
setting USER_CHUNK_CACHE_MAX
|
setting USER_CHUNK_CACHE_MAX
|
||||||
@ -714,7 +732,7 @@ chunk cHRM enables COLORSPACE
|
|||||||
chunk gAMA enables GAMMA
|
chunk gAMA enables GAMMA
|
||||||
chunk hIST
|
chunk hIST
|
||||||
chunk iCCP enables COLORSPACE, GAMMA
|
chunk iCCP enables COLORSPACE, GAMMA
|
||||||
chunk iTXt
|
chunk iTXt enables TEXT
|
||||||
chunk oFFs
|
chunk oFFs
|
||||||
chunk pCAL
|
chunk pCAL
|
||||||
chunk pHYs
|
chunk pHYs
|
||||||
@ -725,7 +743,7 @@ chunk sRGB enables COLORSPACE, GAMMA, SET_OPTION
|
|||||||
chunk tEXt requires TEXT
|
chunk tEXt requires TEXT
|
||||||
chunk tIME
|
chunk tIME
|
||||||
chunk tRNS
|
chunk tRNS
|
||||||
chunk zTXt
|
chunk zTXt enables TEXT
|
||||||
|
|
||||||
# This only affects support of the optional PLTE chunk in RGB and RGBA
|
# This only affects support of the optional PLTE chunk in RGB and RGBA
|
||||||
# images. Notice that READ_ANCILLARY_CHUNKS therefore disables part
|
# images. Notice that READ_ANCILLARY_CHUNKS therefore disables part
|
||||||
@ -809,9 +827,9 @@ option SAVE_INT_32 disabled
|
|||||||
option WRITE_OPTIMIZE_CMF requires WRITE
|
option WRITE_OPTIMIZE_CMF requires WRITE
|
||||||
|
|
||||||
option READ_COMPRESSED_TEXT disabled
|
option READ_COMPRESSED_TEXT disabled
|
||||||
|
option READ_iCCP enables READ_COMPRESSED_TEXT
|
||||||
option READ_iTXt enables READ_COMPRESSED_TEXT
|
option READ_iTXt enables READ_COMPRESSED_TEXT
|
||||||
option READ_zTXt enables READ_COMPRESSED_TEXT
|
option READ_zTXt enables READ_COMPRESSED_TEXT
|
||||||
option READ_COMPRESSED_TEXT enables READ_TEXT
|
|
||||||
|
|
||||||
option WRITE_oFFs enables SAVE_INT_32
|
option WRITE_oFFs enables SAVE_INT_32
|
||||||
option WRITE_pCAL enables SAVE_INT_32
|
option WRITE_pCAL enables SAVE_INT_32
|
||||||
@ -821,7 +839,6 @@ option WRITE_COMPRESSED_TEXT disabled
|
|||||||
option WRITE_iCCP enables WRITE_COMPRESSED_TEXT
|
option WRITE_iCCP enables WRITE_COMPRESSED_TEXT
|
||||||
option WRITE_iTXt enables WRITE_COMPRESSED_TEXT
|
option WRITE_iTXt enables WRITE_COMPRESSED_TEXT
|
||||||
option WRITE_zTXt enables WRITE_COMPRESSED_TEXT
|
option WRITE_zTXt enables WRITE_COMPRESSED_TEXT
|
||||||
option WRITE_COMPRESSED_TEXT enables WRITE_TEXT
|
|
||||||
|
|
||||||
# Turn this off to disable png_read_png() and png_write_png() and
|
# Turn this off to disable png_read_png() and png_write_png() and
|
||||||
# leave the row_pointers member out of the info structure.
|
# leave the row_pointers member out of the info structure.
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
/* libpng 1.6.13 STANDARD API DEFINITION */
|
/* libpng 1.6.14 STANDARD API DEFINITION */
|
||||||
|
|
||||||
/* pnglibconf.h - library build configuration */
|
/* pnglibconf.h - library build configuration */
|
||||||
|
|
||||||
/* Libpng version 1.6.13 - August 21, 2014 */
|
/* Libpng version 1.6.14 - October 23, 2014 */
|
||||||
|
|
||||||
/* Copyright (c) 1998-2014 Glenn Randers-Pehrson */
|
/* Copyright (c) 1998-2014 Glenn Randers-Pehrson */
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
;Version 1.6.13
|
;Version 1.6.14
|
||||||
;--------------------------------------------------------------
|
;--------------------------------------------------------------
|
||||||
; LIBPNG symbol list as a Win32 DEF file
|
; LIBPNG symbol list as a Win32 DEF file
|
||||||
; Contains all the symbols that can be exported from libpng
|
; Contains all the symbols that can be exported from libpng
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user