mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
Compare commits
38 Commits
v1.4.17bet
...
v1.4.20rc0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
007ee4eee9 | ||
|
|
55a3414ba2 | ||
|
|
a207fcab31 | ||
|
|
7d9017e7c0 | ||
|
|
8a1b9409b6 | ||
|
|
2bc6b71e16 | ||
|
|
9eb7463c75 | ||
|
|
a86bef279c | ||
|
|
a69e82ed16 | ||
|
|
e96c299bf4 | ||
|
|
6e7474c7eb | ||
|
|
4c13318d38 | ||
|
|
38a9ec94cb | ||
|
|
83283ff752 | ||
|
|
9d757479d1 | ||
|
|
8c12b3c2cc | ||
|
|
7fe3416520 | ||
|
|
62b6843b46 | ||
|
|
3b711ccc4f | ||
|
|
dabe6c2a27 | ||
|
|
1a45414d86 | ||
|
|
89cf81e3eb | ||
|
|
b0c1d88cee | ||
|
|
5b948c3e11 | ||
|
|
e9fa8b4364 | ||
|
|
877590539c | ||
|
|
de3ee49b87 | ||
|
|
affbce36f9 | ||
|
|
56def65afe | ||
|
|
f1fb90f1aa | ||
|
|
5d1f9565ed | ||
|
|
e1b2bb2487 | ||
|
|
8733da6340 | ||
|
|
ffbef435e2 | ||
|
|
fd97f3e31e | ||
|
|
82c5abc170 | ||
|
|
a248f1ba62 | ||
|
|
ecf10cb8b7 |
51
ANNOUNCE
51
ANNOUNCE
@@ -1,5 +1,5 @@
|
||||
|
||||
Libpng 1.4.17beta03 - October 23, 2015
|
||||
Libpng 1.4.20rc01 - December 27, 2016
|
||||
|
||||
This is not intended to be a public release. It will be replaced
|
||||
within a few weeks by a public version or by another test version.
|
||||
@@ -9,52 +9,27 @@ Files available for download:
|
||||
Source files with LF line endings (for Unix/Linux) and with a
|
||||
"configure" script
|
||||
|
||||
1.4.17beta03.tar.xz (LZMA-compressed, recommended)
|
||||
1.4.17beta03.tar.gz
|
||||
1.4.17beta03.tar.bz2
|
||||
1.4.20rc01.tar.xz (LZMA-compressed, recommended)
|
||||
1.4.20rc01.tar.gz
|
||||
|
||||
Source files with CRLF line endings (for Windows), without the
|
||||
"configure" script
|
||||
|
||||
lp1417b03.7z (LZMA-compressed, recommended)
|
||||
lp1417b03.zip
|
||||
lp1420r01.7z (LZMA-compressed, recommended)
|
||||
lp1420r01.zip
|
||||
|
||||
Other information:
|
||||
|
||||
1.4.17beta03-README.txt
|
||||
1.4.17beta03-LICENSE.txt
|
||||
libpng-1.4.17beta03-*.asc (armored detached GPG signatures)
|
||||
1.4.20rc01-README.txt
|
||||
1.4.20rc01-LICENSE.txt
|
||||
libpng-1.4.20rc01-*.asc (armored detached GPG signatures)
|
||||
|
||||
Changes since the last public release (1.4.16):
|
||||
Changes since the last public release (1.4.19):
|
||||
|
||||
version 1.4.17beta01 [August 19, 2015]
|
||||
Fix typecast in a png_debug2() statement in png_set_text_2() to
|
||||
avoid a compiler warning in PNG_DEBUG builds.
|
||||
Avoid Coverity issues 80855, 80856, and 80857 (PRINTF_ARG_MISMATCH)
|
||||
in pngtest.c PNG_DEBUG builds.
|
||||
Avoid Coverity issue 80858 (REVERSE NULL) in pngtest.c PNG_DEBUG builds.
|
||||
Removed WRITE_WEIGHTED_FILTERED code.
|
||||
Added -DZ_SOLO to contrib/pngminim/*/makefile to work with zlib-1.2.7+
|
||||
Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
|
||||
because usleep() is deprecated (port from libpng16).
|
||||
Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
|
||||
Fixed uninitialized variable in contrib/gregbook/rpng2-x.c
|
||||
Fixed some bad links in the man page.
|
||||
Safely convert num_bytes to a png_byte in png_set_sig_bytes() (Robert
|
||||
Seacord).
|
||||
Fixed the recently reported 1's complement security issue by replacing
|
||||
the value that is illegal in the PNG spec, in both signed and unsigned
|
||||
values, with 0. Illegal unsigned values (anything greater than or equal
|
||||
to 0x80000000) can still pass through, but since these are not illegal
|
||||
in ANSI-C (unlike 0x80000000 in the signed case) the checking that
|
||||
occurs later can catch them (John Bowler).
|
||||
|
||||
version 1.4.17beta02 [October 15, 2015]
|
||||
Fixed png_save_int_32 when int is not 2's complement (John Bowler).
|
||||
Added sPLT support to pngtest.c
|
||||
|
||||
version 1.4.17beta03 [October 23, 2015]
|
||||
Added a safety check in png_set_tIME() (Bug report from Qixue Xiao).
|
||||
version 1.4.20rc01 [December 27, 2016]
|
||||
Fix typos in libpng.3 synopses (Eric S. Raymond).
|
||||
Fixed undefined behavior in png_push_save_buffer(). Do not call
|
||||
memcpy() with a null source, even if count is zero (Leon Scroggins III).
|
||||
|
||||
Send comments/corrections/commendations to glennrp at users.sourceforge.net
|
||||
or to png-mng-implement at lists.sf.net (subscription required; visit
|
||||
|
||||
57
CHANGES
57
CHANGES
@@ -2916,7 +2916,8 @@ version 1.4.13 [February 6, 2014]
|
||||
No changes.
|
||||
|
||||
version 1.4.14beta01 [November 6, 2014]
|
||||
Avoid out-of-bounds memory access in png_user_version_check().
|
||||
Fixed an out-of-range read in png_version_check() (Bug report from
|
||||
Qixue Xiao, CVE-2015-8540).
|
||||
Simplified and future-proofed png_user_version_check().
|
||||
|
||||
version 1.4.14rc01 [November 13, 2014]
|
||||
@@ -2984,7 +2985,59 @@ version 1.4.17beta02 [October 15, 2015]
|
||||
Added sPLT support to pngtest.c
|
||||
|
||||
version 1.4.17beta03 [October 23, 2015]
|
||||
Added a safety check in png_set_tIME() (Bug report from Qixue Xiao).
|
||||
Added a safety check in png_set_tIME() (Fixes CVE-2015-7981, bug report
|
||||
from Qixue Xiao).
|
||||
|
||||
version 1.4.17rc01 [October 28, 2015]
|
||||
No changes.
|
||||
|
||||
version 1.4.17rc02 [October 31, 2015]
|
||||
Prevent writing over-length PLTE chunk (Cosmin Truta).
|
||||
Silently truncate over-length PLTE chunk while reading.
|
||||
|
||||
version 1.4.17rc03 [November 3, 2015]
|
||||
Clarified COPYRIGHT information to state explicitly that versions
|
||||
are derived from previous versions.
|
||||
Removed much of the long list of previous versions from png.h and
|
||||
libpng.3.
|
||||
|
||||
version 1.4.17rc04 [November 5, 2015]
|
||||
Fixed new bug with CRC error after reading an over-length palette
|
||||
(bug report by Cosmin Truta).
|
||||
|
||||
version 1.4.17 [November 12, 2015]
|
||||
Cleaned up coding style in png_handle_PLTE().
|
||||
|
||||
version 1.4.18beta01 [November 20, 2015]
|
||||
Avoid potential pointer overflow in png_handle_iTXt(), png_handle_zTXt(),
|
||||
png_handle_sPLT(), and png_handle_pCAL() (Bug report by John Regehr).
|
||||
|
||||
version 1.4.18beta02 [November 23, 2015]
|
||||
Fixed incorrect implementation of png_set_PLTE() that uses png_ptr
|
||||
not info_ptr, that left png_set_PLTE() open to the CVE-2015-8126
|
||||
vulnerability. Fixes CVE-2015-8472.
|
||||
|
||||
version 1.4.18rc01 [November 26, 2015]
|
||||
Discontinued distributing tar.bz2 archives.
|
||||
|
||||
version 1.4.18 [December 3, 2015]
|
||||
Discontinued distributing libpng-oldversion-newversion-diff.txt
|
||||
|
||||
version 1.4.19beta01 [December 11, 2015]
|
||||
Fixed an out-of-range read in png_check_keyword() (Bug report from
|
||||
Qixue Xiao, CVE-2015-8540).
|
||||
|
||||
version 1.4.19rc01 [December 14, 2015]
|
||||
Corrected copyright dates in source files.
|
||||
Moved png_check_keyword() from pngwutil.c to pngset.c
|
||||
|
||||
version 1.4.19 [December 17, 2015]
|
||||
No changes.
|
||||
|
||||
version 1.4.20rc01 [December 27, 2016]
|
||||
Fix typos in libpng.3 synopses (Eric S. Raymond).
|
||||
Fixed undefined behavior in png_push_save_buffer(). Do not call
|
||||
memcpy() with a null source, even if count is zero (Leon Scroggins III).
|
||||
|
||||
Send comments/corrections/commendations to glennrp at users.sourceforge.net
|
||||
or to png-mng-implement at lists.sf.net (subscription required; visit
|
||||
|
||||
@@ -33,7 +33,7 @@ enable_testing()
|
||||
|
||||
set(PNGLIB_MAJOR 1)
|
||||
set(PNGLIB_MINOR 4)
|
||||
set(PNGLIB_RELEASE 17)
|
||||
set(PNGLIB_RELEASE 20)
|
||||
set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR})
|
||||
set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE})
|
||||
|
||||
@@ -255,7 +255,7 @@ install(CODE ${PNG_CONFIG_INSTALL_CODE})
|
||||
# SET UP LINKS
|
||||
if(PNG_SHARED)
|
||||
set_target_properties(${PNG_LIB_NAME} PROPERTIES
|
||||
# VERSION 14.${PNGLIB_RELEASE}.1.4.17beta03
|
||||
# VERSION 14.${PNGLIB_RELEASE}.1.4.20rc01
|
||||
VERSION 14.${PNGLIB_RELEASE}.0
|
||||
SOVERSION 14
|
||||
CLEAN_DIRECT_OUTPUT 1)
|
||||
|
||||
4
INSTALL
4
INSTALL
@@ -1,5 +1,5 @@
|
||||
|
||||
Installing libpng version 1.4.17beta03 - October 23, 2015
|
||||
Installing libpng version 1.4.20rc01 - December 27, 2016
|
||||
|
||||
On Unix/Linux and similar systems, you can simply type
|
||||
|
||||
@@ -46,7 +46,7 @@ to have access to the zlib.h and zconf.h include files that
|
||||
correspond to the version of zlib that's installed.
|
||||
|
||||
You can rename the directories that you downloaded (they
|
||||
might be called "libpng-1.4.17beta03" or "libpng14" and "zlib-1.2.3"
|
||||
might be called "libpng-1.4.20rc01" or "libpng14" and "zlib-1.2.3"
|
||||
or "zlib123") so that you have directories called "zlib" and "libpng".
|
||||
|
||||
Your directory structure should look like this:
|
||||
|
||||
27
LICENSE
27
LICENSE
@@ -10,10 +10,11 @@ this sentence.
|
||||
|
||||
This code is released under the libpng license.
|
||||
|
||||
libpng versions 1.0.7, July 1, 2000, through 1.4.17beta03, October 23, 2015, are
|
||||
Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are
|
||||
distributed according to the same disclaimer and license as libpng-1.0.6
|
||||
with the following individuals added to the list of Contributing Authors:
|
||||
libpng versions 1.0.7, July 1, 2000, through 1.4.20rc01, December 27, 2016, are
|
||||
Copyright (c) 2000-2002, 2004, 2006-2016 Glenn Randers-Pehrson, are
|
||||
derived from libpng-1.0.6, and are distributed according to the same
|
||||
disclaimer and license as libpng-1.0.6 with the following individuals
|
||||
added to the list of Contributing Authors:
|
||||
|
||||
Simon-Pierre Cadieux
|
||||
Eric S. Raymond
|
||||
@@ -30,18 +31,20 @@ and with the following additions to the disclaimer:
|
||||
the user.
|
||||
|
||||
libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
|
||||
Copyright (c) 1998-2000 Glenn Randers-Pehrson, and are distributed according
|
||||
to the same disclaimer and license as libpng-0.96, with the following
|
||||
individuals added to the list of Contributing Authors:
|
||||
Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
|
||||
libpng-0.96, and are distributed according to the same disclaimer and
|
||||
license as libpng-0.96, with the following individuals added to the list
|
||||
of Contributing Authors:
|
||||
|
||||
Tom Lane
|
||||
Glenn Randers-Pehrson
|
||||
Willem van Schaik
|
||||
|
||||
libpng versions 0.89, June 1996, through 0.96, May 1997, are
|
||||
Copyright (c) 1996-1997 Andreas Dilger, and are
|
||||
distributed according to the same disclaimer and license as libpng-0.88,
|
||||
with the following individuals added to the list of Contributing Authors:
|
||||
Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
|
||||
and are distributed according to the same disclaimer and license as
|
||||
libpng-0.88, with the following individuals added to the list of
|
||||
Contributing Authors:
|
||||
|
||||
John Bowler
|
||||
Kevin Bracey
|
||||
@@ -88,6 +91,8 @@ supporting the PNG file format in commercial products. If you use this
|
||||
source code in a product, acknowledgment is not required but would be
|
||||
appreciated.
|
||||
|
||||
END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE.
|
||||
|
||||
A "png_get_copyright" function is available, for convenient use in "about"
|
||||
boxes and the like:
|
||||
|
||||
@@ -102,4 +107,4 @@ the additional disclaimers inserted at version 1.0.7.
|
||||
|
||||
Glenn Randers-Pehrson
|
||||
glennrp at users.sourceforge.net
|
||||
October 23, 2015
|
||||
December 27, 2016
|
||||
|
||||
@@ -79,7 +79,7 @@ EXTRA_DIST= \
|
||||
${srcdir}/contrib/pngsuite/* \
|
||||
${srcdir}/contrib/visupng/* \
|
||||
$(TESTS) \
|
||||
example.c libpng-1.4.17beta03.txt
|
||||
example.c libpng-1.4.20rc01.txt
|
||||
|
||||
CLEANFILES= pngout.png libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config libpng.vers \
|
||||
libpng.sym
|
||||
|
||||
@@ -628,7 +628,7 @@ EXTRA_DIST = \
|
||||
${srcdir}/contrib/pngsuite/* \
|
||||
${srcdir}/contrib/visupng/* \
|
||||
$(TESTS) \
|
||||
example.c libpng-1.4.17beta03.txt
|
||||
example.c libpng-1.4.20rc01.txt
|
||||
|
||||
CLEANFILES = pngout.png libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config libpng.vers \
|
||||
libpng.sym
|
||||
|
||||
18
README
18
README
@@ -1,11 +1,11 @@
|
||||
README for libpng version 1.4.17beta03 - October 23, 2015 (shared library 14.0)
|
||||
README for libpng version 1.4.20rc01 - December 27, 2016 (shared library 14.0)
|
||||
See the note about version numbers near the top of png.h
|
||||
|
||||
See INSTALL for instructions on how to install libpng.
|
||||
|
||||
Libpng comes in several distribution formats. Get libpng-*.tar.gz,
|
||||
libpng-*.tar.xz or libpng-*.tar.bz2 if you want UNIX-style line endings
|
||||
in the text files, or lpng*.zip if you want DOS-style line endings.
|
||||
Libpng comes in several distribution formats. Get libpng-*.tar.gz or
|
||||
libpng-*.tar.xz if you want UNIX-style line endings in the text files,
|
||||
or lpng*.zip if you want DOS-style line endings.
|
||||
|
||||
Version 0.89 was the first official release of libpng. Don't let the
|
||||
fact that it's the first release fool you. The libpng library has been in
|
||||
@@ -187,9 +187,9 @@ Files in this distribution:
|
||||
makefile.std => Generic UNIX makefile (cc, creates static
|
||||
libpng.a)
|
||||
makefile.elf => Linux/ELF makefile symbol versioning,
|
||||
(gcc, creates libpng14.so.14.1.4.17beta03)
|
||||
(gcc, creates libpng14.so.14.1.4.20rc01)
|
||||
makefile.linux => Linux/ELF makefile
|
||||
(gcc, creates libpng14.so.14.1.4.17beta03)
|
||||
(gcc, creates libpng14.so.14.1.4.20rc01)
|
||||
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
||||
makefile.knr => Archaic UNIX Makefile that converts files with
|
||||
ansi2knr (Requires ansi2knr.c from
|
||||
@@ -211,12 +211,12 @@ Files in this distribution:
|
||||
makefile.openbsd => OpenBSD makefile
|
||||
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
|
||||
makefile.sggcc => Silicon Graphics
|
||||
(gcc, creates libpng14.so.14.1.4.17beta03)
|
||||
(gcc, creates libpng14.so.14.1.4.20rc01)
|
||||
makefile.sunos => Sun makefile
|
||||
makefile.solaris => Solaris 2.X makefile
|
||||
(gcc, creates libpng14.so.14.1.4.17beta03)
|
||||
(gcc, creates libpng14.so.14.1.4.20rc01)
|
||||
makefile.so9 => Solaris 9 makefile
|
||||
(gcc, creates libpng14.so.14.1.4.17beta03)
|
||||
(gcc, creates libpng14.so.14.1.4.20rc01)
|
||||
makefile.32sunu => Sun Ultra 32-bit makefile
|
||||
makefile.64sunu => Sun Ultra 64-bit makefile
|
||||
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
||||
|
||||
24
configure
vendored
24
configure
vendored
@@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for libpng 1.4.17beta03.
|
||||
# Generated by GNU Autoconf 2.69 for libpng 1.4.20rc01.
|
||||
#
|
||||
# Report bugs to <png-mng-implement@lists.sourceforge.net>.
|
||||
#
|
||||
@@ -590,8 +590,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='libpng'
|
||||
PACKAGE_TARNAME='libpng'
|
||||
PACKAGE_VERSION='1.4.17beta03'
|
||||
PACKAGE_STRING='libpng 1.4.17beta03'
|
||||
PACKAGE_VERSION='1.4.20rc01'
|
||||
PACKAGE_STRING='libpng 1.4.20rc01'
|
||||
PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net'
|
||||
PACKAGE_URL=''
|
||||
|
||||
@@ -1333,7 +1333,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures libpng 1.4.17beta03 to adapt to many kinds of systems.
|
||||
\`configure' configures libpng 1.4.20rc01 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@@ -1403,7 +1403,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of libpng 1.4.17beta03:";;
|
||||
short | recursive ) echo "Configuration of libpng 1.4.20rc01:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@@ -1520,7 +1520,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
libpng configure 1.4.17beta03
|
||||
libpng configure 1.4.20rc01
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@@ -1943,7 +1943,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by libpng $as_me 1.4.17beta03, which was
|
||||
It was created by libpng $as_me 1.4.20rc01, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@@ -2806,7 +2806,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='libpng'
|
||||
VERSION='1.4.17beta03'
|
||||
VERSION='1.4.20rc01'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@@ -2923,10 +2923,10 @@ fi
|
||||
|
||||
|
||||
|
||||
PNGLIB_VERSION=1.4.17beta03
|
||||
PNGLIB_VERSION=1.4.20rc01
|
||||
PNGLIB_MAJOR=1
|
||||
PNGLIB_MINOR=4
|
||||
PNGLIB_RELEASE=17
|
||||
PNGLIB_RELEASE=20
|
||||
|
||||
|
||||
|
||||
@@ -13615,7 +13615,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by libpng $as_me 1.4.17beta03, which was
|
||||
This file was extended by libpng $as_me 1.4.20rc01, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@@ -13681,7 +13681,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
libpng config.status 1.4.17beta03
|
||||
libpng config.status 1.4.20rc01
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
||||
@@ -16,17 +16,17 @@ dnl should not be necessary to regenerate configure if the time
|
||||
dnl stamps are correct
|
||||
AC_PREREQ(2.59)
|
||||
|
||||
AC_INIT([libpng], [1.4.17beta03], [png-mng-implement@lists.sourceforge.net])
|
||||
AC_INIT([libpng], [1.4.20rc01], [png-mng-implement@lists.sourceforge.net])
|
||||
AM_INIT_AUTOMAKE
|
||||
dnl stop configure from automagically running automake
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
dnl Version number stuff here:
|
||||
|
||||
PNGLIB_VERSION=1.4.17beta03
|
||||
PNGLIB_VERSION=1.4.20rc01
|
||||
PNGLIB_MAJOR=1
|
||||
PNGLIB_MINOR=4
|
||||
PNGLIB_RELEASE=17
|
||||
PNGLIB_RELEASE=20
|
||||
|
||||
dnl End of version number stuff
|
||||
|
||||
|
||||
@@ -252,8 +252,8 @@ int main(int argc, char **argv)
|
||||
else {
|
||||
bgstr = *argv;
|
||||
if (strlen(bgstr) != 7 || bgstr[0] != '#')
|
||||
++error;
|
||||
else
|
||||
++error;
|
||||
else
|
||||
have_bg = TRUE;
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -496,12 +496,12 @@ int main(int argc, char **argv)
|
||||
"\t\t transparent images; overrides -bgcolor\n",
|
||||
num_bgpat-1);
|
||||
#ifdef FEATURE_LOOP
|
||||
fprintf(stderr,
|
||||
fprintf(stderr,
|
||||
" -loop\tloops through background images after initial display\n"
|
||||
"\t\t is complete (depends on -bgpat)\n"
|
||||
" sec \tseconds to display each background image (default = 2)\n");
|
||||
#endif
|
||||
fprintf(stderr,
|
||||
fprintf(stderr,
|
||||
" dur \tduration in microseconds to wait after displaying each\n"
|
||||
"\t\t row (for demo purposes)\n"
|
||||
" -timing\tenables delay for every block read, to simulate modem\n"
|
||||
|
||||
@@ -403,7 +403,7 @@ BOOL png2pnm (FILE *png_file, FILE *pnm_file, FILE *alpha_file, BOOL raw, BOOL a
|
||||
if (bit_depth == 16){
|
||||
dep_16 = (long) *pix_ptr++;
|
||||
fprintf (alpha_file, "%ld ", (dep_16 << 8) + (long) *pix_ptr++);
|
||||
}
|
||||
}
|
||||
else
|
||||
fprintf (alpha_file, "%ld ", (long) *pix_ptr++);
|
||||
}
|
||||
|
||||
@@ -152,29 +152,29 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData,
|
||||
|
||||
Try
|
||||
{
|
||||
|
||||
|
||||
// initialize the png structure
|
||||
|
||||
|
||||
#ifdef PNG_STDIO_SUPPORTED
|
||||
png_init_io(png_ptr, pfFile);
|
||||
#else
|
||||
png_set_read_fn(png_ptr, (png_voidp)pfFile, png_read_data);
|
||||
#endif
|
||||
|
||||
|
||||
png_set_sig_bytes(png_ptr, 8);
|
||||
|
||||
|
||||
// read all PNG info up to image data
|
||||
|
||||
|
||||
png_read_info(png_ptr, info_ptr);
|
||||
|
||||
|
||||
// get width, height, bit-depth and color-type
|
||||
|
||||
|
||||
png_get_IHDR(png_ptr, info_ptr, piWidth, piHeight, &iBitDepth,
|
||||
&iColorType, NULL, NULL, NULL);
|
||||
|
||||
|
||||
// expand images of all color-type and bit-depth to 3x8 bit RGB images
|
||||
// let the library process things like alpha, transparency, background
|
||||
|
||||
|
||||
if (iBitDepth == 16)
|
||||
png_set_strip_16(png_ptr);
|
||||
if (iColorType == PNG_COLOR_TYPE_PALETTE)
|
||||
@@ -186,7 +186,7 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData,
|
||||
if (iColorType == PNG_COLOR_TYPE_GRAY ||
|
||||
iColorType == PNG_COLOR_TYPE_GRAY_ALPHA)
|
||||
png_set_gray_to_rgb(png_ptr);
|
||||
|
||||
|
||||
// set the background color to draw transparent and alpha images over.
|
||||
if (png_get_bKGD(png_ptr, info_ptr, &pBackground))
|
||||
{
|
||||
@@ -199,30 +199,30 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData,
|
||||
{
|
||||
pBkgColor = NULL;
|
||||
}
|
||||
|
||||
|
||||
// if required set gamma conversion
|
||||
if (png_get_gAMA(png_ptr, info_ptr, &dGamma))
|
||||
png_set_gamma(png_ptr, (double) 2.2, dGamma);
|
||||
|
||||
|
||||
// after the transformations have been registered update info_ptr data
|
||||
|
||||
|
||||
png_read_update_info(png_ptr, info_ptr);
|
||||
|
||||
|
||||
// get again width, height and the new bit-depth and color-type
|
||||
|
||||
|
||||
png_get_IHDR(png_ptr, info_ptr, piWidth, piHeight, &iBitDepth,
|
||||
&iColorType, NULL, NULL, NULL);
|
||||
|
||||
|
||||
|
||||
|
||||
// row_bytes is the width x number of channels
|
||||
|
||||
|
||||
ulRowBytes = png_get_rowbytes(png_ptr, info_ptr);
|
||||
ulChannels = png_get_channels(png_ptr, info_ptr);
|
||||
|
||||
|
||||
*piChannels = ulChannels;
|
||||
|
||||
|
||||
// now we can allocate memory to store the image
|
||||
|
||||
|
||||
if (pbImageData)
|
||||
{
|
||||
free (pbImageData);
|
||||
@@ -234,33 +234,33 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData,
|
||||
png_error(png_ptr, "Visual PNG: out of memory");
|
||||
}
|
||||
*ppbImageData = pbImageData;
|
||||
|
||||
|
||||
// and allocate memory for an array of row-pointers
|
||||
|
||||
|
||||
if ((ppbRowPointers = (png_bytepp) malloc((*piHeight)
|
||||
* sizeof(png_bytep))) == NULL)
|
||||
{
|
||||
png_error(png_ptr, "Visual PNG: out of memory");
|
||||
}
|
||||
|
||||
|
||||
// set the individual row-pointers to point at the correct offsets
|
||||
|
||||
|
||||
for (i = 0; i < (*piHeight); i++)
|
||||
ppbRowPointers[i] = pbImageData + i * ulRowBytes;
|
||||
|
||||
|
||||
// now we can go ahead and just read the whole image
|
||||
|
||||
|
||||
png_read_image(png_ptr, ppbRowPointers);
|
||||
|
||||
|
||||
// read the additional chunks in the PNG file (not really needed)
|
||||
|
||||
|
||||
png_read_end(png_ptr, NULL);
|
||||
|
||||
|
||||
// and we're done
|
||||
|
||||
|
||||
free (ppbRowPointers);
|
||||
ppbRowPointers = NULL;
|
||||
|
||||
|
||||
// yepp, done
|
||||
}
|
||||
|
||||
@@ -269,7 +269,7 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData,
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
|
||||
|
||||
*ppbImageData = pbImageData = NULL;
|
||||
|
||||
|
||||
if(ppbRowPointers)
|
||||
free (ppbRowPointers);
|
||||
|
||||
@@ -323,58 +323,58 @@ BOOL PngSaveImage (PTSTR pstrFileName, png_byte *pDiData,
|
||||
Try
|
||||
{
|
||||
// initialize the png structure
|
||||
|
||||
|
||||
#ifdef PNG_STDIO_SUPPORTED
|
||||
png_init_io(png_ptr, pfFile);
|
||||
#else
|
||||
png_set_write_fn(png_ptr, (png_voidp)pfFile, png_write_data, png_flush);
|
||||
#endif
|
||||
|
||||
|
||||
// we're going to write a very simple 3x8 bit RGB image
|
||||
|
||||
|
||||
png_set_IHDR(png_ptr, info_ptr, iWidth, iHeight, ciBitDepth,
|
||||
PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE,
|
||||
PNG_FILTER_TYPE_BASE);
|
||||
|
||||
|
||||
// write the file header information
|
||||
|
||||
|
||||
png_write_info(png_ptr, info_ptr);
|
||||
|
||||
|
||||
// swap the BGR pixels in the DiData structure to RGB
|
||||
|
||||
|
||||
png_set_bgr(png_ptr);
|
||||
|
||||
|
||||
// row_bytes is the width x number of channels
|
||||
|
||||
|
||||
ulRowBytes = iWidth * ciChannels;
|
||||
|
||||
|
||||
// we can allocate memory for an array of row-pointers
|
||||
|
||||
|
||||
if ((ppbRowPointers = (png_bytepp) malloc(iHeight * sizeof(png_bytep))) == NULL)
|
||||
Throw "Visualpng: Out of memory";
|
||||
|
||||
|
||||
// set the individual row-pointers to point at the correct offsets
|
||||
|
||||
|
||||
for (i = 0; i < iHeight; i++)
|
||||
ppbRowPointers[i] = pDiData + i * (((ulRowBytes + 3) >> 2) << 2);
|
||||
|
||||
|
||||
// write out the entire image data in one call
|
||||
|
||||
|
||||
png_write_image (png_ptr, ppbRowPointers);
|
||||
|
||||
|
||||
// write the additional chunks to the PNG file (not really needed)
|
||||
|
||||
|
||||
png_write_end(png_ptr, info_ptr);
|
||||
|
||||
|
||||
// and we're done
|
||||
|
||||
|
||||
free (ppbRowPointers);
|
||||
ppbRowPointers = NULL;
|
||||
|
||||
|
||||
// clean up after the write, and free any memory allocated
|
||||
|
||||
|
||||
png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
|
||||
|
||||
|
||||
// yepp, done
|
||||
}
|
||||
|
||||
@@ -389,9 +389,9 @@ BOOL PngSaveImage (PTSTR pstrFileName, png_byte *pDiData,
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
fclose (pfFile);
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ void PngFileInitialize (HWND hwnd) ;
|
||||
BOOL PngFileOpenDlg (HWND hwnd, PTSTR pstrFileName, PTSTR pstrTitleName) ;
|
||||
BOOL PngFileSaveDlg (HWND hwnd, PTSTR pstrFileName, PTSTR pstrTitleName) ;
|
||||
|
||||
BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData,
|
||||
BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData,
|
||||
int *piWidth, int *piHeight, int *piChannels, png_color *pBkgColor);
|
||||
BOOL PngSaveImage (PTSTR pstrFileName, png_byte *pDiData,
|
||||
int iWidth, int iHeight, png_color BkgColor);
|
||||
|
||||
@@ -302,23 +302,23 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam,
|
||||
{
|
||||
if (strcmp (szImgPathName, "") == 0)
|
||||
return 0;
|
||||
|
||||
|
||||
// load the image from file
|
||||
|
||||
|
||||
if (!LoadImageFile (hwnd, szImgPathName, &pbImage,
|
||||
&cxImgSize, &cyImgSize, &cImgChannels, &bkgColor))
|
||||
return 0;
|
||||
|
||||
|
||||
// invalidate the client area for later update
|
||||
|
||||
|
||||
InvalidateRect (hwnd, NULL, TRUE);
|
||||
|
||||
|
||||
// display the PNG into the DIBitmap
|
||||
|
||||
|
||||
DisplayImage (hwnd, &pDib, &pDiData, cxWinSize, cyWinSize,
|
||||
pbImage, cxImgSize, cyImgSize, cImgChannels, bStretched);
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
|
||||
case IDM_FILE_PREVIOUS:
|
||||
@@ -328,22 +328,22 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam,
|
||||
if (SearchPngList (pPngFileList, iPngFileCount, &iPngFileIndex,
|
||||
szImgPathName, NULL))
|
||||
{
|
||||
|
||||
|
||||
if (strcmp (szImgPathName, "") == 0)
|
||||
return 0;
|
||||
|
||||
|
||||
// load the image from file
|
||||
|
||||
|
||||
if (!LoadImageFile (hwnd, szImgPathName, &pbImage, &cxImgSize,
|
||||
&cyImgSize, &cImgChannels, &bkgColor))
|
||||
return 0;
|
||||
|
||||
|
||||
// invalidate the client area for later update
|
||||
|
||||
|
||||
InvalidateRect (hwnd, NULL, TRUE);
|
||||
|
||||
|
||||
// display the PNG into the DIBitmap
|
||||
|
||||
|
||||
DisplayImage (hwnd, &pDib, &pDiData, cxWinSize, cyWinSize,
|
||||
pbImage, cxImgSize, cyImgSize, cImgChannels, bStretched);
|
||||
}
|
||||
@@ -619,29 +619,29 @@ BOOL SearchPngList (
|
||||
if (FileCount > 0)
|
||||
{
|
||||
// get previous entry
|
||||
|
||||
|
||||
if (pstrPrevName != NULL)
|
||||
{
|
||||
if (*pFileIndex > 0)
|
||||
*pFileIndex -= 1;
|
||||
else
|
||||
*pFileIndex = FileCount - 1;
|
||||
|
||||
|
||||
strcpy (pstrPrevName, pFileList + (*pFileIndex * MAX_PATH));
|
||||
}
|
||||
|
||||
|
||||
// get next entry
|
||||
|
||||
|
||||
if (pstrNextName != NULL)
|
||||
{
|
||||
if (*pFileIndex < FileCount - 1)
|
||||
*pFileIndex += 1;
|
||||
else
|
||||
*pFileIndex = 0;
|
||||
|
||||
|
||||
strcpy (pstrNextName, pFileList + (*pFileIndex * MAX_PATH));
|
||||
}
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#define IDM_HELP_ABOUT 40008
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 113
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
libpng.txt - A description on how to use and modify libpng
|
||||
|
||||
libpng version 1.4.17beta03 - October 23, 2015
|
||||
libpng version 1.4.20rc01 - December 27, 2016
|
||||
Updated and distributed by Glenn Randers-Pehrson
|
||||
<glennrp at users.sourceforge.net>
|
||||
Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
||||
@@ -11,7 +11,7 @@ libpng.txt - A description on how to use and modify libpng
|
||||
|
||||
Based on:
|
||||
|
||||
libpng versions 0.97, January 1998, through 1.4.17beta03 - October 23, 2015
|
||||
libpng versions 0.97, January 1998, through 1.4.20rc01 - December 27, 2016
|
||||
Updated and distributed by Glenn Randers-Pehrson
|
||||
Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
||||
|
||||
@@ -907,7 +907,7 @@ things.
|
||||
As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was
|
||||
added. It expands the sample depth without changing tRNS to alpha.
|
||||
|
||||
As of libpng version 1.4.17beta03, not all possible expansions are supported.
|
||||
As of libpng version 1.4.20rc01, not all possible expansions are supported.
|
||||
|
||||
In the following table, the 01 means grayscale with depth<8, 31 means
|
||||
indexed with depth<8, other numerals represent the color type, "T" means
|
||||
@@ -1889,8 +1889,7 @@ Some of the more important parts of the png_info are:
|
||||
|
||||
If you call png_set_IHDR(), the call must appear before any of the
|
||||
other png_set_*() functions, because they might require access to some of
|
||||
the IHDR settings. The remaining png_set_*() functions can be called
|
||||
in any order.
|
||||
the IHDR settings.
|
||||
|
||||
If you wish, you can reset the compression_type, interlace_type, or
|
||||
filter_method later by calling png_set_IHDR() again; if you do this, the
|
||||
@@ -1902,6 +1901,12 @@ width, height, bit_depth, and color_type must be the same in each call.
|
||||
(array of png_color)
|
||||
num_palette - number of entries in the palette
|
||||
|
||||
If you call png_set_PLTE(), the call must appear before either of
|
||||
png_set_tRNS() or png_set_hIST() appears, because they require access
|
||||
to the palette length.
|
||||
|
||||
The remaining png_set_*() functions can be called in any order.
|
||||
|
||||
png_set_gAMA(png_ptr, info_ptr, gamma);
|
||||
gamma - the gamma the image was created
|
||||
at (PNG_INFO_gAMA)
|
||||
@@ -3144,6 +3149,11 @@ PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS.
|
||||
|
||||
We removed the trailing '.' from the warning and error messages.
|
||||
|
||||
Starting with libpng-1.4.17, attempting to set an over-length PLTE chunk
|
||||
is an error. Previously this requirement of the PNG specification was not
|
||||
enforced, and the palette was always limited to 256 entries. An over-length
|
||||
PLTE chunk found in an input PNG is silently truncated.
|
||||
|
||||
X. Detecting libpng
|
||||
|
||||
The png_get_io_ptr() function has been present since libpng-0.88, has never
|
||||
@@ -3284,13 +3294,11 @@ Other rules can be inferred by inspecting the libpng source.
|
||||
|
||||
XIII. Y2K Compliance in libpng
|
||||
|
||||
October 23, 2015
|
||||
|
||||
Since the PNG Development group is an ad-hoc body, we can't make
|
||||
an official declaration.
|
||||
|
||||
This is your unofficial assurance that libpng from version 0.71 and
|
||||
upward through 1.4.17beta03 are Y2K compliant. It is my belief that earlier
|
||||
upward through 1.4.20rc01 are Y2K compliant. It is my belief that earlier
|
||||
versions were also Y2K compliant.
|
||||
|
||||
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
||||
271
libpng.3
271
libpng.3
@@ -1,6 +1,6 @@
|
||||
.TH LIBPNG 3 "October 23, 2015"
|
||||
.TH LIBPNG 3 "December 27, 2016"
|
||||
.SH NAME
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.4.17beta03
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.4.20rc01
|
||||
.SH SYNOPSIS
|
||||
\fB
|
||||
#include <png.h>\fP
|
||||
@@ -133,7 +133,9 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.4.17beta03
|
||||
|
||||
\fBpng_uint_32 png_get_PLTE (png_const_structp \fP\fIpng_ptr\fP\fB, png_const_infop \fP\fIinfo_ptr\fP\fB, png_colorp \fP\fI*palette\fP\fB, int \fI*num_palette\fP\fB);\fP
|
||||
|
||||
\fBpng_byte png_get_rgb_to_gray_status (png_const_structp png_ptr) png_uint_32 png_get_rowbytes (png_const_structp \fP\fIpng_ptr\fP\fB, png_const_infop \fIinfo_ptr\fP\fB);\fP
|
||||
\fBpng_byte png_get_rgb_to_gray_status (png_const_structp \fIpng_ptr\fP\fB);\fP
|
||||
|
||||
\fBpng_uint_32 png_get_rowbytes (png_const_structp \fP\fIpng_ptr\fP\fB, png_const_infop \fIinfo_ptr\fP\fB);\fP
|
||||
|
||||
\fBpng_bytepp png_get_rows (png_const_structp \fP\fIpng_ptr\fP\fB, png_const_infop \fIinfo_ptr\fP\fB);\fP
|
||||
|
||||
@@ -442,7 +444,7 @@ Following is a copy of the libpng-manual.txt file that accompanies libpng.
|
||||
.SH LIBPNG.TXT
|
||||
libpng.txt - A description on how to use and modify libpng
|
||||
|
||||
libpng version 1.4.17beta03 - October 23, 2015
|
||||
libpng version 1.4.20rc01 - December 27, 2016
|
||||
Updated and distributed by Glenn Randers-Pehrson
|
||||
<glennrp at users.sourceforge.net>
|
||||
Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
||||
@@ -453,7 +455,7 @@ libpng.txt - A description on how to use and modify libpng
|
||||
|
||||
Based on:
|
||||
|
||||
libpng versions 0.97, January 1998, through 1.4.17beta03 - October 23, 2015
|
||||
libpng versions 0.97, January 1998, through 1.4.20rc01 - December 27, 2016
|
||||
Updated and distributed by Glenn Randers-Pehrson
|
||||
Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
||||
|
||||
@@ -1349,7 +1351,7 @@ things.
|
||||
As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was
|
||||
added. It expands the sample depth without changing tRNS to alpha.
|
||||
|
||||
As of libpng version 1.4.17beta03, not all possible expansions are supported.
|
||||
As of libpng version 1.4.20rc01, not all possible expansions are supported.
|
||||
|
||||
In the following table, the 01 means grayscale with depth<8, 31 means
|
||||
indexed with depth<8, other numerals represent the color type, "T" means
|
||||
@@ -2331,8 +2333,7 @@ Some of the more important parts of the png_info are:
|
||||
|
||||
If you call png_set_IHDR(), the call must appear before any of the
|
||||
other png_set_*() functions, because they might require access to some of
|
||||
the IHDR settings. The remaining png_set_*() functions can be called
|
||||
in any order.
|
||||
the IHDR settings.
|
||||
|
||||
If you wish, you can reset the compression_type, interlace_type, or
|
||||
filter_method later by calling png_set_IHDR() again; if you do this, the
|
||||
@@ -2344,6 +2345,12 @@ width, height, bit_depth, and color_type must be the same in each call.
|
||||
(array of png_color)
|
||||
num_palette - number of entries in the palette
|
||||
|
||||
If you call png_set_PLTE(), the call must appear before either of
|
||||
png_set_tRNS() or png_set_hIST() appears, because they require access
|
||||
to the palette length.
|
||||
|
||||
The remaining png_set_*() functions can be called in any order.
|
||||
|
||||
png_set_gAMA(png_ptr, info_ptr, gamma);
|
||||
gamma - the gamma the image was created
|
||||
at (PNG_INFO_gAMA)
|
||||
@@ -3586,6 +3593,11 @@ PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS.
|
||||
|
||||
We removed the trailing '.' from the warning and error messages.
|
||||
|
||||
Starting with libpng-1.4.17, attempting to set an over-length PLTE chunk
|
||||
is an error. Previously this requirement of the PNG specification was not
|
||||
enforced, and the palette was always limited to 256 entries. An over-length
|
||||
PLTE chunk found in an input PNG is silently truncated.
|
||||
|
||||
.SH X. Detecting libpng
|
||||
|
||||
The png_get_io_ptr() function has been present since libpng-0.88, has never
|
||||
@@ -3726,13 +3738,11 @@ Other rules can be inferred by inspecting the libpng source.
|
||||
|
||||
.SH XIII. Y2K Compliance in libpng
|
||||
|
||||
October 23, 2015
|
||||
|
||||
Since the PNG Development group is an ad-hoc body, we can't make
|
||||
an official declaration.
|
||||
|
||||
This is your unofficial assurance that libpng from version 0.71 and
|
||||
upward through 1.4.17beta03 are Y2K compliant. It is my belief that earlier
|
||||
upward through 1.4.20rc01 are Y2K compliant. It is my belief that earlier
|
||||
versions were also Y2K compliant.
|
||||
|
||||
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
||||
@@ -3793,167 +3803,43 @@ the first widely used release:
|
||||
source png.h png.h shared-lib
|
||||
version string int version
|
||||
------- ------ ----- ----------
|
||||
0.89c ("beta 3") 0.89 89 1.0.89
|
||||
0.90 ("beta 4") 0.90 90 0.90
|
||||
0.95 ("beta 5") 0.95 95 0.95
|
||||
0.96 ("beta 6") 0.96 96 0.96
|
||||
0.97b ("beta 7") 1.00.97 97 1.0.1
|
||||
0.97c 0.97 97 2.0.97
|
||||
0.98 0.98 98 2.0.98
|
||||
0.99 0.99 98 2.0.99
|
||||
0.99a-m 0.99 99 2.0.99
|
||||
1.00 1.00 100 2.1.0
|
||||
1.0.0 1.0.0 100 2.1.0
|
||||
1.0.0 (from here on, the 100 2.1.0
|
||||
1.0.1 png.h string is 10001 2.1.0
|
||||
1.0.1a-e identical to the 10002 from here on, the
|
||||
1.0.2 source version) 10002 shared library is 2.V
|
||||
1.0.2a-b 10003 where V is the source
|
||||
1.0.1 10001 code version except as
|
||||
1.0.1a-e 10002 2.1.0.1a-e noted.
|
||||
1.0.2 10002 2.1.0.2
|
||||
1.0.2a-b 10003 2.1.0.2a-b
|
||||
1.0.3 10003 2.1.0.3
|
||||
1.0.3a-d 10004 2.1.0.3a-d
|
||||
1.0.4 10004 2.1.0.4
|
||||
1.0.4a-f 10005 2.1.0.4a-f
|
||||
1.0.5 (+ 2 patches) 10005 2.1.0.5
|
||||
1.0.5a-d 10006 2.1.0.5a-d
|
||||
1.0.5e-r 10100 2.1.0.5e-r
|
||||
1.0.5s-v 10006 2.1.0.5s-v
|
||||
1.0.6 (+ 3 patches) 10006 2.1.0.6
|
||||
1.0.6d-g 10007 2.1.0.6d-g
|
||||
1.0.6h 10007 10.6h
|
||||
1.0.6i 10007 10.6i
|
||||
1.0.6j 10007 2.1.0.6j
|
||||
1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14
|
||||
1.0.7beta15-18 1 10007 2.1.0.7beta15-18
|
||||
1.0.7rc1-2 1 10007 2.1.0.7rc1-2
|
||||
1.0.7 1 10007 2.1.0.7
|
||||
1.0.8beta1-4 1 10008 2.1.0.8beta1-4
|
||||
1.0.8rc1 1 10008 2.1.0.8rc1
|
||||
1.0.8 1 10008 2.1.0.8
|
||||
1.0.9beta1-6 1 10009 2.1.0.9beta1-6
|
||||
1.0.9rc1 1 10009 2.1.0.9rc1
|
||||
1.0.9beta7-10 1 10009 2.1.0.9beta7-10
|
||||
1.0.9rc2 1 10009 2.1.0.9rc2
|
||||
1.0.9 1 10009 2.1.0.9
|
||||
1.0.10beta1 1 10010 2.1.0.10beta1
|
||||
1.0.10rc1 1 10010 2.1.0.10rc1
|
||||
1.0.10 1 10010 2.1.0.10
|
||||
1.0.11beta1-3 1 10011 2.1.0.11beta1-3
|
||||
1.0.11rc1 1 10011 2.1.0.11rc1
|
||||
1.0.11 1 10011 2.1.0.11
|
||||
1.0.12beta1-2 2 10012 2.1.0.12beta1-2
|
||||
1.0.12rc1 2 10012 2.1.0.12rc1
|
||||
1.0.12 2 10012 2.1.0.12
|
||||
1.1.0a-f - 10100 2.1.1.0a-f abandoned
|
||||
1.2.0beta1-2 2 10200 2.1.2.0beta1-2
|
||||
1.2.0beta3-5 3 10200 3.1.2.0beta3-5
|
||||
1.2.0rc1 3 10200 3.1.2.0rc1
|
||||
1.2.0 3 10200 3.1.2.0
|
||||
1.2.1beta-4 3 10201 3.1.2.1beta1-4
|
||||
1.2.1rc1-2 3 10201 3.1.2.1rc1-2
|
||||
1.2.1 3 10201 3.1.2.1
|
||||
1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6
|
||||
1.0.13beta1 10 10013 10.so.0.1.0.13beta1
|
||||
1.0.13rc1 10 10013 10.so.0.1.0.13rc1
|
||||
1.2.2rc1 12 10202 12.so.0.1.2.2rc1
|
||||
1.0.13 10 10013 10.so.0.1.0.13
|
||||
1.2.2 12 10202 12.so.0.1.2.2
|
||||
1.2.3rc1-6 12 10203 12.so.0.1.2.3rc1-6
|
||||
1.2.3 12 10203 12.so.0.1.2.3
|
||||
1.2.4beta1-3 13 10204 12.so.0.1.2.4beta1-3
|
||||
1.2.4rc1 13 10204 12.so.0.1.2.4rc1
|
||||
1.0.14 10 10014 10.so.0.1.0.14
|
||||
1.2.4 13 10204 12.so.0.1.2.4
|
||||
1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2
|
||||
1.0.15rc1 10 10015 10.so.0.1.0.15rc1
|
||||
1.0.15 10 10015 10.so.0.1.0.15
|
||||
1.2.5 13 10205 12.so.0.1.2.5
|
||||
1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4
|
||||
1.2.6rc1-5 13 10206 12.so.0.1.2.6rc1-5
|
||||
1.0.16 10 10016 10.so.0.1.0.16
|
||||
1.2.6 13 10206 12.so.0.1.2.6
|
||||
1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2
|
||||
1.0.17rc1 10 10017 12.so.0.1.0.17rc1
|
||||
1.2.7rc1 13 10207 12.so.0.1.2.7rc1
|
||||
1.0.17 10 10017 12.so.0.1.0.17
|
||||
1.2.7 13 10207 12.so.0.1.2.7
|
||||
1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5
|
||||
1.0.18rc1-5 10 10018 12.so.0.1.0.18rc1-5
|
||||
1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5
|
||||
1.0.18 10 10018 12.so.0.1.0.18
|
||||
1.2.8 13 10208 12.so.0.1.2.8
|
||||
1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3
|
||||
1.2.9beta4-11 13 10209 12.so.0.9[.0]
|
||||
1.2.9rc1 13 10209 12.so.0.9[.0]
|
||||
1.2.9 13 10209 12.so.0.9[.0]
|
||||
1.2.10beta1-7 13 10210 12.so.0.10[.0]
|
||||
1.2.10rc1-2 13 10210 12.so.0.10[.0]
|
||||
1.2.10 13 10210 12.so.0.10[.0]
|
||||
1.4.0beta1-6 14 10400 14.so.0.0[.0]
|
||||
1.2.11beta1-4 13 10210 12.so.0.11[.0]
|
||||
1.4.0beta7-8 14 10400 14.so.0.0[.0]
|
||||
1.2.11 13 10211 12.so.0.11[.0]
|
||||
1.2.12 13 10212 12.so.0.12[.0]
|
||||
1.4.0beta9-14 14 10400 14.so.0.0[.0]
|
||||
1.2.13 13 10213 12.so.0.13[.0]
|
||||
1.4.0beta15-36 14 10400 14.so.0.0[.0]
|
||||
1.4.0beta37-87 14 10400 14.so.14.0[.0]
|
||||
1.4.0rc01 14 10400 14.so.14.0[.0]
|
||||
1.4.0beta88-109 14 10400 14.so.14.0[.0]
|
||||
1.4.0rc02-08 14 10400 14.so.14.0[.0]
|
||||
1.4.0 14 10400 14.so.14.0[.0]
|
||||
1.4.1beta01-03 14 10401 14.so.14.1[.0]
|
||||
1.4.1rc01 14 10401 14.so.14.1[.0]
|
||||
1.4.1beta04-12 14 10401 14.so.14.1[.0]
|
||||
1.4.1rc02-04 14 10401 14.so.14.1[.0]
|
||||
1.4.1 14 10401 14.so.14.1[.0]
|
||||
1.4.2beta01 14 10402 14.so.14.2[.0]
|
||||
1.4.2rc02-06 14 10402 14.so.14.2[.0]
|
||||
1.4.2 14 10402 14.so.14.2[.0]
|
||||
1.4.3beta01-05 14 10403 14.so.14.3[.0]
|
||||
1.4.3rc01-03 14 10403 14.so.14.3[.0]
|
||||
1.4.3 14 10403 14.so.14.3[.0]
|
||||
1.4.4beta01-08 14 10404 14.so.14.4[.0]
|
||||
1.4.4rc01-05 14 10404 14.so.14.4[.0]
|
||||
1.4.4 14 10404 14.so.14.4[.0]
|
||||
1.4.5beta01-04 14 10405 14.so.14.5[.0]
|
||||
1.4.5rc01 14 10405 14.so.14.5[.0]
|
||||
1.4.5beta05-07 14 10405 14.so.14.5[.0]
|
||||
1.4.5rc02-03 14 10405 14.so.14.5[.0]
|
||||
1.4.5 14 10405 14.so.14.5[.0]
|
||||
1.4.6beta01-07 14 10406 14.so.14.6[.0]
|
||||
1.4.6rc01 14 10406 14.so.14.6[.0]
|
||||
1.4.6 14 10406 14.so.14.6[.0]
|
||||
1.4.7rc01 14 10407 14.so.14.7[.0]
|
||||
1.4.7 14 10407 14.so.14.7[.0]
|
||||
1.4.8beta01-05 14 10408 14.so.14.8[.0]
|
||||
1.4.8rc01 14 10408 14.so.14.8[.0]
|
||||
1.4.8 14 10408 14.so.14.8[.0]
|
||||
1.4.9beta01 14 10409 14.so.14.9[.0]
|
||||
1.4.9rc01 14 10409 14.so.14.9[.0]
|
||||
1.4.9 14 10409 14.so.14.9[.0]
|
||||
1.4.10beta01 14 10410 14.so.14.10[.0]
|
||||
1.4.10rc01-02 14 10410 14.so.14.10[.0]
|
||||
1.4.10 14 10410 14.so.14.10[.0]
|
||||
1.4.11rc01 14 10411 14.so.14.11[.0]
|
||||
1.4.11 14 10411 14.so.14.11[.0]
|
||||
1.4.12 14 10412 14.so.14.12[.0]
|
||||
1.4.13beta01-06 14 10413 14.so.14.13[.0]
|
||||
1.4.13rc01-02 14 10413 14.so.14.13[.0]
|
||||
1.4.13 14 10413 14.so.14.13[.0]
|
||||
1.4.14beta01 14 10414 14.so.14.14[.0]
|
||||
1.4.14rc01-02 14 10414 14.so.14.14[.0]
|
||||
1.4.14 14 10414 14.so.14.14[.0]
|
||||
1.4.15beta01-02 14 10415 14.so.14.15[.0]
|
||||
1.4.15rc01-02 14 10415 14.so.14.15[.0]
|
||||
1.4.15 14 10415 14.so.14.15[.0]
|
||||
1.4.16beta01-02 14 10416 14.so.14.16[.0]
|
||||
1.4.16rc01 14 10416 14.so.14.16[.0]
|
||||
1.4.16 14 10416 14.so.14.16[.0]
|
||||
1.4.17beta01-03 14 10417 14.so.14.17[.0]
|
||||
0.89c "1.0 beta 3" 0.89 89 1.0.89
|
||||
0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90]
|
||||
0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95]
|
||||
0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96]
|
||||
0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97]
|
||||
0.97c 0.97 97 2.0.97
|
||||
0.98 0.98 98 2.0.98
|
||||
0.99 0.99 98 2.0.99
|
||||
0.99a-m 0.99 99 2.0.99
|
||||
1.00 1.00 100 2.1.0 [100 should be 10000]
|
||||
1.0.0 (from here on, the 100 2.1.0 [100 should be 10000]
|
||||
1.0.1 png.h string is 10001 2.1.0
|
||||
1.0.1a-e identical to the 10002 from here on, the shared library
|
||||
1.0.2 source version) 10002 is 2.V where V is the source code
|
||||
1.0.2a-b 10003 version, except as noted.
|
||||
1.0.3 10003
|
||||
1.0.3a-d 10004
|
||||
1.0.4 10004
|
||||
1.0.4a-f 10005
|
||||
1.0.5 (+ 2 patches) 10005
|
||||
1.0.5a-d 10006
|
||||
1.0.5e-r 10100 (not source compatible)
|
||||
1.0.5s-v 10006 (not binary compatible)
|
||||
1.0.6 (+ 3 patches) 10006 (still binary incompatible)
|
||||
1.0.6d-f 10007 (still binary incompatible)
|
||||
1.0.6g 10007
|
||||
1.0.6h 10007 10.6h (testing xy.z so-numbering)
|
||||
1.0.6i 10007 10.6i
|
||||
1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0)
|
||||
1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible)
|
||||
1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible)
|
||||
1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible)
|
||||
1.0.7 1 10007 (still compatible)
|
||||
...
|
||||
1.0.19 10 10019 10.so.0.19[.0]
|
||||
...
|
||||
1.4.20 14 10420 14.so.14.20[.0]
|
||||
|
||||
Henceforth the source version will match the shared-library minor
|
||||
and patch numbers; the shared-library major version number will be
|
||||
@@ -3966,7 +3852,7 @@ version 1.0.6j; from then on they were given the upcoming public
|
||||
release number plus "betaNN" or "rcNN".
|
||||
|
||||
.SH "SEE ALSO"
|
||||
.BR "png"(5), " libpngpf"(3), " zlib"(3), " deflate"(5), " " and " zlib"(5)
|
||||
.IR libpngpf(3) ", " png(5)
|
||||
.LP
|
||||
.IR libpng :
|
||||
.IP
|
||||
@@ -3989,7 +3875,7 @@ ftp://ftp.info-zip.org/pub/infozip/zlib
|
||||
.I libpng
|
||||
or at
|
||||
.br
|
||||
ftp://ds.internic.net/rfc/rfc2083.txt
|
||||
ftp://ftp.rfc-editor.org:/in-notes/rfc2083.txt
|
||||
.br
|
||||
or (as a W3C Recommendation) at
|
||||
.br
|
||||
@@ -4009,7 +3895,7 @@ possible without all of you.
|
||||
|
||||
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
||||
|
||||
Libpng version 1.4.17beta03 - October 23, 2015:
|
||||
Libpng version 1.4.20rc01 - December 27, 2016:
|
||||
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
||||
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
|
||||
|
||||
@@ -4021,21 +3907,24 @@ png-mng-implement at lists.sourceforge.net (subscription required; visit
|
||||
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
||||
to subscribe).
|
||||
|
||||
.SH COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
|
||||
.SH NOTICES:
|
||||
|
||||
(This copy of the libpng notices is provided for your convenience. In case of
|
||||
This copy of the libpng notices is provided for your convenience. In case of
|
||||
any discrepancy between this copy and the notices in the file png.h that is
|
||||
included in the libpng distribution, the latter shall prevail.)
|
||||
included in the libpng distribution, the latter shall prevail.
|
||||
|
||||
COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
|
||||
|
||||
If you modify libpng you may insert additional notices immediately following
|
||||
this sentence.
|
||||
|
||||
This code is released under the libpng license.
|
||||
|
||||
libpng versions 1.0.7, July 1, 2000, through 1.4.17beta03, October 23, 2015, are
|
||||
Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are
|
||||
distributed according to the same disclaimer and license as libpng-1.0.6
|
||||
with the following individuals added to the list of Contributing Authors:
|
||||
libpng versions 1.0.7, July 1, 2000, through 1.4.20rc01, December 27, 2016, are
|
||||
Copyright (c) 2000-2002, 2004, 2006-2016 Glenn Randers-Pehrson, are
|
||||
derived from libpng-1.0.6, and are distributed according to the same
|
||||
disclaimer and license as libpng-1.0.6 with the following individuals
|
||||
added to the list of Contributing Authors:
|
||||
|
||||
Simon-Pierre Cadieux
|
||||
Eric S. Raymond
|
||||
@@ -4052,18 +3941,20 @@ and with the following additions to the disclaimer:
|
||||
the user.
|
||||
|
||||
libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
|
||||
Copyright (c) 1998-2000 Glenn Randers-Pehrson, and are distributed according
|
||||
to the same disclaimer and license as libpng-0.96, with the following
|
||||
individuals added to the list of Contributing Authors:
|
||||
Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
|
||||
libpng-0.96, and are distributed according to the same disclaimer and
|
||||
license as libpng-0.96, with the following individuals added to the list
|
||||
of Contributing Authors:
|
||||
|
||||
Tom Lane
|
||||
Glenn Randers-Pehrson
|
||||
Willem van Schaik
|
||||
|
||||
libpng versions 0.89, June 1996, through 0.96, May 1997, are
|
||||
Copyright (c) 1996-1997 Andreas Dilger, and are
|
||||
distributed according to the same disclaimer and license as libpng-0.88,
|
||||
with the following individuals added to the list of Contributing Authors:
|
||||
Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
|
||||
and are distributed according to the same disclaimer and license as
|
||||
libpng-0.88, with the following individuals added to the list of
|
||||
Contributing Authors:
|
||||
|
||||
John Bowler
|
||||
Kevin Bracey
|
||||
@@ -4110,6 +4001,8 @@ supporting the PNG file format in commercial products. If you use this
|
||||
source code in a product, acknowledgment is not required but would be
|
||||
appreciated.
|
||||
|
||||
END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE.
|
||||
|
||||
A "png_get_copyright" function is available, for convenient use in "about"
|
||||
boxes and the like:
|
||||
|
||||
@@ -4124,7 +4017,7 @@ the additional disclaimers inserted at version 1.0.7.
|
||||
|
||||
Glenn Randers-Pehrson
|
||||
glennrp at users.sourceforge.net
|
||||
October 23, 2015
|
||||
December 27, 2016
|
||||
|
||||
.\" end of man page
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.TH LIBPNGPF 3 "October 23, 2015"
|
||||
.TH LIBPNGPF 3 "December 27, 2016"
|
||||
.SH NAME
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.4.17beta03
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.4.20rc01
|
||||
(private functions)
|
||||
.SH SYNOPSIS
|
||||
\fB#include <png.h>
|
||||
|
||||
4
png.5
4
png.5
@@ -1,4 +1,4 @@
|
||||
.TH PNG 5 "October 23, 2015"
|
||||
.TH PNG 5 "December 27, 2016"
|
||||
.SH NAME
|
||||
png \- Portable Network Graphics (PNG) format
|
||||
.SH DESCRIPTION
|
||||
@@ -35,7 +35,7 @@ PNG 1.0 specification, October 1996:
|
||||
RFC 2083
|
||||
.IP
|
||||
.br
|
||||
ftp://ds.internic.net/rfc/rfc2083.txt
|
||||
http://www.ietf.org/rfc/rfc2083.txt
|
||||
.br
|
||||
or (as a W3C Recommendation) at
|
||||
.br
|
||||
|
||||
15
png.c
15
png.c
@@ -1,8 +1,8 @@
|
||||
|
||||
/* png.c - location for general purpose libpng functions
|
||||
*
|
||||
* Last changed in libpng 1.4.15 [February 12, 2015]
|
||||
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||
* Last changed in libpng 1.4.20 [%RDATE]
|
||||
* Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
@@ -17,7 +17,7 @@
|
||||
#include "pngpriv.h"
|
||||
|
||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||
typedef version_1_4_17beta03 Your_png_h_is_not_version_1_4_17beta03;
|
||||
typedef version_1_4_20rc01 Your_png_h_is_not_version_1_4_20rc01;
|
||||
|
||||
/* 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
|
||||
@@ -558,14 +558,15 @@ png_get_copyright(png_const_structp png_ptr)
|
||||
#else
|
||||
#ifdef __STDC__
|
||||
return ((png_charp) PNG_STRING_NEWLINE \
|
||||
"libpng version 1.4.17beta03 - October 23, 2015" PNG_STRING_NEWLINE \
|
||||
"Copyright (c) 1998-2015 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
|
||||
"libpng version 1.4.20rc01 - December 27, 2016" PNG_STRING_NEWLINE \
|
||||
"Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson" \
|
||||
PNG_STRING_NEWLINE \
|
||||
"Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
|
||||
"Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
|
||||
PNG_STRING_NEWLINE);
|
||||
#else
|
||||
return ((png_charp) "libpng version 1.4.17beta03 - October 23, 2015\
|
||||
Copyright (c) 1998-2015 Glenn Randers-Pehrson\
|
||||
return ((png_charp) "libpng version 1.4.20rc01 - December 27, 2016\
|
||||
Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson\
|
||||
Copyright (c) 1996-1997 Andreas Dilger\
|
||||
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.");
|
||||
#endif
|
||||
|
||||
311
png.h
311
png.h
@@ -1,9 +1,9 @@
|
||||
|
||||
/* png.h - header file for PNG reference library
|
||||
*
|
||||
* libpng version 1.4.17beta03, October 23, 2015
|
||||
* libpng version 1.4.20rc01, December 27, 2016
|
||||
*
|
||||
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
@@ -12,199 +12,8 @@
|
||||
* Authors and maintainers:
|
||||
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
|
||||
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
|
||||
* libpng versions 0.97, January 1998, through 1.4.17beta03, October 23, 2015: Glenn
|
||||
* libpng versions 0.97, January 1998, through 1.4.20rc01, December 27, 2016: Glenn
|
||||
* See also "Contributing Authors", below.
|
||||
*
|
||||
* Note about libpng version numbers:
|
||||
*
|
||||
* Due to various miscommunications, unforeseen code incompatibilities
|
||||
* and occasional factors outside the authors' control, version numbering
|
||||
* on the library has not always been consistent and straightforward.
|
||||
* The following table summarizes matters since version 0.89c, which was
|
||||
* the first widely used release:
|
||||
*
|
||||
* source png.h png.h shared-lib
|
||||
* version string int version
|
||||
* ------- ------ ----- ----------
|
||||
* 0.89c "1.0 beta 3" 0.89 89 1.0.89
|
||||
* 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90]
|
||||
* 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95]
|
||||
* 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96]
|
||||
* 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97]
|
||||
* 0.97c 0.97 97 2.0.97
|
||||
* 0.98 0.98 98 2.0.98
|
||||
* 0.99 0.99 98 2.0.99
|
||||
* 0.99a-m 0.99 99 2.0.99
|
||||
* 1.00 1.00 100 2.1.0 [100 should be 10000]
|
||||
* 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000]
|
||||
* 1.0.1 png.h string is 10001 2.1.0
|
||||
* 1.0.1a-e identical to the 10002 from here on, the shared library
|
||||
* 1.0.2 source version) 10002 is 2.V where V is the source code
|
||||
* 1.0.2a-b 10003 version, except as noted.
|
||||
* 1.0.3 10003
|
||||
* 1.0.3a-d 10004
|
||||
* 1.0.4 10004
|
||||
* 1.0.4a-f 10005
|
||||
* 1.0.5 (+ 2 patches) 10005
|
||||
* 1.0.5a-d 10006
|
||||
* 1.0.5e-r 10100 (not source compatible)
|
||||
* 1.0.5s-v 10006 (not binary compatible)
|
||||
* 1.0.6 (+ 3 patches) 10006 (still binary incompatible)
|
||||
* 1.0.6d-f 10007 (still binary incompatible)
|
||||
* 1.0.6g 10007
|
||||
* 1.0.6h 10007 10.6h (testing xy.z so-numbering)
|
||||
* 1.0.6i 10007 10.6i
|
||||
* 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0)
|
||||
* 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible)
|
||||
* 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible)
|
||||
* 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible)
|
||||
* 1.0.7 1 10007 (still compatible)
|
||||
* 1.0.8beta1-4 1 10008 2.1.0.8beta1-4
|
||||
* 1.0.8rc1 1 10008 2.1.0.8rc1
|
||||
* 1.0.8 1 10008 2.1.0.8
|
||||
* 1.0.9beta1-6 1 10009 2.1.0.9beta1-6
|
||||
* 1.0.9rc1 1 10009 2.1.0.9rc1
|
||||
* 1.0.9beta7-10 1 10009 2.1.0.9beta7-10
|
||||
* 1.0.9rc2 1 10009 2.1.0.9rc2
|
||||
* 1.0.9 1 10009 2.1.0.9
|
||||
* 1.0.10beta1 1 10010 2.1.0.10beta1
|
||||
* 1.0.10rc1 1 10010 2.1.0.10rc1
|
||||
* 1.0.10 1 10010 2.1.0.10
|
||||
* 1.0.11beta1-3 1 10011 2.1.0.11beta1-3
|
||||
* 1.0.11rc1 1 10011 2.1.0.11rc1
|
||||
* 1.0.11 1 10011 2.1.0.11
|
||||
* 1.0.12beta1-2 2 10012 2.1.0.12beta1-2
|
||||
* 1.0.12rc1 2 10012 2.1.0.12rc1
|
||||
* 1.0.12 2 10012 2.1.0.12
|
||||
* 1.1.0a-f - 10100 2.1.1.0a-f (branch abandoned)
|
||||
* 1.2.0beta1-2 2 10200 2.1.2.0beta1-2
|
||||
* 1.2.0beta3-5 3 10200 3.1.2.0beta3-5
|
||||
* 1.2.0rc1 3 10200 3.1.2.0rc1
|
||||
* 1.2.0 3 10200 3.1.2.0
|
||||
* 1.2.1beta1-4 3 10201 3.1.2.1beta1-4
|
||||
* 1.2.1rc1-2 3 10201 3.1.2.1rc1-2
|
||||
* 1.2.1 3 10201 3.1.2.1
|
||||
* 1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6
|
||||
* 1.0.13beta1 10 10013 10.so.0.1.0.13beta1
|
||||
* 1.0.13rc1 10 10013 10.so.0.1.0.13rc1
|
||||
* 1.2.2rc1 12 10202 12.so.0.1.2.2rc1
|
||||
* 1.0.13 10 10013 10.so.0.1.0.13
|
||||
* 1.2.2 12 10202 12.so.0.1.2.2
|
||||
* 1.2.3rc1-6 12 10203 12.so.0.1.2.3rc1-6
|
||||
* 1.2.3 12 10203 12.so.0.1.2.3
|
||||
* 1.2.4beta1-3 13 10204 12.so.0.1.2.4beta1-3
|
||||
* 1.0.14rc1 13 10014 10.so.0.1.0.14rc1
|
||||
* 1.2.4rc1 13 10204 12.so.0.1.2.4rc1
|
||||
* 1.0.14 10 10014 10.so.0.1.0.14
|
||||
* 1.2.4 13 10204 12.so.0.1.2.4
|
||||
* 1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2
|
||||
* 1.0.15rc1-3 10 10015 10.so.0.1.0.15rc1-3
|
||||
* 1.2.5rc1-3 13 10205 12.so.0.1.2.5rc1-3
|
||||
* 1.0.15 10 10015 10.so.0.1.0.15
|
||||
* 1.2.5 13 10205 12.so.0.1.2.5
|
||||
* 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4
|
||||
* 1.0.16 10 10016 10.so.0.1.0.16
|
||||
* 1.2.6 13 10206 12.so.0.1.2.6
|
||||
* 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2
|
||||
* 1.0.17rc1 10 10017 12.so.0.1.0.17rc1
|
||||
* 1.2.7rc1 13 10207 12.so.0.1.2.7rc1
|
||||
* 1.0.17 10 10017 12.so.0.1.0.17
|
||||
* 1.2.7 13 10207 12.so.0.1.2.7
|
||||
* 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5
|
||||
* 1.0.18rc1-5 10 10018 12.so.0.1.0.18rc1-5
|
||||
* 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5
|
||||
* 1.0.18 10 10018 12.so.0.1.0.18
|
||||
* 1.2.8 13 10208 12.so.0.1.2.8
|
||||
* 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3
|
||||
* 1.2.9beta4-11 13 10209 12.so.0.9[.0]
|
||||
* 1.2.9rc1 13 10209 12.so.0.9[.0]
|
||||
* 1.2.9 13 10209 12.so.0.9[.0]
|
||||
* 1.2.10beta1-7 13 10210 12.so.0.10[.0]
|
||||
* 1.2.10rc1-2 13 10210 12.so.0.10[.0]
|
||||
* 1.2.10 13 10210 12.so.0.10[.0]
|
||||
* 1.4.0beta1-5 14 10400 14.so.0.0[.0]
|
||||
* 1.2.11beta1-4 13 10211 12.so.0.11[.0]
|
||||
* 1.4.0beta7-8 14 10400 14.so.0.0[.0]
|
||||
* 1.2.11 13 10211 12.so.0.11[.0]
|
||||
* 1.2.12 13 10212 12.so.0.12[.0]
|
||||
* 1.4.0beta9-14 14 10400 14.so.0.0[.0]
|
||||
* 1.2.13 13 10213 12.so.0.13[.0]
|
||||
* 1.4.0beta15-36 14 10400 14.so.0.0[.0]
|
||||
* 1.4.0beta37-87 14 10400 14.so.14.0[.0]
|
||||
* 1.4.0rc01 14 10400 14.so.14.0[.0]
|
||||
* 1.4.0beta88-109 14 10400 14.so.14.0[.0]
|
||||
* 1.4.0rc02-08 14 10400 14.so.14.0[.0]
|
||||
* 1.4.0 14 10400 14.so.14.0[.0]
|
||||
* 1.4.1beta01-03 14 10401 14.so.14.1[.0]
|
||||
* 1.4.1rc01 14 10401 14.so.14.1[.0]
|
||||
* 1.4.1beta04-12 14 10401 14.so.14.1[.0]
|
||||
* 1.4.1rc02-04 14 10401 14.so.14.1[.0]
|
||||
* 1.4.1 14 10401 14.so.14.1[.0]
|
||||
* 1.4.2beta01 14 10402 14.so.14.2[.0]
|
||||
* 1.4.2rc02-06 14 10402 14.so.14.2[.0]
|
||||
* 1.4.2 14 10402 14.so.14.2[.0]
|
||||
* 1.4.3beta01-05 14 10403 14.so.14.3[.0]
|
||||
* 1.4.3rc01-03 14 10403 14.so.14.3[.0]
|
||||
* 1.4.3 14 10403 14.so.14.3[.0]
|
||||
* 1.4.4beta01-08 14 10404 14.so.14.4[.0]
|
||||
* 1.4.4rc01-05 14 10404 14.so.14.4[.0]
|
||||
* 1.4.4 14 10404 14.so.14.4[.0]
|
||||
* 1.4.5beta01-04 14 10405 14.so.14.5[.0]
|
||||
* 1.4.5rc01 14 10405 14.so.14.5[.0]
|
||||
* 1.4.5beta05-07 14 10405 14.so.14.5[.0]
|
||||
* 1.4.5rc02-03 14 10405 14.so.14.5[.0]
|
||||
* 1.4.5 14 10405 14.so.14.5[.0]
|
||||
* 1.4.6beta01-07 14 10406 14.so.14.6[.0]
|
||||
* 1.4.6rc01 14 10406 14.so.14.6[.0]
|
||||
* 1.4.6 14 10406 14.so.14.6[.0]
|
||||
* 1.4.7rc01 14 10407 14.so.14.7[.0]
|
||||
* 1.4.7 14 10407 14.so.14.7[.0]
|
||||
* 1.4.8beta01-05 14 10408 14.so.14.8[.0]
|
||||
* 1.4.8rc01 14 10408 14.so.14.8[.0]
|
||||
* 1.4.8 14 10408 14.so.14.8[.0]
|
||||
* 1.4.9beta01 14 10409 14.so.14.9[.0]
|
||||
* 1.4.9rc01 14 10409 14.so.14.9[.0]
|
||||
* 1.4.9 14 10409 14.so.14.9[.0]
|
||||
* 1.4.10beta01 14 10410 14.so.14.10[.0]
|
||||
* 1.4.10rc01-02 14 10410 14.so.14.10[.0]
|
||||
* 1.4.10 14 10410 14.so.14.10[.0]
|
||||
* 1.4.11rc01 14 10411 14.so.14.11[.0]
|
||||
* 1.4.11 14 10411 14.so.14.11[.0]
|
||||
* 1.4.12 14 10412 14.so.14.12[.0]
|
||||
* 1.4.13beta01-06 14 10413 14.so.14.13[.0]
|
||||
* 1.4.13rc01-02 14 10413 14.so.14.13[.0]
|
||||
* 1.4.13 14 10413 14.so.14.13[.0]
|
||||
* 1.4.14beta01 14 10414 14.so.14.14[.0]
|
||||
* 1.4.14rc01-02 14 10414 14.so.14.14[.0]
|
||||
* 1.4.14 14 10414 14.so.14.14[.0]
|
||||
* 1.4.15beta01-02 14 10415 14.so.14.15[.0]
|
||||
* 1.4.15rc01-02 14 10415 14.so.14.15[.0]
|
||||
* 1.4.15 14 10415 14.so.14.15[.0]
|
||||
* 1.4.16beta01-02 14 10416 14.so.14.16[.0]
|
||||
* 1.4.16rc01 14 10416 14.so.14.16[.0]
|
||||
* 1.4.16 14 10416 14.so.14.16[.0]
|
||||
* 1.4.17beta01-03 14 10417 14.so.14.17[.0]
|
||||
*
|
||||
* Henceforth the source version will match the shared-library major
|
||||
* and minor numbers; the shared-library major version number will be
|
||||
* used for changes in backward compatibility, as it is intended. The
|
||||
* PNG_LIBPNG_VER macro, which is not used within libpng but is available
|
||||
* for applications, is an unsigned integer of the form xyyzz corresponding
|
||||
* to the source version x.y.z (leading zeros in y and z). Beta versions
|
||||
* were given the previous public release number plus a letter, until
|
||||
* version 1.0.6j; from then on they were given the upcoming public
|
||||
* release number plus "betaNN" or "rcNN".
|
||||
*
|
||||
* Binary incompatibility exists only when applications make direct access
|
||||
* to the info_ptr or png_ptr members through png.h, and the compiled
|
||||
* application is loaded with a different version of the library.
|
||||
*
|
||||
* DLLNUM will change each time there are forward or backward changes
|
||||
* in binary compatibility (e.g., when a new feature is added).
|
||||
*
|
||||
* See libpng.txt or libpng.3 for more information. The PNG specification
|
||||
* is available as a W3C Recommendation and as an ISO Specification,
|
||||
* <http://www.w3.org/TR/2003/REC-PNG-20031110/
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -215,10 +24,11 @@
|
||||
*
|
||||
* This code is released under the libpng license.
|
||||
*
|
||||
* libpng versions 1.0.7, July 1, 2000, through 1.4.17beta03, October 23, 2015, are
|
||||
* Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are
|
||||
* distributed according to the same disclaimer and license as libpng-1.0.6
|
||||
* with the following individuals added to the list of Contributing Authors:
|
||||
* libpng versions 1.0.7, July 1, 2000, through 1.4.20rc01, December 27, 2016, are
|
||||
* Copyright (c) 2000-2002, 2004, 2006-2016 Glenn Randers-Pehrson, are
|
||||
* derived from libpng-1.0.6, and are distributed according to the same
|
||||
* disclaimer and license as libpng-1.0.6 with the following individuals
|
||||
* added to the list of Contributing Authors:
|
||||
*
|
||||
* Simon-Pierre Cadieux
|
||||
* Eric S. Raymond
|
||||
@@ -235,18 +45,20 @@
|
||||
* the user.
|
||||
*
|
||||
* libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
|
||||
* Copyright (c) 1998-2000 Glenn Randers-Pehrson, and are distributed according
|
||||
* to the same disclaimer and license as libpng-0.96, with the following
|
||||
* individuals added to the list of Contributing Authors:
|
||||
* Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
|
||||
* libpng-0.96, and are distributed according to the same disclaimer and
|
||||
* license as libpng-0.96, with the following individuals added to the list
|
||||
* of Contributing Authors:
|
||||
*
|
||||
* Tom Lane
|
||||
* Glenn Randers-Pehrson
|
||||
* Willem van Schaik
|
||||
*
|
||||
* libpng versions 0.89, June 1996, through 0.96, May 1997, are
|
||||
* Copyright (c) 1996-1997 Andreas Dilger, and are
|
||||
* distributed according to the same disclaimer and license as libpng-0.88,
|
||||
* with the following individuals added to the list of Contributing Authors:
|
||||
* Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
|
||||
* and are distributed according to the same disclaimer and license as
|
||||
* libpng-0.88, with the following individuals added to the list of
|
||||
* Contributing Authors:
|
||||
*
|
||||
* John Bowler
|
||||
* Kevin Bracey
|
||||
@@ -292,6 +104,8 @@
|
||||
* supporting the PNG file format in commercial products. If you use this
|
||||
* source code in a product, acknowledgment is not required but would be
|
||||
* appreciated.
|
||||
*
|
||||
* END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -318,17 +132,88 @@
|
||||
* Thanks to Frank J. T. Wojcik for helping with the documentation.
|
||||
*/
|
||||
|
||||
/* Note about libpng version numbers:
|
||||
*
|
||||
* Due to various miscommunications, unforeseen code incompatibilities
|
||||
* and occasional factors outside the authors' control, version numbering
|
||||
* on the library has not always been consistent and straightforward.
|
||||
* The following table summarizes matters since version 0.89c, which was
|
||||
* the first widely used release:
|
||||
*
|
||||
* source png.h png.h shared-lib
|
||||
* version string int version
|
||||
* ------- ------ ----- ----------
|
||||
* 0.89c "1.0 beta 3" 0.89 89 1.0.89
|
||||
* 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90]
|
||||
* 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95]
|
||||
* 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96]
|
||||
* 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97]
|
||||
* 0.97c 0.97 97 2.0.97
|
||||
* 0.98 0.98 98 2.0.98
|
||||
* 0.99 0.99 98 2.0.99
|
||||
* 0.99a-m 0.99 99 2.0.99
|
||||
* 1.00 1.00 100 2.1.0 [100 should be 10000]
|
||||
* 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000]
|
||||
* 1.0.1 png.h string is 10001 2.1.0
|
||||
* 1.0.1a-e identical to the 10002 from here on, the shared library
|
||||
* 1.0.2 source version) 10002 is 2.V where V is the source code
|
||||
* 1.0.2a-b 10003 version, except as noted.
|
||||
* 1.0.3 10003
|
||||
* 1.0.3a-d 10004
|
||||
* 1.0.4 10004
|
||||
* 1.0.4a-f 10005
|
||||
* 1.0.5 (+ 2 patches) 10005
|
||||
* 1.0.5a-d 10006
|
||||
* 1.0.5e-r 10100 (not source compatible)
|
||||
* 1.0.5s-v 10006 (not binary compatible)
|
||||
* 1.0.6 (+ 3 patches) 10006 (still binary incompatible)
|
||||
* 1.0.6d-f 10007 (still binary incompatible)
|
||||
* 1.0.6g 10007
|
||||
* 1.0.6h 10007 10.6h (testing xy.z so-numbering)
|
||||
* 1.0.6i 10007 10.6i
|
||||
* 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0)
|
||||
* 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible)
|
||||
* 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible)
|
||||
* 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible)
|
||||
* 1.0.7 1 10007 (still compatible)
|
||||
* ...
|
||||
* 1.0.19 10 10019 10.so.0.19[.0]
|
||||
* ...
|
||||
* 1.4.20 14 10420 14.so.14.20[.0]
|
||||
*
|
||||
* Henceforth the source version will match the shared-library major
|
||||
* and minor numbers; the shared-library major version number will be
|
||||
* used for changes in backward compatibility, as it is intended. The
|
||||
* PNG_LIBPNG_VER macro, which is not used within libpng but is available
|
||||
* for applications, is an unsigned integer of the form xyyzz corresponding
|
||||
* to the source version x.y.z (leading zeros in y and z). Beta versions
|
||||
* were given the previous public release number plus a letter, until
|
||||
* version 1.0.6j; from then on they were given the upcoming public
|
||||
* release number plus "betaNN" or "rcNN".
|
||||
*
|
||||
* Binary incompatibility exists only when applications make direct access
|
||||
* to the info_ptr or png_ptr members through png.h, and the compiled
|
||||
* application is loaded with a different version of the library.
|
||||
*
|
||||
* DLLNUM will change each time there are forward or backward changes
|
||||
* in binary compatibility (e.g., when a new feature is added).
|
||||
*
|
||||
* See libpng.txt or libpng.3 for more information. The PNG specification
|
||||
* is available as a W3C Recommendation and as an ISO Specification,
|
||||
* <http://www.w3.org/TR/2003/REC-PNG-20031110/
|
||||
*/
|
||||
|
||||
/*
|
||||
* Y2K compliance in libpng:
|
||||
* =========================
|
||||
*
|
||||
* October 23, 2015
|
||||
* December 27, 2016
|
||||
*
|
||||
* Since the PNG Development group is an ad-hoc body, we can't make
|
||||
* an official declaration.
|
||||
*
|
||||
* This is your unofficial assurance that libpng from version 0.71 and
|
||||
* upward through 1.4.17beta03 are Y2K compliant. It is my belief that earlier
|
||||
* upward through 1.4.20rc01 are Y2K compliant. It is my belief that earlier
|
||||
* versions were also Y2K compliant.
|
||||
*
|
||||
* Libpng only has three year fields. One is a 2-byte unsigned integer
|
||||
@@ -384,9 +269,9 @@
|
||||
*/
|
||||
|
||||
/* Version information for png.h - this should match the version in png.c */
|
||||
#define PNG_LIBPNG_VER_STRING "1.4.17beta03"
|
||||
#define PNG_LIBPNG_VER_STRING "1.4.20rc01"
|
||||
#define PNG_HEADER_VERSION_STRING \
|
||||
" libpng version 1.4.17beta03 - October 23, 2015\n"
|
||||
" libpng version 1.4.20rc01 - December 27, 2016\n"
|
||||
|
||||
#define PNG_LIBPNG_VER_SONUM 14
|
||||
#define PNG_LIBPNG_VER_DLLNUM 14
|
||||
@@ -394,12 +279,12 @@
|
||||
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
|
||||
#define PNG_LIBPNG_VER_MAJOR 1
|
||||
#define PNG_LIBPNG_VER_MINOR 4
|
||||
#define PNG_LIBPNG_VER_RELEASE 17
|
||||
#define PNG_LIBPNG_VER_RELEASE 20
|
||||
/* This should match the numeric part of the final component of
|
||||
* PNG_LIBPNG_VER_STRING, omitting any leading zero:
|
||||
*/
|
||||
|
||||
#define PNG_LIBPNG_VER_BUILD 03
|
||||
#define PNG_LIBPNG_VER_BUILD 01
|
||||
|
||||
/* Release Status */
|
||||
#define PNG_LIBPNG_BUILD_ALPHA 1
|
||||
@@ -416,7 +301,7 @@
|
||||
#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with
|
||||
PNG_LIBPNG_BUILD_PRIVATE */
|
||||
|
||||
#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_BETA
|
||||
#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_RC
|
||||
|
||||
/* Careful here. At one time, Guy wanted to use 082, but that would be octal.
|
||||
* We must not include leading zeros.
|
||||
@@ -424,7 +309,7 @@
|
||||
* version 1.0.0 was mis-numbered 100 instead of 10000). From
|
||||
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release
|
||||
*/
|
||||
#define PNG_LIBPNG_VER 10417 /* 1.4.17 */
|
||||
#define PNG_LIBPNG_VER 10420 /* 1.4.20 */
|
||||
|
||||
#ifndef PNG_VERSION_INFO_ONLY
|
||||
/* Include the compression library's header */
|
||||
@@ -1493,7 +1378,7 @@ struct png_struct_def
|
||||
/* This triggers a compiler error in png.c, if png.c and png.h
|
||||
* do not agree upon the version number.
|
||||
*/
|
||||
typedef png_structp version_1_4_17beta03;
|
||||
typedef png_structp version_1_4_20rc01;
|
||||
|
||||
typedef png_struct FAR * FAR * png_structpp;
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngconf.h - machine configurable file for libpng
|
||||
*
|
||||
* libpng version 1.4.17beta03, October 23, 2015
|
||||
* libpng version 1.4.20rc01, December 27, 2016
|
||||
*
|
||||
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
@@ -1461,7 +1461,7 @@ typedef char FAR * FAR * FAR * png_charppp;
|
||||
# define png_strncpy lstrcpynA
|
||||
# define png_strlen lstrlenA
|
||||
# define png_memcmp memcmp
|
||||
# define png_memcpy CopyMemory
|
||||
# define png_memcpy memcpy
|
||||
# define png_memset memset
|
||||
# define png_sprintf wsprintfA
|
||||
# else
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
/* pngerror.c - stub functions for i/o and memory allocation
|
||||
*
|
||||
* Last changed in libpng 1.4.8 [July 7, 2011]
|
||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||
* Last changed in libpng 1.4.20 [December 27, 2016]
|
||||
* Copyright (c) 1998-2002,2004,2006-2011,2016 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
@@ -150,14 +150,14 @@ png_benign_error(png_structp png_ptr, png_const_charp error_message)
|
||||
* to 63 bytes, the name characters are output as hex digits wrapped in []
|
||||
* if the character is invalid.
|
||||
*/
|
||||
#define PNG_MAX_ERROR_TEXT 64
|
||||
#if defined(PNG_WARNINGS_SUPPORTED) || defined(PNG_ERROR_TEXT_SUPPORTED)
|
||||
#define isnonalpha(c) ((c) < 65 || (c) > 122 || ((c) > 90 && (c) < 97))
|
||||
static PNG_CONST char png_digit[16] = {
|
||||
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
|
||||
'A', 'B', 'C', 'D', 'E', 'F'
|
||||
};
|
||||
|
||||
#define PNG_MAX_ERROR_TEXT 64
|
||||
#if defined(PNG_WARNINGS_SUPPORTED) || defined(PNG_ERROR_TEXT_SUPPORTED)
|
||||
static void /* PRIVATE */
|
||||
png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp
|
||||
error_message)
|
||||
|
||||
2
pngget.c
2
pngget.c
@@ -2,7 +2,7 @@
|
||||
/* pngget.c - retrieval of values from info struct
|
||||
*
|
||||
* Last changed in libpng 1.4.6 [April 8, 2011]
|
||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2002,2004,2006-2011 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
|
||||
2
pngmem.c
2
pngmem.c
@@ -2,7 +2,7 @@
|
||||
/* pngmem.c - stub functions for memory allocation
|
||||
*
|
||||
* Last changed in libpng 1.4.6 [April 8, 2011]
|
||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2002,2004,2006-2011 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
|
||||
10
pngpread.c
10
pngpread.c
@@ -1,8 +1,8 @@
|
||||
|
||||
/* pngpread.c - read a png file in push mode
|
||||
*
|
||||
* Last changed in libpng 1.4.10 [March 8, 2012]
|
||||
* Copyright (c) 1998-2012 Glenn Randers-Pehrson
|
||||
* Last changed in libpng 1.4.20 [(TO BE RELEASED)]
|
||||
* Copyright (c) 1998-2002,2004,2006-2012,2016 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
@@ -683,7 +683,11 @@ png_push_save_buffer(png_structp png_ptr)
|
||||
png_free(png_ptr, old_buffer);
|
||||
png_error(png_ptr, "Insufficient memory for save_buffer");
|
||||
}
|
||||
png_memcpy(png_ptr->save_buffer, old_buffer, png_ptr->save_buffer_size);
|
||||
if (old_buffer)
|
||||
png_memcpy(png_ptr->save_buffer, old_buffer,
|
||||
png_ptr->save_buffer_size);
|
||||
else if (png_ptr->save_buffer_size)
|
||||
png_error(png_ptr, "save_buffer error");
|
||||
png_free(png_ptr, old_buffer);
|
||||
png_ptr->save_buffer_max = new_max;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngpriv.h - private declarations for use inside libpng
|
||||
*
|
||||
* libpng version 1.4.17beta03 - October 23, 2015
|
||||
* libpng version 1.4.20rc01 - December 27, 2016
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2002,2004,2006-2014 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/* pngread.c - read a PNG file
|
||||
*
|
||||
* Last changed in libpng 1.4.14 [November 20, 2014]
|
||||
* Copyright (c) 1998-2014 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2002,2004,2006-2014 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
|
||||
2
pngrio.c
2
pngrio.c
@@ -2,7 +2,7 @@
|
||||
/* pngrio.c - functions for data input
|
||||
*
|
||||
* Last changed in libpng 1.4.6 [January 14, 2011]
|
||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2002,2004,2006-2011 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
/* pngrtran.c - transforms the data in a row for PNG readers
|
||||
*
|
||||
* Last changed in libpng 1.4.15 [February 12, 2015]
|
||||
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||
* Last changed in libpng 1.4.17 [November 12, 2015]
|
||||
* Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
@@ -1726,7 +1726,7 @@ png_do_unshift(png_row_infop row_info, png_bytep row, png_color_8p sig_bits)
|
||||
switch (row_info->bit_depth)
|
||||
{
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
{
|
||||
|
||||
33
pngrutil.c
33
pngrutil.c
@@ -1,8 +1,8 @@
|
||||
|
||||
/* pngrutil.c - utilities to read a PNG file
|
||||
*
|
||||
* Last changed in libpng 1.4.15 [February 12, 2015]
|
||||
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||
* Last changed in libpng 1.4.18 [December 11, 2015]
|
||||
* Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
@@ -551,7 +551,7 @@ void /* PRIVATE */
|
||||
png_handle_PLTE(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
{
|
||||
png_color palette[PNG_MAX_PALETTE_LENGTH];
|
||||
int num, i;
|
||||
int max_palette_length, num, i;
|
||||
#ifdef PNG_POINTER_INDEXING_SUPPORTED
|
||||
png_colorp pal_ptr;
|
||||
#endif
|
||||
@@ -603,8 +603,22 @@ png_handle_PLTE(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
}
|
||||
}
|
||||
|
||||
/* The cast is safe because 'length' is less than 3*PNG_MAX_PALETTE_LENGTH */
|
||||
num = (int)length / 3;
|
||||
|
||||
/* If the palette has 256 or fewer entries but is too large for the bit
|
||||
* depth, we don't issue an error, to preserve the behavior of previous
|
||||
* libpng versions. We silently truncate the unused extra palette entries
|
||||
* here.
|
||||
*/
|
||||
if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
|
||||
max_palette_length = (1 << png_ptr->bit_depth);
|
||||
else
|
||||
max_palette_length = PNG_MAX_PALETTE_LENGTH;
|
||||
|
||||
if (num > max_palette_length)
|
||||
num = max_palette_length;
|
||||
|
||||
#ifdef PNG_POINTER_INDEXING_SUPPORTED
|
||||
for (i = 0, pal_ptr = palette; i < num; i++, pal_ptr++)
|
||||
{
|
||||
@@ -637,7 +651,7 @@ png_handle_PLTE(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
|
||||
#endif
|
||||
{
|
||||
png_crc_finish(png_ptr, 0);
|
||||
png_crc_finish(png_ptr, (int) length - num * 3);
|
||||
}
|
||||
#ifndef PNG_READ_OPT_PLTE_SUPPORTED
|
||||
else if (png_crc_error(png_ptr)) /* Only if we have a CRC error */
|
||||
@@ -1145,7 +1159,7 @@ png_handle_iCCP(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
/* There should be at least one zero (the compression type byte)
|
||||
* following the separator, and we should be on it
|
||||
*/
|
||||
if ( profile >= png_ptr->chunkdata + slength - 1)
|
||||
if (slength < 1U || profile >= png_ptr->chunkdata + slength - 1U)
|
||||
{
|
||||
png_free(png_ptr, png_ptr->chunkdata);
|
||||
png_ptr->chunkdata = NULL;
|
||||
@@ -1283,7 +1297,8 @@ png_handle_sPLT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
++entry_start;
|
||||
|
||||
/* A sample depth should follow the separator, and we should be on it */
|
||||
if (entry_start > (png_bytep)png_ptr->chunkdata + slength - 2)
|
||||
if (slength < 2U ||
|
||||
entry_start > (png_bytep)png_ptr->chunkdata + slength - 2U)
|
||||
{
|
||||
png_free(png_ptr, png_ptr->chunkdata);
|
||||
png_ptr->chunkdata = NULL;
|
||||
@@ -1757,7 +1772,7 @@ png_handle_pCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
|
||||
/* We need to have at least 12 bytes after the purpose string
|
||||
in order to get the parameter information. */
|
||||
if (endptr <= buf + 12)
|
||||
if (slength < 12U || endptr - buf <= 12)
|
||||
{
|
||||
png_warning(png_ptr, "Invalid pCAL data");
|
||||
png_free(png_ptr, png_ptr->chunkdata);
|
||||
@@ -2208,7 +2223,7 @@ png_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
/* Empty loop */ ;
|
||||
|
||||
/* zTXt must have some text after the chunkdataword */
|
||||
if (text >= png_ptr->chunkdata + slength - 2)
|
||||
if (slength < 2U || text >= png_ptr->chunkdata + slength - 2U)
|
||||
{
|
||||
png_warning(png_ptr, "Truncated zTXt chunk");
|
||||
png_free(png_ptr, png_ptr->chunkdata);
|
||||
@@ -2334,7 +2349,7 @@ png_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
* keyword
|
||||
*/
|
||||
|
||||
if (lang >= png_ptr->chunkdata + slength - 3)
|
||||
if (slength < 3U || lang >= png_ptr->chunkdata + slength - 3U)
|
||||
{
|
||||
png_warning(png_ptr, "Truncated iTXt chunk");
|
||||
png_free(png_ptr, png_ptr->chunkdata);
|
||||
|
||||
152
pngset.c
152
pngset.c
@@ -1,8 +1,8 @@
|
||||
|
||||
/* pngset.c - storage of image information into info struct
|
||||
*
|
||||
* Last changed in libpng 1.4.17 [October 23, 2015]
|
||||
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||
* Last changed in libpng 1.4.19 [December 17, 2015]
|
||||
* Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
@@ -427,12 +427,17 @@ png_set_PLTE(png_structp png_ptr, png_infop info_ptr,
|
||||
png_colorp palette, int num_palette)
|
||||
{
|
||||
|
||||
png_uint_32 max_palette_length;
|
||||
|
||||
png_debug1(1, "in %s storage function", "PLTE");
|
||||
|
||||
if (png_ptr == NULL || info_ptr == NULL)
|
||||
return;
|
||||
|
||||
if (num_palette < 0 || num_palette > PNG_MAX_PALETTE_LENGTH)
|
||||
max_palette_length = (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ?
|
||||
(1 << info_ptr->bit_depth) : PNG_MAX_PALETTE_LENGTH;
|
||||
|
||||
if (num_palette < 0 || num_palette > (int) max_palette_length)
|
||||
{
|
||||
if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
|
||||
png_error(png_ptr, "Invalid palette length");
|
||||
@@ -450,8 +455,8 @@ png_set_PLTE(png_structp png_ptr, png_infop info_ptr,
|
||||
png_free_data(png_ptr, info_ptr, PNG_FREE_PLTE, 0);
|
||||
|
||||
/* Changed in libpng-1.2.1 to allocate PNG_MAX_PALETTE_LENGTH instead
|
||||
* of num_palette entries, in case of an invalid PNG file that has
|
||||
* too-large sample values.
|
||||
* of num_palette entries, in case of an invalid PNG file or incorrect
|
||||
* call to png_set_PLTE() with too-large sample values.
|
||||
*/
|
||||
png_ptr->palette = (png_colorp)png_calloc(png_ptr,
|
||||
PNG_MAX_PALETTE_LENGTH * png_sizeof(png_color));
|
||||
@@ -1020,7 +1025,6 @@ png_set_unknown_chunk_location(png_structp png_ptr, png_infop info_ptr,
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef PNG_MNG_FEATURES_SUPPORTED
|
||||
png_uint_32 PNGAPI
|
||||
png_permit_mng_features(png_structp png_ptr, png_uint_32 mng_features)
|
||||
@@ -1133,7 +1137,6 @@ png_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask)
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
||||
/* This function was added to libpng 1.2.6 */
|
||||
void PNGAPI
|
||||
@@ -1142,7 +1145,7 @@ png_set_user_limits(png_structp png_ptr, png_uint_32 user_width_max,
|
||||
{
|
||||
/* Images with dimensions larger than these limits will be
|
||||
* rejected by png_set_IHDR(). To accept any PNG datastream
|
||||
* regardless of dimensions, set both limits to 0x7ffffffL.
|
||||
* regardless of dimensions, set both limits to 0x7fffffffL.
|
||||
*/
|
||||
if (png_ptr == NULL)
|
||||
return;
|
||||
@@ -1183,4 +1186,135 @@ png_set_benign_errors(png_structp png_ptr, int allowed)
|
||||
png_ptr->flags &= ~PNG_FLAG_BENIGN_ERRORS_WARN;
|
||||
}
|
||||
#endif /* PNG_BENIGN_ERRORS_SUPPORTED */
|
||||
#endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */
|
||||
|
||||
#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) || \
|
||||
defined(PNG_WRITE_iCCP_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED)
|
||||
/* Check that the tEXt or zTXt keyword is valid per PNG 1.0 specification,
|
||||
* and if invalid, correct the keyword rather than discarding the entire
|
||||
* chunk. The PNG 1.0 specification requires keywords 1-79 characters in
|
||||
* length, forbids leading or trailing whitespace, multiple internal spaces,
|
||||
* and the non-break space (0x80) from ISO 8859-1. Returns keyword length.
|
||||
*
|
||||
* The new_key is allocated to hold the corrected keyword and must be freed
|
||||
* by the calling routine. This avoids problems with trying to write to
|
||||
* static keywords without having to have duplicate copies of the strings.
|
||||
*/
|
||||
png_size_t /* PRIVATE */
|
||||
png_check_keyword(png_structp png_ptr, png_charp key, png_charpp new_key)
|
||||
{
|
||||
png_size_t key_len;
|
||||
png_charp kp, dp;
|
||||
int kflag;
|
||||
int kwarn=0;
|
||||
|
||||
png_debug(1, "in png_check_keyword");
|
||||
|
||||
*new_key = NULL;
|
||||
|
||||
if (key == NULL || (key_len = png_strlen(key)) == 0)
|
||||
{
|
||||
png_warning(png_ptr, "zero length keyword");
|
||||
return ((png_size_t)0);
|
||||
}
|
||||
|
||||
png_debug1(2, "Keyword to be checked is '%s'", key);
|
||||
|
||||
*new_key = (png_charp)png_malloc_warn(png_ptr, (png_uint_32)(key_len + 2));
|
||||
if (*new_key == NULL)
|
||||
{
|
||||
png_warning(png_ptr, "Out of memory while procesing keyword");
|
||||
return ((png_size_t)0);
|
||||
}
|
||||
|
||||
/* Replace non-printing characters with a blank and print a warning */
|
||||
for (kp = key, dp = *new_key; *kp != '\0'; kp++, dp++)
|
||||
{
|
||||
if ((png_byte)*kp < 0x20 ||
|
||||
((png_byte)*kp > 0x7E && (png_byte)*kp < 0xA1))
|
||||
{
|
||||
#ifdef PNG_STDIO_SUPPORTED
|
||||
char msg[40];
|
||||
|
||||
png_snprintf(msg, 40,
|
||||
"invalid keyword character 0x%02X", (png_byte)*kp);
|
||||
png_warning(png_ptr, msg);
|
||||
#else
|
||||
png_warning(png_ptr, "invalid character in keyword");
|
||||
#endif
|
||||
*dp = ' ';
|
||||
}
|
||||
else
|
||||
{
|
||||
*dp = *kp;
|
||||
}
|
||||
}
|
||||
*dp = '\0';
|
||||
|
||||
/* Remove any trailing white space. */
|
||||
kp = *new_key + key_len - 1;
|
||||
if (*kp == ' ')
|
||||
{
|
||||
png_warning(png_ptr, "trailing spaces removed from keyword");
|
||||
|
||||
while (key_len && *kp == ' ')
|
||||
{
|
||||
*(kp--) = '\0';
|
||||
key_len--;
|
||||
}
|
||||
}
|
||||
|
||||
/* Remove any leading white space. */
|
||||
kp = *new_key;
|
||||
if (*kp == ' ')
|
||||
{
|
||||
png_warning(png_ptr, "leading spaces removed from keyword");
|
||||
|
||||
while (*kp == ' ')
|
||||
{
|
||||
kp++;
|
||||
key_len--;
|
||||
}
|
||||
}
|
||||
|
||||
png_debug1(2, "Checking for multiple internal spaces in '%s'", kp);
|
||||
|
||||
/* Remove multiple internal spaces. */
|
||||
for (kflag = 0, dp = *new_key; *kp != '\0'; kp++)
|
||||
{
|
||||
if (*kp == ' ' && kflag == 0)
|
||||
{
|
||||
*(dp++) = *kp;
|
||||
kflag = 1;
|
||||
}
|
||||
else if (*kp == ' ')
|
||||
{
|
||||
key_len--;
|
||||
kwarn=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
*(dp++) = *kp;
|
||||
kflag = 0;
|
||||
}
|
||||
}
|
||||
*dp = '\0';
|
||||
if (kwarn)
|
||||
png_warning(png_ptr, "extra interior spaces removed from keyword");
|
||||
|
||||
if (key_len == 0)
|
||||
{
|
||||
png_free(png_ptr, *new_key);
|
||||
png_warning(png_ptr, "Zero length keyword");
|
||||
}
|
||||
|
||||
if (key_len > 79)
|
||||
{
|
||||
png_warning(png_ptr, "keyword length must be 1 - 79 characters");
|
||||
(*new_key)[79] = '\0';
|
||||
key_len = 79;
|
||||
}
|
||||
|
||||
return (key_len);
|
||||
}
|
||||
#endif /* WRITE_TEXT || WRITE_pCAL) || WRITE_iCCP || WRITE_sPLT */
|
||||
#endif /* READ || WRITE */
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
/* pngtest.c - a simple test program to test libpng
|
||||
*
|
||||
* Last changed in libpng 1.4.17 [October 23, 2015]
|
||||
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||
* Last changed in libpng 1.4.17 [November 12, 2015]
|
||||
* Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
@@ -1737,4 +1737,4 @@ main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||
typedef version_1_4_17beta03 your_png_h_is_not_version_1_4_17beta03;
|
||||
typedef version_1_4_20rc01 your_png_h_is_not_version_1_4_20rc01;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
|
||||
*
|
||||
* Last changed in libpng 1.4.6 [ April 8, 2011]
|
||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2002,2004,2006-2011 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
|
||||
2
pngwio.c
2
pngwio.c
@@ -2,7 +2,7 @@
|
||||
/* pngwio.c - functions for data output
|
||||
*
|
||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
||||
* Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2002,2004,2006-2010 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/* pngwrite.c - general routines to write a PNG file
|
||||
*
|
||||
* Last changed in libpng 1.4.15 [February 12, 2015]
|
||||
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/* pngwtran.c - transforms the data in a row for PNG writers
|
||||
*
|
||||
* Last changed in libpng 1.4.1 [February 25, 2010]
|
||||
* Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2002,2004,2006-2010 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
|
||||
142
pngwutil.c
142
pngwutil.c
@@ -1,8 +1,8 @@
|
||||
|
||||
/* pngwutil.c - utilities to write a PNG file
|
||||
*
|
||||
* Last changed in libpng 1.4.15 [February 12, 2015]
|
||||
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||
* Last changed in libpng 1.4.19 [December 17, 2015]
|
||||
* Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||
*
|
||||
@@ -601,17 +601,20 @@ void /* PRIVATE */
|
||||
png_write_PLTE(png_structp png_ptr, png_colorp palette, png_uint_32 num_pal)
|
||||
{
|
||||
PNG_PLTE;
|
||||
png_uint_32 i;
|
||||
png_uint_32 max_palette_length, i;
|
||||
png_colorp pal_ptr;
|
||||
png_byte buf[3];
|
||||
|
||||
png_debug(1, "in png_write_PLTE");
|
||||
|
||||
max_palette_length = (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ?
|
||||
(1 << png_ptr->bit_depth) : PNG_MAX_PALETTE_LENGTH;
|
||||
|
||||
if ((
|
||||
#ifdef PNG_MNG_FEATURES_SUPPORTED
|
||||
!(png_ptr->mng_features_permitted & PNG_FLAG_MNG_EMPTY_PLTE) &&
|
||||
#endif
|
||||
num_pal == 0) || num_pal > 256)
|
||||
num_pal == 0) || num_pal > max_palette_length)
|
||||
{
|
||||
if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
|
||||
{
|
||||
@@ -1231,137 +1234,6 @@ png_write_hIST(png_structp png_ptr, png_uint_16p hist, int num_hist)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) || \
|
||||
defined(PNG_WRITE_iCCP_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED)
|
||||
/* Check that the tEXt or zTXt keyword is valid per PNG 1.0 specification,
|
||||
* and if invalid, correct the keyword rather than discarding the entire
|
||||
* chunk. The PNG 1.0 specification requires keywords 1-79 characters in
|
||||
* length, forbids leading or trailing whitespace, multiple internal spaces,
|
||||
* and the non-break space (0x80) from ISO 8859-1. Returns keyword length.
|
||||
*
|
||||
* The new_key is allocated to hold the corrected keyword and must be freed
|
||||
* by the calling routine. This avoids problems with trying to write to
|
||||
* static keywords without having to have duplicate copies of the strings.
|
||||
*/
|
||||
png_size_t /* PRIVATE */
|
||||
png_check_keyword(png_structp png_ptr, png_charp key, png_charpp new_key)
|
||||
{
|
||||
png_size_t key_len;
|
||||
png_charp kp, dp;
|
||||
int kflag;
|
||||
int kwarn=0;
|
||||
|
||||
png_debug(1, "in png_check_keyword");
|
||||
|
||||
*new_key = NULL;
|
||||
|
||||
if (key == NULL || (key_len = png_strlen(key)) == 0)
|
||||
{
|
||||
png_warning(png_ptr, "zero length keyword");
|
||||
return ((png_size_t)0);
|
||||
}
|
||||
|
||||
png_debug1(2, "Keyword to be checked is '%s'", key);
|
||||
|
||||
*new_key = (png_charp)png_malloc_warn(png_ptr, (png_uint_32)(key_len + 2));
|
||||
if (*new_key == NULL)
|
||||
{
|
||||
png_warning(png_ptr, "Out of memory while procesing keyword");
|
||||
return ((png_size_t)0);
|
||||
}
|
||||
|
||||
/* Replace non-printing characters with a blank and print a warning */
|
||||
for (kp = key, dp = *new_key; *kp != '\0'; kp++, dp++)
|
||||
{
|
||||
if ((png_byte)*kp < 0x20 ||
|
||||
((png_byte)*kp > 0x7E && (png_byte)*kp < 0xA1))
|
||||
{
|
||||
#ifdef PNG_STDIO_SUPPORTED
|
||||
char msg[40];
|
||||
|
||||
png_snprintf(msg, 40,
|
||||
"invalid keyword character 0x%02X", (png_byte)*kp);
|
||||
png_warning(png_ptr, msg);
|
||||
#else
|
||||
png_warning(png_ptr, "invalid character in keyword");
|
||||
#endif
|
||||
*dp = ' ';
|
||||
}
|
||||
else
|
||||
{
|
||||
*dp = *kp;
|
||||
}
|
||||
}
|
||||
*dp = '\0';
|
||||
|
||||
/* Remove any trailing white space. */
|
||||
kp = *new_key + key_len - 1;
|
||||
if (*kp == ' ')
|
||||
{
|
||||
png_warning(png_ptr, "trailing spaces removed from keyword");
|
||||
|
||||
while (*kp == ' ')
|
||||
{
|
||||
*(kp--) = '\0';
|
||||
key_len--;
|
||||
}
|
||||
}
|
||||
|
||||
/* Remove any leading white space. */
|
||||
kp = *new_key;
|
||||
if (*kp == ' ')
|
||||
{
|
||||
png_warning(png_ptr, "leading spaces removed from keyword");
|
||||
|
||||
while (*kp == ' ')
|
||||
{
|
||||
kp++;
|
||||
key_len--;
|
||||
}
|
||||
}
|
||||
|
||||
png_debug1(2, "Checking for multiple internal spaces in '%s'", kp);
|
||||
|
||||
/* Remove multiple internal spaces. */
|
||||
for (kflag = 0, dp = *new_key; *kp != '\0'; kp++)
|
||||
{
|
||||
if (*kp == ' ' && kflag == 0)
|
||||
{
|
||||
*(dp++) = *kp;
|
||||
kflag = 1;
|
||||
}
|
||||
else if (*kp == ' ')
|
||||
{
|
||||
key_len--;
|
||||
kwarn=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
*(dp++) = *kp;
|
||||
kflag = 0;
|
||||
}
|
||||
}
|
||||
*dp = '\0';
|
||||
if (kwarn)
|
||||
png_warning(png_ptr, "extra interior spaces removed from keyword");
|
||||
|
||||
if (key_len == 0)
|
||||
{
|
||||
png_free(png_ptr, *new_key);
|
||||
png_warning(png_ptr, "Zero length keyword");
|
||||
}
|
||||
|
||||
if (key_len > 79)
|
||||
{
|
||||
png_warning(png_ptr, "keyword length must be 1 - 79 characters");
|
||||
(*new_key)[79] = '\0';
|
||||
key_len = 79;
|
||||
}
|
||||
|
||||
return (key_len);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef PNG_WRITE_tEXt_SUPPORTED
|
||||
/* Write a tEXt chunk */
|
||||
void /* PRIVATE */
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
VisualStudio instructions
|
||||
|
||||
libpng version 1.4.17beta03 - October 23, 2015
|
||||
libpng version 1.4.20rc01 - December 27, 2016
|
||||
|
||||
Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
||||
Copyright (c) 2010 Glenn Randers-Pehrson
|
||||
|
||||
This code is released under the libpng license.
|
||||
For conditions of distribution and use, see the disclaimer
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<!--
|
||||
* zlib.props - location of zlib source and build
|
||||
*
|
||||
* libpng version 1.4.17beta03 - October 23, 2015
|
||||
* libpng version 1.4.20rc01 - December 27, 2016
|
||||
*
|
||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||
*
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
Makefiles for libpng version 1.4.17beta03 - October 23, 2015
|
||||
Makefiles for libpng version 1.4.20rc01 - December 27, 2016
|
||||
|
||||
makefile.linux => Linux/ELF makefile
|
||||
(gcc, creates libpng14.so.14.1.4.17beta03)
|
||||
(gcc, creates libpng14.so.14.1.4.20rc01)
|
||||
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
||||
makefile.knr => Archaic UNIX Makefile that converts files with
|
||||
ansi2knr (Requires ansi2knr.c from
|
||||
@@ -20,7 +20,7 @@ Makefiles for libpng version 1.4.17beta03 - October 23, 2015
|
||||
makefile.dec => DEC Alpha UNIX makefile
|
||||
makefile.dj2 => DJGPP 2 makefile
|
||||
makefile.elf => Linux/ELF makefile symbol versioning,
|
||||
(gcc, creates libpng14.so.14.1.4.17beta03)
|
||||
(gcc, creates libpng14.so.14.1.4.20rc01)
|
||||
makefile.freebsd => FreeBSD makefile
|
||||
makefile.gcc => Generic gcc makefile
|
||||
makefile.hpgcc => HPUX makefile using gcc
|
||||
@@ -36,12 +36,12 @@ Makefiles for libpng version 1.4.17beta03 - October 23, 2015
|
||||
makefile.os2 => OS/2 Makefile (gcc and emx, requires pngos2.def)
|
||||
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
||||
makefile.sggcc => Silicon Graphics (gcc,
|
||||
creates libpng14.so.14.1.4.17beta03)
|
||||
creates libpng14.so.14.1.4.20rc01)
|
||||
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
|
||||
makefile.solaris => Solaris 2.X makefile (gcc,
|
||||
creates libpng14.so.14.1.4.17beta03)
|
||||
creates libpng14.so.14.1.4.20rc01)
|
||||
makefile.so9 => Solaris 9 makefile (gcc,
|
||||
creates libpng14.so.14.1.4.17beta03)
|
||||
creates libpng14.so.14.1.4.20rc01)
|
||||
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
||||
makefile.sunos => Sun makefile
|
||||
makefile.32sunu => Sun Ultra 32-bit makefile
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
# Modeled after libxml-config.
|
||||
|
||||
version=1.4.17beta03
|
||||
version=1.4.20rc01
|
||||
prefix=""
|
||||
libdir=""
|
||||
libs=""
|
||||
|
||||
@@ -5,6 +5,6 @@ includedir=@includedir@/libpng14
|
||||
|
||||
Name: libpng
|
||||
Description: Loads and saves PNG files
|
||||
Version: 1.4.17beta03
|
||||
Version: 1.4.20rc01
|
||||
Libs: -L${libdir} -lpng14
|
||||
Cflags: -I${includedir}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
VERMAJ = 1
|
||||
VERMIN = 4
|
||||
VERMIC = 17
|
||||
VERMIC = 20
|
||||
VER = $(VERMAJ).$(VERMIN).$(VERMIC)
|
||||
NAME = libpng
|
||||
PACKAGE = $(NAME)-$(VER)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
# Library name:
|
||||
LIBNAME = libpng14
|
||||
PNGMAJ = 14
|
||||
RELEASE = 17
|
||||
RELEASE = 20
|
||||
|
||||
# Shared library names:
|
||||
LIBSO=$(LIBNAME).so
|
||||
|
||||
@@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include/libpng14
|
||||
|
||||
LIB= png14
|
||||
SHLIB_MAJOR= 0
|
||||
SHLIB_MINOR= 1.4.17beta03
|
||||
SHLIB_MINOR= 1.4.20rc01
|
||||
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
||||
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
||||
pngwtran.c pngmem.c pngerror.c pngpread.c
|
||||
|
||||
@@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include
|
||||
|
||||
LIB= png
|
||||
SHLIB_MAJOR= 3
|
||||
SHLIB_MINOR= 1.4.17beta03
|
||||
SHLIB_MINOR= 1.4.20rc01
|
||||
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
||||
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
||||
pngwtran.c pngmem.c pngerror.c pngpread.c
|
||||
|
||||
@@ -11,7 +11,7 @@ LIBDIR= ${PREFIX}/lib
|
||||
MANDIR= ${PREFIX}/man/cat
|
||||
|
||||
SHLIB_MAJOR= 0
|
||||
SHLIB_MINOR= 1.4.17beta03
|
||||
SHLIB_MINOR= 1.4.20rc01
|
||||
|
||||
LIB= png
|
||||
SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \
|
||||
|
||||
@@ -15,7 +15,7 @@ LIBRARY lpngce
|
||||
png_get_int_32
|
||||
|
||||
EXPORTS
|
||||
;Version 1.4.17beta03
|
||||
;Version 1.4.20rc01
|
||||
png_build_grayscale_palette @1
|
||||
; png_check_sig @2
|
||||
png_chunk_error @3
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
; PNG.LIB module definition file for OS/2
|
||||
;----------------------------------------
|
||||
|
||||
; Version 1.4.17beta03
|
||||
; Version 1.4.20rc01
|
||||
|
||||
LIBRARY PNG
|
||||
DESCRIPTION "PNG image compression library for OS/2"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
LIBRARY
|
||||
|
||||
EXPORTS
|
||||
;Version 1.4.17beta03
|
||||
;Version 1.4.20rc01
|
||||
png_build_grayscale_palette
|
||||
png_chunk_error
|
||||
png_chunk_warning
|
||||
|
||||
Reference in New Issue
Block a user