mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
Compare commits
18 Commits
v1.4.1rc03
...
v1.4.2rc03
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
087ebd80da | ||
|
|
bc9267e3a6 | ||
|
|
a019c335c9 | ||
|
|
ed49c8c1b6 | ||
|
|
2a243fc074 | ||
|
|
47045ce402 | ||
|
|
d6e67586bf | ||
|
|
6e9783bd25 | ||
|
|
8dc3729522 | ||
|
|
7aad4e7fb4 | ||
|
|
930af7d50b | ||
|
|
0f544f62d6 | ||
|
|
398c212955 | ||
|
|
2ec1fc60c3 | ||
|
|
c01ee053b1 | ||
|
|
b0baee5e36 | ||
|
|
b55295cb12 | ||
|
|
5928ee97ca |
95
ANNOUNCE
95
ANNOUNCE
@@ -1,5 +1,5 @@
|
||||
|
||||
Libpng 1.4.1rc03 - February 19, 2010
|
||||
Libpng 1.4.2rc03 - April 24, 2010
|
||||
|
||||
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,91 +9,40 @@ Files available for download:
|
||||
Source files with LF line endings (for Unix/Linux) and with a
|
||||
"configure" script
|
||||
|
||||
1.4.1rc03.tar.xz (LZMA-compressed, recommended)
|
||||
1.4.1rc03.tar.gz
|
||||
1.4.1rc03.tar.bz2
|
||||
1.4.2rc03.tar.xz (LZMA-compressed, recommended)
|
||||
1.4.2rc03.tar.gz
|
||||
1.4.2rc03.tar.bz2
|
||||
|
||||
Source files with CRLF line endings (for Windows), without the
|
||||
"configure" script
|
||||
|
||||
lp141r03.zip
|
||||
lp141r03.7z
|
||||
lp142r03.zip
|
||||
lp142r03.7z
|
||||
|
||||
Other information:
|
||||
|
||||
1.4.1rc03-README.txt
|
||||
1.4.1rc03-LICENSE.txt
|
||||
1.4.2rc03-README.txt
|
||||
1.4.2rc03-LICENSE.txt
|
||||
|
||||
Changes since the last public release (1.4.0):
|
||||
Changes since the last public release (1.4.1):
|
||||
|
||||
version 1.4.1beta01 [January 10, 2010]
|
||||
Updated CMakeLists.txt for consistent indentation and to avoid an
|
||||
unclosed if-statement warning (Philip Lowman).
|
||||
Revised Makefile.am and Makefile.in to remove references to Y2KINFO,
|
||||
KNOWNBUG, and libpng.la (Robert Schwebel).
|
||||
Revised the makefiles to install the same files and symbolic
|
||||
links as configure, except for libpng.la and libpng14.la.
|
||||
Make png_set|get_compression_buffer_size() available even when
|
||||
PNG_WRITE_SUPPORTED is not enabled.
|
||||
Revised Makefile.am and Makefile.in to simplify their maintenance.
|
||||
Revised scripts/makefile.linux to install a link to libpng14.so.14.1
|
||||
version 1.4.2beta01 [April 1, 2010]
|
||||
Restored the macro definition of png_check_sig().
|
||||
Conditionally compile an "else" statement in png_decompress_chunk().
|
||||
|
||||
version 1.4.1beta02 [January 9, 2010]
|
||||
Revised the rest of the makefiles to install a link to libpng14.so.14.1
|
||||
|
||||
version 1.4.1beta03 [January 10, 2010]
|
||||
Removed png_set_premultiply_alpha() from scripts/*.def
|
||||
|
||||
version 1.4.1rc01 [January 16, 2010]
|
||||
version 1.4.2rc01 [April 10, 2010]
|
||||
No changes.
|
||||
|
||||
version 1.4.1beta04 [January 23, 2010]
|
||||
Revised png_decompress_chunk() to improve speed and memory usage when
|
||||
decoding large chunks.
|
||||
Added png_set|get_chunk_malloc_max() functions.
|
||||
version 1.4.2rc02 [April 24, 2010]
|
||||
Documented the fact that png_set_dither() was disabled since libpng-1.4.0.
|
||||
Reenabled png_set_dither() but renamed it to png_set_quantize() to reflect
|
||||
more accurately what it actually does. At the same time, renamed
|
||||
the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros to
|
||||
PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS.
|
||||
|
||||
version 1.4.1beta05 [January 26, 2010]
|
||||
Relocated "int k" declaration in pngtest.c to minimize its scope.
|
||||
|
||||
version 1.4.1beta06 [January 28, 2010]
|
||||
Revised png_decompress_chunk() to use a two-pass method suggested by
|
||||
John Bowler.
|
||||
|
||||
version 1.4.1beta07 [February 6, 2010]
|
||||
Folded some long lines in the source files.
|
||||
Added defineable PNG_USER_CHUNK_CACHE_MAX and PNG_USER_CHUNK_MALLOC_MAX
|
||||
Eliminated use of png_ptr->irowbytes and reused the slot in png_ptr as
|
||||
png_ptr->png_user_chunk_malloc_max.
|
||||
Revised png_push_save_buffer() to do fewer but larger png_malloc() calls.
|
||||
|
||||
version 1.4.1beta08 [February 6, 2010]
|
||||
Minor cleanup and updating of dates and copyright year.
|
||||
|
||||
version 1.4.1beta09 [February 7, 2010]
|
||||
Reverted to original png_push_save_buffer() code.
|
||||
|
||||
version 1.4.1beta10 [February 9, 2010]
|
||||
Return allocated "old_buffer" in png_push_save_buffer() before calling
|
||||
png_error(), to avoid a potential memory leak.
|
||||
|
||||
version 1.4.1beta11 [February 12, 2010]
|
||||
Removed the cbuilder5 project, which has not been updated to 1.4.0.
|
||||
Removed unused "buffer_size" variable from png_decompress_chunk().
|
||||
Relocated misplaced closing curley bracket in png_decompress_chunk().
|
||||
Complete rewrite of two-pass png_decompress_chunk() by John Bowler.
|
||||
|
||||
version 1.4.1beta12 [February 14, 2010]
|
||||
Fixed type declaration of png_get_user_malloc_max() in pngget.c (Daisuke
|
||||
Nishikawa)
|
||||
|
||||
version 1.4.1rc02 [February 18, 2010]
|
||||
No changes.
|
||||
|
||||
version 1.4.1rc03 [February 19, 2010]
|
||||
Noted in scripts/makefile.mingw that it expects to be run under MSYS.
|
||||
Removed obsolete unused MMX-querying support from contrib/gregbook
|
||||
Removed the AIX redefinition of jmpbuf in png.h
|
||||
Define _ALLSOURCE in pngconf.h when building with nonANSI AIX compiler.
|
||||
version 1.4.2rc03 [April 24, 2010]
|
||||
Added some "(long)" typecasts to printf calls in png_handle_cHRM().
|
||||
Relaxed the overly-restrictive permissions of some files.
|
||||
|
||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
||||
(subscription required; visit
|
||||
|
||||
31
CHANGES
31
CHANGES
@@ -2054,7 +2054,10 @@ version 1.4.0beta46 [December 10, 2008]
|
||||
PNG_TRANSFORM_STRIP_FILLER (Jim Barry).
|
||||
|
||||
version 1.4.0beta47 [December 15, 2008]
|
||||
Turned off PNG_READ_DITHER_SUPPORTED by default.
|
||||
Support for dithering was disabled by default, because it has never
|
||||
been well tested and doesn't work very well. The code has not
|
||||
been removed, however, and can be enabled by building libpng with
|
||||
PNG_READ_DITHER_SUPPORTED defined.
|
||||
|
||||
version 1.4.0beta48 [February 14, 2009]
|
||||
Added new exported function png_calloc().
|
||||
@@ -2526,7 +2529,31 @@ version 1.4.1rc03 [February 19, 2010]
|
||||
Noted in scripts/makefile.mingw that it expects to be run under MSYS.
|
||||
Removed obsolete unused MMX-querying support from contrib/gregbook
|
||||
Removed the AIX redefinition of jmpbuf in png.h
|
||||
Define _ALLSOURCE in pngconf.h when building with nonANSI AIX compiler.
|
||||
Define _ALL_SOURCE in configure.ac, makefile.aix, and CMakeLists.txt
|
||||
when using AIX compiler.
|
||||
|
||||
version 1.4.1rc04 [February 19, 2010]
|
||||
Removed unused gzio.c from contrib/pngminim gather and makefile scripts
|
||||
|
||||
version 1.4.1 [February 25, 2010]
|
||||
|
||||
version 1.4.2beta01 [April 1, 2010]
|
||||
Conditionally compile an "else" statement in png_decompress_chunk().
|
||||
Restored the macro definition of png_check_sig().
|
||||
|
||||
version 1.4.2rc01 [April 10, 2010]
|
||||
No changes.
|
||||
|
||||
version 1.4.2rc02 [April 16, 2010]
|
||||
Documented the fact that png_set_dither() was disabled since libpng-1.4.0.
|
||||
Reenabled png_set_dither() but renamed it to png_set_quantize() to reflect
|
||||
more accurately what it actually does. At the same time, renamed
|
||||
the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros to
|
||||
PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS.
|
||||
|
||||
version 1.4.2rc03 [April 24, 2010]
|
||||
Added some "(long)" typecasts to printf calls in png_handle_cHRM().
|
||||
Relaxed the overly-restrictive permissions of some files.
|
||||
|
||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
||||
(subscription required; visit
|
||||
|
||||
@@ -22,7 +22,7 @@ enable_testing()
|
||||
|
||||
set(PNGLIB_MAJOR 1)
|
||||
set(PNGLIB_MINOR 4)
|
||||
set(PNGLIB_RELEASE 1)
|
||||
set(PNGLIB_RELEASE 2)
|
||||
set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR})
|
||||
set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE})
|
||||
|
||||
@@ -125,6 +125,10 @@ set(pngtest_sources
|
||||
|
||||
add_definitions(-DPNG_CONFIGURE_LIBPNG)
|
||||
|
||||
if(_AIX)
|
||||
add_definitions(-D_ALL_SOURCE)
|
||||
endif(_AIX)
|
||||
|
||||
if(MSVC)
|
||||
add_definitions(-DPNG_NO_MODULEDEF -D_CRT_SECURE_NO_DEPRECATE)
|
||||
endif(MSVC)
|
||||
@@ -209,7 +213,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in
|
||||
# SET UP LINKS
|
||||
if(PNG_SHARED)
|
||||
set_target_properties(${PNG_LIB_NAME} PROPERTIES
|
||||
# VERSION 14.${PNGLIB_RELEASE}.1.4.1rc03
|
||||
# VERSION 14.${PNGLIB_RELEASE}.1.4.2rc03
|
||||
VERSION 14.${PNGLIB_RELEASE}.0
|
||||
SOVERSION 14
|
||||
CLEAN_DIRECT_OUTPUT 1)
|
||||
|
||||
4
INSTALL
4
INSTALL
@@ -1,5 +1,5 @@
|
||||
|
||||
Installing libpng version 1.4.1rc03 - February 19, 2010
|
||||
Installing libpng version 1.4.2rc03 - April 24, 2010
|
||||
|
||||
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.1rc03" or "libpng14" and "zlib-1.2.3"
|
||||
might be called "libpng-1.4.2rc03" 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:
|
||||
|
||||
4
LICENSE
4
LICENSE
@@ -10,7 +10,7 @@ this sentence.
|
||||
|
||||
This code is released under the libpng license.
|
||||
|
||||
libpng versions 1.2.6, August 15, 2004, through 1.4.1rc03, February 19, 2010, are
|
||||
libpng versions 1.2.6, August 15, 2004, through 1.4.2rc03, April 24, 2010, are
|
||||
Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are
|
||||
distributed according to the same disclaimer and license as libpng-1.2.5
|
||||
with the following individual added to the list of Contributing Authors
|
||||
@@ -108,4 +108,4 @@ certification mark of the Open Source Initiative.
|
||||
|
||||
Glenn Randers-Pehrson
|
||||
glennrp at users.sourceforge.net
|
||||
February 19, 2010
|
||||
April 24, 2010
|
||||
|
||||
@@ -73,7 +73,7 @@ EXTRA_DIST= \
|
||||
${srcdir}/contrib/pngsuite/* \
|
||||
${srcdir}/contrib/visupng/* \
|
||||
$(TESTS) \
|
||||
example.c libpng-1.4.1rc03.txt
|
||||
example.c libpng-1.4.2rc03.txt
|
||||
|
||||
CLEANFILES= pngout.png libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config libpng.vers \
|
||||
libpng.sym
|
||||
|
||||
@@ -333,7 +333,7 @@ EXTRA_DIST = \
|
||||
${srcdir}/contrib/pngsuite/* \
|
||||
${srcdir}/contrib/visupng/* \
|
||||
$(TESTS) \
|
||||
example.c libpng-1.4.1rc03.txt
|
||||
example.c libpng-1.4.2rc03.txt
|
||||
|
||||
CLEANFILES = pngout.png libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config libpng.vers \
|
||||
libpng.sym
|
||||
|
||||
12
README
12
README
@@ -1,4 +1,4 @@
|
||||
README for libpng version 1.4.1rc03 - February 19, 2010 (shared library 14.0)
|
||||
README for libpng version 1.4.2rc03 - April 24, 2010 (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.
|
||||
@@ -185,9 +185,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.1rc03)
|
||||
gcc, creates libpng14.so.14.1.4.2rc03)
|
||||
makefile.linux => Linux/ELF makefile
|
||||
(gcc, creates libpng14.so.14.1.4.1rc03)
|
||||
(gcc, creates libpng14.so.14.1.4.2rc03)
|
||||
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
||||
makefile.knr => Archaic UNIX Makefile that converts files with
|
||||
ansi2knr (Requires ansi2knr.c from
|
||||
@@ -209,12 +209,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.1rc03)
|
||||
(gcc, creates libpng14.so.14.1.4.2rc03)
|
||||
makefile.sunos => Sun makefile
|
||||
makefile.solaris => Solaris 2.X makefile
|
||||
(gcc, creates libpng14.so.14.1.4.1rc03)
|
||||
(gcc, creates libpng14.so.14.1.4.2rc03)
|
||||
makefile.so9 => Solaris 9 makefile
|
||||
(gcc, creates libpng14.so.14.1.4.1rc03)
|
||||
(gcc, creates libpng14.so.14.1.4.2rc03)
|
||||
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
|
||||
|
||||
2
TODO
2
TODO
@@ -9,7 +9,7 @@ Fix problem with C++ and EXTERN "C".
|
||||
cHRM transformation.
|
||||
Improve setjmp/longjmp usage or remove it in favor of returning error codes.
|
||||
Add "grayscale->palette" transformation and "palette->grayscale" detection.
|
||||
Improved dithering.
|
||||
Improved quantizing and dithering.
|
||||
Multi-lingual error and warning message support.
|
||||
Complete sRGB transformation (presently it simply uses gamma=0.45455).
|
||||
Man pages for function calls.
|
||||
|
||||
31
configure
vendored
31
configure
vendored
@@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.65 for libpng 1.4.1rc03.
|
||||
# Generated by GNU Autoconf 2.65 for libpng 1.4.2rc03.
|
||||
#
|
||||
# Report bugs to <png-mng-implement@lists.sourceforge.net>.
|
||||
#
|
||||
@@ -701,8 +701,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='libpng'
|
||||
PACKAGE_TARNAME='libpng'
|
||||
PACKAGE_VERSION='1.4.1rc03'
|
||||
PACKAGE_STRING='libpng 1.4.1rc03'
|
||||
PACKAGE_VERSION='1.4.2rc03'
|
||||
PACKAGE_STRING='libpng 1.4.2rc03'
|
||||
PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net'
|
||||
PACKAGE_URL=''
|
||||
|
||||
@@ -1432,7 +1432,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.1rc03 to adapt to many kinds of systems.
|
||||
\`configure' configures libpng 1.4.2rc03 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@@ -1502,7 +1502,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of libpng 1.4.1rc03:";;
|
||||
short | recursive ) echo "Configuration of libpng 1.4.2rc03:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@@ -1607,7 +1607,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
libpng configure 1.4.1rc03
|
||||
libpng configure 1.4.2rc03
|
||||
generated by GNU Autoconf 2.65
|
||||
|
||||
Copyright (C) 2009 Free Software Foundation, Inc.
|
||||
@@ -2032,7 +2032,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.1rc03, which was
|
||||
It was created by libpng $as_me 1.4.2rc03, which was
|
||||
generated by GNU Autoconf 2.65. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@@ -2840,7 +2840,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='libpng'
|
||||
VERSION='1.4.1rc03'
|
||||
VERSION='1.4.2rc03'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@@ -2904,10 +2904,10 @@ fi
|
||||
|
||||
|
||||
|
||||
PNGLIB_VERSION=1.4.1rc03
|
||||
PNGLIB_VERSION=1.4.2rc03
|
||||
PNGLIB_MAJOR=1
|
||||
PNGLIB_MINOR=4
|
||||
PNGLIB_RELEASE=1
|
||||
PNGLIB_RELEASE=2
|
||||
|
||||
|
||||
|
||||
@@ -11415,7 +11415,12 @@ else
|
||||
fi
|
||||
|
||||
|
||||
LIBPNG_DEFINES=-DPNG_CONFIGURE_LIBPNG
|
||||
case $host_os in
|
||||
aix*)
|
||||
LIBPNG_DEFINES=-DPNG_CONFIGURE_LIBPNG -D_ALL_SOURCE;;
|
||||
*)
|
||||
LIBPNG_DEFINES=-DPNG_CONFIGURE_LIBPNG;;
|
||||
esac
|
||||
LIBPNG_DEFINES=$LIBPNG_DEFINES
|
||||
|
||||
|
||||
@@ -12027,7 +12032,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.1rc03, which was
|
||||
This file was extended by libpng $as_me 1.4.2rc03, which was
|
||||
generated by GNU Autoconf 2.65. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@@ -12093,7 +12098,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.1rc03
|
||||
libpng config.status 1.4.2rc03
|
||||
configured by $0, generated by GNU Autoconf 2.65,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
||||
13
configure.ac
13
configure.ac
@@ -18,15 +18,15 @@ AC_PREREQ(2.59)
|
||||
|
||||
dnl Version number stuff here:
|
||||
|
||||
AC_INIT([libpng], [1.4.1rc03], [png-mng-implement@lists.sourceforge.net])
|
||||
AC_INIT([libpng], [1.4.2rc03], [png-mng-implement@lists.sourceforge.net])
|
||||
AM_INIT_AUTOMAKE
|
||||
dnl stop configure from automagically running automake
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
PNGLIB_VERSION=1.4.1rc03
|
||||
PNGLIB_VERSION=1.4.2rc03
|
||||
PNGLIB_MAJOR=1
|
||||
PNGLIB_MINOR=4
|
||||
PNGLIB_RELEASE=1
|
||||
PNGLIB_RELEASE=2
|
||||
|
||||
dnl End of version number stuff
|
||||
|
||||
@@ -59,7 +59,12 @@ AC_CHECK_FUNCS([memset], , AC_ERROR([memset not found in libc]))
|
||||
AC_CHECK_FUNCS([pow], , AC_CHECK_LIB(m, pow, , AC_ERROR([cannot find pow])) )
|
||||
AC_CHECK_LIB(z, zlibVersion, , AC_ERROR([zlib not installed]))
|
||||
|
||||
LIBPNG_DEFINES=-DPNG_CONFIGURE_LIBPNG
|
||||
case $host_os in
|
||||
aix*)
|
||||
LIBPNG_DEFINES=-DPNG_CONFIGURE_LIBPNG -D_ALL_SOURCE;;
|
||||
*)
|
||||
LIBPNG_DEFINES=-DPNG_CONFIGURE_LIBPNG;;
|
||||
esac
|
||||
LIBPNG_DEFINES=$LIBPNG_DEFINES
|
||||
AC_SUBST(LIBPNG_DEFINES)
|
||||
|
||||
|
||||
@@ -5,4 +5,4 @@ rm example.c pngtest.c pngpread.c pngw*.c
|
||||
# change the following 2 lines if zlib is somewhere else
|
||||
cp ../../../../zlib/*.h .
|
||||
cp ../../../../zlib/*.c .
|
||||
rm minigzip.c example.c compress.c deflate.c
|
||||
rm minigzip.c example.c compress.c deflate.c gz*
|
||||
|
||||
@@ -15,7 +15,7 @@ O=.o
|
||||
L=.a
|
||||
E=
|
||||
|
||||
ZOBJS = adler32$(O) crc32$(O) gzio$(O) \
|
||||
ZOBJS = adler32$(O) crc32$(O) \
|
||||
infback$(O) inffast$(O) inflate$(O) inftrees$(O) \
|
||||
trees$(O) uncompr$(O) zutil$(O)
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
#define PNG_NO_READ_GAMMA
|
||||
#define PNG_NO_READ_BACKGROUND
|
||||
#define PNG_NO_READ_DITHER
|
||||
#define PNG_NO_READ_QUANTIZE
|
||||
#define PNG_NO_READ_INVERT
|
||||
#define PNG_NO_READ_SHIFT
|
||||
#define PNG_NO_READ_PACK
|
||||
|
||||
@@ -6,4 +6,4 @@ rm example.c pngtest.c pngr*.c pngpread.c
|
||||
cp ../../../../zlib/*.h .
|
||||
cp ../../../../zlib/*.c .
|
||||
rm inf*.[ch]
|
||||
rm minigzip.c example.c
|
||||
rm minigzip.c example.c gz*
|
||||
|
||||
@@ -14,7 +14,7 @@ O=.o
|
||||
L=.a
|
||||
E=
|
||||
|
||||
ZOBJS = adler32$(O) compress$(O) crc32$(O) deflate$(O) gzio$(O) \
|
||||
ZOBJS = adler32$(O) compress$(O) crc32$(O) deflate$(O) \
|
||||
dummy_inflate$(O) \
|
||||
trees$(O) uncompr$(O) zutil$(O)
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
#define PNG_NO_WRITE_BACKGROUND
|
||||
#define PNG_NO_WRITE_GAMMA
|
||||
#define PNG_NO_WRITE_DITHER
|
||||
#define PNG_NO_WRITE_QUANTIZE
|
||||
#define PNG_NO_WRITE_INVERT
|
||||
#define PNG_NO_WRITE_SHIFT
|
||||
#define PNG_NO_WRITE_PACK
|
||||
|
||||
@@ -6,4 +6,4 @@ rm example.c pngtest.c pngw*.c
|
||||
# change the following 2 lines if zlib is somewhere else
|
||||
cp ../../../../zlib/*.h .
|
||||
cp ../../../../zlib/*.c .
|
||||
rm minigzip.c example.c compress.c deflate.c
|
||||
rm minigzip.c example.c compress.c deflate.c gz*
|
||||
|
||||
@@ -31,7 +31,7 @@ O=.o
|
||||
L=.a
|
||||
E=
|
||||
|
||||
ZOBJS = adler32$(O) crc32$(O) gzio$(O) \
|
||||
ZOBJS = adler32$(O) crc32$(O) \
|
||||
infback$(O) inffast$(O) inflate$(O) inftrees$(O) \
|
||||
trees$(O) uncompr$(O) zutil$(O)
|
||||
|
||||
|
||||
15
example.c
15
example.c
@@ -2,7 +2,7 @@
|
||||
#if 0 /* in case someone actually tries to compile this */
|
||||
|
||||
/* example.c - an example of using libpng
|
||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
||||
* Last changed in libpng 1.4.2 [April 24, 2010]
|
||||
* This file has been placed in the public domain by the authors.
|
||||
* Maintained 1998-2010 Glenn Randers-Pehrson
|
||||
* Maintained 1996, 1997 Andreas Dilger)
|
||||
@@ -160,7 +160,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
|
||||
* If you have enough memory to read in the entire image at once,
|
||||
* and you need to specify only transforms that can be controlled
|
||||
* with one of the PNG_TRANSFORM_* bits (this presently excludes
|
||||
* dithering, filling, setting background, and doing gamma
|
||||
* quantizing, filling, setting background, and doing gamma
|
||||
* adjustment), then you can read the entire image (including
|
||||
* pixels) into the info structure with this call:
|
||||
*/
|
||||
@@ -271,7 +271,8 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
|
||||
png_set_gamma(png_ptr, screen_gamma, 0.45455);
|
||||
}
|
||||
|
||||
/* Dither RGB files down to 8 bit palette or reduce palettes
|
||||
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||
/* Quantize RGB files down to 8 bit palette or reduce palettes
|
||||
* to the number of colors available on your screen.
|
||||
*/
|
||||
if (color_type & PNG_COLOR_MASK_COLOR)
|
||||
@@ -282,10 +283,11 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
|
||||
/* This reduces the image to the application supplied palette */
|
||||
if (/* We have our own palette */)
|
||||
{
|
||||
/* An array of colors to which the image should be dithered */
|
||||
/* An array of colors to which the image should be quantized */
|
||||
png_color std_color_cube[MAX_SCREEN_COLORS];
|
||||
|
||||
png_set_dither(png_ptr, std_color_cube, MAX_SCREEN_COLORS,
|
||||
/* Prior to libpng-1.4.2, this was png_set_dither(). */
|
||||
png_set_quantize(png_ptr, std_color_cube, MAX_SCREEN_COLORS,
|
||||
MAX_SCREEN_COLORS, NULL, 0);
|
||||
}
|
||||
/* This reduces the image to the palette supplied in the file */
|
||||
@@ -295,10 +297,11 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
|
||||
|
||||
png_get_hIST(png_ptr, info_ptr, &histogram);
|
||||
|
||||
png_set_dither(png_ptr, palette, num_palette,
|
||||
png_set_quantize(png_ptr, palette, num_palette,
|
||||
max_screen_colors, histogram, 0);
|
||||
}
|
||||
}
|
||||
#endif /* PNG_READ_QUANTIZE_SUPPORTED */
|
||||
|
||||
/* Invert monochrome files to have 0 as white and 1 as black */
|
||||
png_set_invert_mono(png_ptr);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
libpng.txt - A description on how to use and modify libpng
|
||||
|
||||
libpng version 1.4.1rc03 - February 19, 2010
|
||||
libpng version 1.4.2rc03 - April 24, 2010
|
||||
Updated and distributed by Glenn Randers-Pehrson
|
||||
<glennrp at users.sourceforge.net>
|
||||
Copyright (c) 1998-2009 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.1rc03 - February 19, 2010
|
||||
libpng versions 0.97, January 1998, through 1.4.2rc03 - April 24, 2010
|
||||
Updated and distributed by Glenn Randers-Pehrson
|
||||
Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||
|
||||
@@ -241,9 +241,13 @@ free any memory.
|
||||
}
|
||||
|
||||
If you would rather avoid the complexity of setjmp/longjmp issues,
|
||||
you can compile libpng with PNG_SETJMP_NOT_SUPPORTED, in which case
|
||||
you can compile libpng with PNG_NO_SETJMP, in which case
|
||||
errors will result in a call to PNG_ABORT() which defaults to abort().
|
||||
|
||||
You can #define PNG_ABORT() to a function that does something
|
||||
more useful than abort(), as long as your function does not
|
||||
return.
|
||||
|
||||
Now you need to set up the input code. The default for libpng is to
|
||||
use the C function fread(). If you use this, you will need to pass a
|
||||
valid FILE * in the function png_init_io(). Be sure that the file is
|
||||
@@ -475,7 +479,7 @@ you want to do are limited to the following set:
|
||||
to RGB (or GA to RGBA)
|
||||
|
||||
(This excludes setting a background color, doing gamma transformation,
|
||||
dithering, and setting filler.) If this is the case, simply do this:
|
||||
quantizing, and setting filler.) If this is the case, simply do this:
|
||||
|
||||
png_read_png(png_ptr, info_ptr, png_transforms, NULL)
|
||||
|
||||
@@ -899,7 +903,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.1rc03, not all possible expansions are supported.
|
||||
As of libpng version 1.4.2rc03, 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
|
||||
@@ -1159,6 +1163,40 @@ recommended that PNG viewers support gamma correction.
|
||||
else
|
||||
png_set_gamma(png_ptr, screen_gamma, 0.45455);
|
||||
|
||||
If you need to reduce an RGB file to a paletted file, or if a paletted
|
||||
file has more entries then will fit on your screen, png_set_quantize()
|
||||
will do that. Note that this is a simple match dither that merely
|
||||
finds the closest color available. This should work fairly well with
|
||||
optimized palettes, and fairly badly with linear color cubes. If you
|
||||
pass a palette that is larger then maximum_colors, the file will
|
||||
reduce the number of colors in the palette so it will fit into
|
||||
maximum_colors. If there is a histogram, it will use it to make
|
||||
more intelligent choices when reducing the palette. If there is no
|
||||
histogram, it may not do as good a job.
|
||||
|
||||
if (color_type & PNG_COLOR_MASK_COLOR)
|
||||
{
|
||||
if (png_get_valid(png_ptr, info_ptr,
|
||||
PNG_INFO_PLTE))
|
||||
{
|
||||
png_uint_16p histogram = NULL;
|
||||
|
||||
png_get_hIST(png_ptr, info_ptr,
|
||||
&histogram);
|
||||
png_set_quantize(png_ptr, palette, num_palette,
|
||||
max_screen_colors, histogram, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
png_color std_color_cube[MAX_SCREEN_COLORS] =
|
||||
{ ... colors ... };
|
||||
|
||||
png_set_quantize(png_ptr, std_color_cube,
|
||||
MAX_SCREEN_COLORS, MAX_SCREEN_COLORS,
|
||||
NULL,0);
|
||||
}
|
||||
}
|
||||
|
||||
PNG files describe monochrome as black being zero and white being one.
|
||||
The following code will reverse this (make black be one and white be
|
||||
zero):
|
||||
@@ -1688,9 +1726,13 @@ section below for more information on the libpng error handling.
|
||||
return;
|
||||
|
||||
If you would rather avoid the complexity of setjmp/longjmp issues,
|
||||
you can compile libpng with PNG_SETJMP_NOT_SUPPORTED, in which case
|
||||
you can compile libpng with PNG_NO_SETJMP, in which case
|
||||
errors will result in a call to PNG_ABORT() which defaults to abort().
|
||||
|
||||
You can #define PNG_ABORT() to a function that does something
|
||||
more useful than abort(), as long as your function does not
|
||||
return.
|
||||
|
||||
Now you need to set up the output code. The default for libpng is to
|
||||
use the C function fwrite(). If you use this, you will need to pass a
|
||||
valid FILE * in the function png_init_io(). Be sure that the file is
|
||||
@@ -2551,8 +2593,9 @@ Error handling in libpng is done through png_error() and png_warning().
|
||||
Errors handled through png_error() are fatal, meaning that png_error()
|
||||
should never return to its caller. Currently, this is handled via
|
||||
setjmp() and longjmp() (unless you have compiled libpng with
|
||||
PNG_SETJMP_NOT_SUPPORTED, in which case it is handled via PNG_ABORT()),
|
||||
but you could change this to do things like exit() if you should wish.
|
||||
PNG_NO_SETJMP, in which case it is handled via PNG_ABORT()),
|
||||
but you could change this to do things like exit() if you should wish,
|
||||
as long as your function does not return.
|
||||
|
||||
On non-fatal errors, png_warning() is called
|
||||
to print a warning message, and then control returns to the calling code.
|
||||
@@ -3105,6 +3148,15 @@ The png_zalloc() and png_zfree() functions are no longer exported.
|
||||
The png_zalloc() function no longer zeroes out the memory that it
|
||||
allocates.
|
||||
|
||||
Support for dithering was disabled by default in libpng-1.4.0, because
|
||||
been well tested and doesn't actually "dither". The code was not
|
||||
removed, however, and could be enabled by building libpng with
|
||||
PNG_READ_DITHER_SUPPORTED defined. In libpng-1.4.2, this support
|
||||
was reenabled, but the function was renamed png_set_quantize() to
|
||||
reflect more accurately what it actually does. At the same time,
|
||||
the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros were also renamed to
|
||||
PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS.
|
||||
|
||||
We removed the trailing '.' from the warning and error messages.
|
||||
|
||||
X. Detecting libpng
|
||||
@@ -3174,12 +3226,12 @@ the statement that follows the comment:
|
||||
/* Single-line comment */
|
||||
statement;
|
||||
|
||||
/* Multiple-line
|
||||
* comment
|
||||
/* This is a multiple-line
|
||||
* comment.
|
||||
*/
|
||||
statement;
|
||||
|
||||
Very short comments can be placed at the end of the statement
|
||||
Very short comments can be placed after the end of the statement
|
||||
to which they pertain:
|
||||
|
||||
statement; /* comment */
|
||||
@@ -3226,9 +3278,9 @@ macros begin with "PNG_".
|
||||
|
||||
We put a space after each comma and after each semicolon
|
||||
in "for" statments, and we put spaces before and after each
|
||||
C binary operator and after "for" or "while". We don't
|
||||
put a space between a typecast and the expression being
|
||||
cast, nor do we put one between a function name and the
|
||||
C binary operator and after "for" or "while", and before
|
||||
"?". We don't put a space between a typecast and the expression
|
||||
being cast, nor do we put one between a function name and the
|
||||
left parenthesis that follows it:
|
||||
|
||||
for (i = 2; i > 0; --i)
|
||||
@@ -3245,13 +3297,13 @@ Other rules can be inferred by inspecting the libpng source.
|
||||
|
||||
XIII. Y2K Compliance in libpng
|
||||
|
||||
February 19, 2010
|
||||
April 24, 2010
|
||||
|
||||
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.1rc03 are Y2K compliant. It is my belief that earlier
|
||||
upward through 1.4.2rc03 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
|
||||
106
libpng.3
106
libpng.3
@@ -1,6 +1,6 @@
|
||||
.TH LIBPNG 3 "February 19, 2010"
|
||||
.TH LIBPNG 3 "April 24, 2010"
|
||||
.SH NAME
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.4.1rc03
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.4.2rc03
|
||||
.SH SYNOPSIS
|
||||
\fI\fB
|
||||
|
||||
@@ -454,10 +454,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.4.1rc03
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_set_dither (png_structp \fP\fIpng_ptr\fP\fB, png_colorp \fP\fIpalette\fP\fB, int \fP\fInum_palette\fP\fB, int \fP\fImaximum_colors\fP\fB, png_uint_16p \fP\fIhistogram\fP\fB, int \fIfull_dither\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_set_error_fn (png_structp \fP\fIpng_ptr\fP\fB, png_voidp \fP\fIerror_ptr\fP\fB, png_error_ptr \fP\fIerror_fn\fP\fB, png_error_ptr \fIwarning_fn\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
@@ -582,6 +578,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.4.1rc03
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_set_quantize (png_structp \fP\fIpng_ptr\fP\fB, png_colorp \fP\fIpalette\fP\fB, int \fP\fInum_palette\fP\fB, int \fP\fImaximum_colors\fP\fB, png_uint_16p \fP\fIhistogram\fP\fB, int \fIfull_quantize\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_set_read_fn (png_structp \fP\fIpng_ptr\fP\fB, png_voidp \fP\fIio_ptr\fP\fB, png_rw_ptr \fIread_data_fn\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
@@ -785,7 +785,7 @@ Following is a copy of the libpng.txt file that accompanies libpng.
|
||||
.SH LIBPNG.TXT
|
||||
libpng.txt - A description on how to use and modify libpng
|
||||
|
||||
libpng version 1.4.1rc03 - February 19, 2010
|
||||
libpng version 1.4.2rc03 - April 24, 2010
|
||||
Updated and distributed by Glenn Randers-Pehrson
|
||||
<glennrp at users.sourceforge.net>
|
||||
Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||
@@ -796,7 +796,7 @@ libpng.txt - A description on how to use and modify libpng
|
||||
|
||||
Based on:
|
||||
|
||||
libpng versions 0.97, January 1998, through 1.4.1rc03 - February 19, 2010
|
||||
libpng versions 0.97, January 1998, through 1.4.2rc03 - April 24, 2010
|
||||
Updated and distributed by Glenn Randers-Pehrson
|
||||
Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
||||
|
||||
@@ -1026,9 +1026,13 @@ free any memory.
|
||||
}
|
||||
|
||||
If you would rather avoid the complexity of setjmp/longjmp issues,
|
||||
you can compile libpng with PNG_SETJMP_NOT_SUPPORTED, in which case
|
||||
you can compile libpng with PNG_NO_SETJMP, in which case
|
||||
errors will result in a call to PNG_ABORT() which defaults to abort().
|
||||
|
||||
You can #define PNG_ABORT() to a function that does something
|
||||
more useful than abort(), as long as your function does not
|
||||
return.
|
||||
|
||||
Now you need to set up the input code. The default for libpng is to
|
||||
use the C function fread(). If you use this, you will need to pass a
|
||||
valid FILE * in the function png_init_io(). Be sure that the file is
|
||||
@@ -1260,7 +1264,7 @@ you want to do are limited to the following set:
|
||||
to RGB (or GA to RGBA)
|
||||
|
||||
(This excludes setting a background color, doing gamma transformation,
|
||||
dithering, and setting filler.) If this is the case, simply do this:
|
||||
quantizing, and setting filler.) If this is the case, simply do this:
|
||||
|
||||
png_read_png(png_ptr, info_ptr, png_transforms, NULL)
|
||||
|
||||
@@ -1684,7 +1688,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.1rc03, not all possible expansions are supported.
|
||||
As of libpng version 1.4.2rc03, 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
|
||||
@@ -1944,6 +1948,40 @@ recommended that PNG viewers support gamma correction.
|
||||
else
|
||||
png_set_gamma(png_ptr, screen_gamma, 0.45455);
|
||||
|
||||
If you need to reduce an RGB file to a paletted file, or if a paletted
|
||||
file has more entries then will fit on your screen, png_set_quantize()
|
||||
will do that. Note that this is a simple match dither that merely
|
||||
finds the closest color available. This should work fairly well with
|
||||
optimized palettes, and fairly badly with linear color cubes. If you
|
||||
pass a palette that is larger then maximum_colors, the file will
|
||||
reduce the number of colors in the palette so it will fit into
|
||||
maximum_colors. If there is a histogram, it will use it to make
|
||||
more intelligent choices when reducing the palette. If there is no
|
||||
histogram, it may not do as good a job.
|
||||
|
||||
if (color_type & PNG_COLOR_MASK_COLOR)
|
||||
{
|
||||
if (png_get_valid(png_ptr, info_ptr,
|
||||
PNG_INFO_PLTE))
|
||||
{
|
||||
png_uint_16p histogram = NULL;
|
||||
|
||||
png_get_hIST(png_ptr, info_ptr,
|
||||
&histogram);
|
||||
png_set_quantize(png_ptr, palette, num_palette,
|
||||
max_screen_colors, histogram, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
png_color std_color_cube[MAX_SCREEN_COLORS] =
|
||||
{ ... colors ... };
|
||||
|
||||
png_set_quantize(png_ptr, std_color_cube,
|
||||
MAX_SCREEN_COLORS, MAX_SCREEN_COLORS,
|
||||
NULL,0);
|
||||
}
|
||||
}
|
||||
|
||||
PNG files describe monochrome as black being zero and white being one.
|
||||
The following code will reverse this (make black be one and white be
|
||||
zero):
|
||||
@@ -2473,9 +2511,13 @@ section below for more information on the libpng error handling.
|
||||
return;
|
||||
|
||||
If you would rather avoid the complexity of setjmp/longjmp issues,
|
||||
you can compile libpng with PNG_SETJMP_NOT_SUPPORTED, in which case
|
||||
you can compile libpng with PNG_NO_SETJMP, in which case
|
||||
errors will result in a call to PNG_ABORT() which defaults to abort().
|
||||
|
||||
You can #define PNG_ABORT() to a function that does something
|
||||
more useful than abort(), as long as your function does not
|
||||
return.
|
||||
|
||||
Now you need to set up the output code. The default for libpng is to
|
||||
use the C function fwrite(). If you use this, you will need to pass a
|
||||
valid FILE * in the function png_init_io(). Be sure that the file is
|
||||
@@ -3336,8 +3378,9 @@ Error handling in libpng is done through png_error() and png_warning().
|
||||
Errors handled through png_error() are fatal, meaning that png_error()
|
||||
should never return to its caller. Currently, this is handled via
|
||||
setjmp() and longjmp() (unless you have compiled libpng with
|
||||
PNG_SETJMP_NOT_SUPPORTED, in which case it is handled via PNG_ABORT()),
|
||||
but you could change this to do things like exit() if you should wish.
|
||||
PNG_NO_SETJMP, in which case it is handled via PNG_ABORT()),
|
||||
but you could change this to do things like exit() if you should wish,
|
||||
as long as your function does not return.
|
||||
|
||||
On non-fatal errors, png_warning() is called
|
||||
to print a warning message, and then control returns to the calling code.
|
||||
@@ -3890,6 +3933,15 @@ The png_zalloc() and png_zfree() functions are no longer exported.
|
||||
The png_zalloc() function no longer zeroes out the memory that it
|
||||
allocates.
|
||||
|
||||
Support for dithering was disabled by default in libpng-1.4.0, because
|
||||
been well tested and doesn't actually "dither". The code was not
|
||||
removed, however, and could be enabled by building libpng with
|
||||
PNG_READ_DITHER_SUPPORTED defined. In libpng-1.4.2, this support
|
||||
was reenabled, but the function was renamed png_set_quantize() to
|
||||
reflect more accurately what it actually does. At the same time,
|
||||
the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros were also renamed to
|
||||
PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS.
|
||||
|
||||
We removed the trailing '.' from the warning and error messages.
|
||||
|
||||
.SH X. Detecting libpng
|
||||
@@ -3959,12 +4011,12 @@ the statement that follows the comment:
|
||||
/* Single-line comment */
|
||||
statement;
|
||||
|
||||
/* Multiple-line
|
||||
* comment
|
||||
/* This is a multiple-line
|
||||
* comment.
|
||||
*/
|
||||
statement;
|
||||
|
||||
Very short comments can be placed at the end of the statement
|
||||
Very short comments can be placed after the end of the statement
|
||||
to which they pertain:
|
||||
|
||||
statement; /* comment */
|
||||
@@ -4011,9 +4063,9 @@ macros begin with "PNG_".
|
||||
|
||||
We put a space after each comma and after each semicolon
|
||||
in "for" statments, and we put spaces before and after each
|
||||
C binary operator and after "for" or "while". We don't
|
||||
put a space between a typecast and the expression being
|
||||
cast, nor do we put one between a function name and the
|
||||
C binary operator and after "for" or "while", and before
|
||||
"?". We don't put a space between a typecast and the expression
|
||||
being cast, nor do we put one between a function name and the
|
||||
left parenthesis that follows it:
|
||||
|
||||
for (i = 2; i > 0; --i)
|
||||
@@ -4030,13 +4082,13 @@ Other rules can be inferred by inspecting the libpng source.
|
||||
|
||||
.SH XIII. Y2K Compliance in libpng
|
||||
|
||||
February 19, 2010
|
||||
April 24, 2010
|
||||
|
||||
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.1rc03 are Y2K compliant. It is my belief that earlier
|
||||
upward through 1.4.2rc03 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
|
||||
@@ -4212,7 +4264,9 @@ the first widely used release:
|
||||
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-03 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-03 14 10402 14.so.14.2[.0]
|
||||
|
||||
Henceforth the source version will match the shared-library minor
|
||||
and patch numbers; the shared-library major version number will be
|
||||
@@ -4268,7 +4322,7 @@ possible without all of you.
|
||||
|
||||
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
||||
|
||||
Libpng version 1.4.1rc03 - February 19, 2010:
|
||||
Libpng version 1.4.2rc03 - April 24, 2010:
|
||||
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
||||
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
|
||||
|
||||
@@ -4291,7 +4345,7 @@ this sentence.
|
||||
|
||||
This code is released under the libpng license.
|
||||
|
||||
libpng versions 1.2.6, August 15, 2004, through 1.4.1rc03, February 19, 2010, are
|
||||
libpng versions 1.2.6, August 15, 2004, through 1.4.2rc03, April 24, 2010, are
|
||||
Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
|
||||
distributed according to the same disclaimer and license as libpng-1.2.5
|
||||
with the following individual added to the list of Contributing Authors
|
||||
@@ -4390,7 +4444,7 @@ certification mark of the Open Source Initiative.
|
||||
|
||||
Glenn Randers-Pehrson
|
||||
glennrp at users.sourceforge.net
|
||||
February 19, 2010
|
||||
April 24, 2010
|
||||
|
||||
.\" end of man page
|
||||
|
||||
|
||||
18
libpngpf.3
18
libpngpf.3
@@ -1,6 +1,6 @@
|
||||
.TH LIBPNGPF 3 "February 19, 2010"
|
||||
.TH LIBPNGPF 3 "April 24, 2010"
|
||||
.SH NAME
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.4.1rc03
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.4.2rc03
|
||||
(private functions)
|
||||
.SH SYNOPSIS
|
||||
\fB#include <png.h>\fP
|
||||
@@ -145,14 +145,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.4.1rc03
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_do_dither (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_bytep \fP\fIpalette_lookup\fP\fB, png_bytep \fIdither_lookup\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_do_expand (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_color_16p \fItrans_value\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
@@ -195,6 +187,12 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.4.1rc03
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_do_quantize (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_bytep \fP\fIpalette_lookup\fP\fB, png_bytep \fIquantize_lookup\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_do_read_filler (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_uint_32 \fP\fIfiller\fP\fB, png_uint_32 \fIflags\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
2
png.5
2
png.5
@@ -1,4 +1,4 @@
|
||||
.TH PNG 5 "February 19, 2010"
|
||||
.TH PNG 5 "April 24, 2010"
|
||||
.SH NAME
|
||||
png \- Portable Network Graphics (PNG) format
|
||||
.SH DESCRIPTION
|
||||
|
||||
8
png.c
8
png.c
@@ -1,7 +1,7 @@
|
||||
|
||||
/* png.c - location for general purpose libpng functions
|
||||
*
|
||||
* Last changed in libpng 1.4.1 [February 19, 2010]
|
||||
* Last changed in libpng 1.4.1 [February 25, 2010]
|
||||
* Copyright (c) 1998-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.)
|
||||
@@ -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_1rc03 Your_png_h_is_not_version_1_4_1rc03;
|
||||
typedef version_1_4_2rc03 Your_png_h_is_not_version_1_4_2rc03;
|
||||
|
||||
/* Version information for C files. This had better match the version
|
||||
* string defined in png.h.
|
||||
@@ -551,13 +551,13 @@ png_get_copyright(png_structp png_ptr)
|
||||
#else
|
||||
#ifdef __STDC__
|
||||
return ((png_charp) PNG_STRING_NEWLINE \
|
||||
"libpng version 1.4.1rc03 - February 19, 2010" PNG_STRING_NEWLINE \
|
||||
"libpng version 1.4.2rc03 - April 24, 2010" PNG_STRING_NEWLINE \
|
||||
"Copyright (c) 1998-2010 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.1rc03 - February 19, 2010\
|
||||
return ((png_charp) "libpng version 1.4.2rc03 - April 24, 2010\
|
||||
Copyright (c) 1998-2010 Glenn Randers-Pehrson\
|
||||
Copyright (c) 1996-1997 Andreas Dilger\
|
||||
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.");
|
||||
|
||||
53
png.h
53
png.h
@@ -1,7 +1,7 @@
|
||||
|
||||
/* png.h - header file for PNG reference library
|
||||
*
|
||||
* libpng version 1.4.1rc03 - February 19, 2010
|
||||
* libpng version 1.4.2rc03 - April 24, 2010
|
||||
* Copyright (c) 1998-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.)
|
||||
@@ -11,7 +11,7 @@
|
||||
* 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.1rc03 - February 19, 2010: Glenn
|
||||
* libpng versions 0.97, January 1998, through 1.4.2rc03 - April 24, 2010: Glenn
|
||||
* See also "Contributing Authors", below.
|
||||
*
|
||||
* Note about libpng version numbers:
|
||||
@@ -137,7 +137,9 @@
|
||||
* 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-03 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-03 14 10402 14.so.14.2[.0]
|
||||
*
|
||||
* Henceforth the source version will match the shared-library major
|
||||
* and minor numbers; the shared-library major version number will be
|
||||
@@ -169,7 +171,7 @@
|
||||
*
|
||||
* This code is released under the libpng license.
|
||||
*
|
||||
* libpng versions 1.2.6, August 15, 2004, through 1.4.1rc03, February 19, 2010, are
|
||||
* libpng versions 1.2.6, August 15, 2004, through 1.4.2rc03, April 24, 2010, are
|
||||
* Copyright (c) 2004, 2006-2010 Glenn Randers-Pehrson, and are
|
||||
* distributed according to the same disclaimer and license as libpng-1.2.5
|
||||
* with the following individual added to the list of Contributing Authors:
|
||||
@@ -281,13 +283,13 @@
|
||||
* Y2K compliance in libpng:
|
||||
* =========================
|
||||
*
|
||||
* February 19, 2010
|
||||
* April 24, 2010
|
||||
*
|
||||
* 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.1rc03 are Y2K compliant. It is my belief that earlier
|
||||
* upward through 1.4.2rc03 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
|
||||
@@ -343,9 +345,9 @@
|
||||
*/
|
||||
|
||||
/* Version information for png.h - this should match the version in png.c */
|
||||
#define PNG_LIBPNG_VER_STRING "1.4.1rc03"
|
||||
#define PNG_LIBPNG_VER_STRING "1.4.2rc03"
|
||||
#define PNG_HEADER_VERSION_STRING \
|
||||
" libpng version 1.4.1rc03 - February 19, 2010\n"
|
||||
" libpng version 1.4.2rc03 - April 24, 2010\n"
|
||||
|
||||
#define PNG_LIBPNG_VER_SONUM 14
|
||||
#define PNG_LIBPNG_VER_DLLNUM 14
|
||||
@@ -353,7 +355,7 @@
|
||||
/* 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 1
|
||||
#define PNG_LIBPNG_VER_RELEASE 2
|
||||
/* This should match the numeric part of the final component of
|
||||
* PNG_LIBPNG_VER_STRING, omitting any leading zero:
|
||||
*/
|
||||
@@ -383,7 +385,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 10401 /* 1.4.1 */
|
||||
#define PNG_LIBPNG_VER 10402 /* 1.4.2 */
|
||||
|
||||
#ifndef PNG_VERSION_INFO_ONLY
|
||||
/* Include the compression library's header */
|
||||
@@ -1331,13 +1333,13 @@ struct png_struct_def
|
||||
png_uint_16 offset_table_count_free PNG_DEPSTRUCT;
|
||||
#endif
|
||||
|
||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
||||
png_bytep palette_lookup PNG_DEPSTRUCT; /* lookup table for dithering */
|
||||
png_bytep dither_index PNG_DEPSTRUCT; /* index translation for palette
|
||||
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||
png_bytep palette_lookup PNG_DEPSTRUCT; /* lookup table for quantizing */
|
||||
png_bytep quantize_index PNG_DEPSTRUCT; /* index translation for palette
|
||||
files */
|
||||
#endif
|
||||
|
||||
#if defined(PNG_READ_DITHER_SUPPORTED) || defined(PNG_hIST_SUPPORTED)
|
||||
#if defined(PNG_READ_QUANTIZE_SUPPORTED) || defined(PNG_hIST_SUPPORTED)
|
||||
png_uint_16p hist PNG_DEPSTRUCT; /* histogram */
|
||||
#endif
|
||||
|
||||
@@ -1421,9 +1423,9 @@ struct png_struct_def
|
||||
png_bytep big_row_buf PNG_DEPSTRUCT; /* buffer to save current
|
||||
(unfiltered) row */
|
||||
|
||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
||||
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||
/* The following three members were added at version 1.0.14 and 1.2.4 */
|
||||
png_bytep dither_sort PNG_DEPSTRUCT; /* working sort array */
|
||||
png_bytep quantize_sort PNG_DEPSTRUCT; /* working sort array */
|
||||
png_bytep index_to_palette PNG_DEPSTRUCT; /* where the original
|
||||
index currently is
|
||||
in the palette */
|
||||
@@ -1467,7 +1469,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_1rc03;
|
||||
typedef png_structp version_1_4_2rc03;
|
||||
|
||||
typedef png_struct FAR * FAR * png_structpp;
|
||||
|
||||
@@ -1494,6 +1496,11 @@ extern PNG_EXPORT(void,png_set_sig_bytes) PNGARG((png_structp png_ptr,
|
||||
extern PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start,
|
||||
png_size_t num_to_check));
|
||||
|
||||
/* Simple signature checking function. This is the same as calling
|
||||
* png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n).
|
||||
*/
|
||||
#define png_check_sig(sig,n) !png_sig_cmp((sig), 0, (n))
|
||||
|
||||
/* Allocate and initialize png_ptr struct for reading, and any other memory. */
|
||||
extern PNG_EXPORT(png_structp,png_create_read_struct)
|
||||
PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
|
||||
@@ -1709,14 +1716,16 @@ extern PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr,
|
||||
extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr));
|
||||
#endif
|
||||
|
||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
||||
/* Turn on dithering, and reduce the palette to the number of colors
|
||||
* available.
|
||||
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||
/* Turn on quantizing, and reduce the palette to the number of colors
|
||||
* available. Prior to libpng-1.4.2, this was png_set_dither().
|
||||
*/
|
||||
extern PNG_EXPORT(void,png_set_dither) PNGARG((png_structp png_ptr,
|
||||
extern PNG_EXPORT(void,png_set_quantize) PNGARG((png_structp png_ptr,
|
||||
png_colorp palette, int num_palette, int maximum_colors,
|
||||
png_uint_16p histogram, int full_dither));
|
||||
png_uint_16p histogram, int full_quantize));
|
||||
#endif
|
||||
/* This migration aid will be removed from libpng-1.5.0 */
|
||||
#define png_set_dither png_set_quantize
|
||||
|
||||
#ifdef PNG_READ_GAMMA_SUPPORTED
|
||||
/* Handle gamma correction. Screen_gamma=(display_exponent) */
|
||||
|
||||
51
pngconf.h
51
pngconf.h
@@ -1,7 +1,7 @@
|
||||
|
||||
/* pngconf.h - machine configurable file for libpng
|
||||
*
|
||||
* libpng version 1.4.1rc03 - February 19, 2010
|
||||
* libpng version 1.4.2rc03 - April 24, 2010
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
@@ -22,16 +22,6 @@
|
||||
#ifndef PNGCONF_H
|
||||
#define PNGCONF_H
|
||||
|
||||
/* Added at libpng-1.4.1 */
|
||||
#if ((defined(_AIX)) && \
|
||||
(!defined (_XOPEN_SOURCE)) && \
|
||||
(!defined (_POSIX_SOURCE)) && \
|
||||
(!defined (_ANSI_C_SOURCE)))
|
||||
# ifndef _ALL_SOURCE
|
||||
# define _ALL_SOURCE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef PNG_NO_LIMITS_H
|
||||
# include <limits.h>
|
||||
#endif
|
||||
@@ -401,18 +391,32 @@
|
||||
|
||||
/* Other defines for things like memory and the like can go here. */
|
||||
|
||||
/* This controls how fine the dithering gets. As this allocates
|
||||
/* This controls how fine the quantizing gets. As this allocates
|
||||
* a largish chunk of memory (32K), those who are not as concerned
|
||||
* with dithering quality can decrease some or all of these.
|
||||
* with quantizing quality can decrease some or all of these.
|
||||
*/
|
||||
#ifndef PNG_DITHER_RED_BITS
|
||||
# define PNG_DITHER_RED_BITS 5
|
||||
|
||||
/* Prior to libpng-1.4.2, these were PNG_DITHER_*_BITS
|
||||
* These migration aids will be removed from libpng-1.5.0.
|
||||
*/
|
||||
#ifdef PNG_DITHER_RED_BITS
|
||||
# define PNG_QUANTIZE_RED_BITS PNG_DITHER_RED_BITS
|
||||
#endif
|
||||
#ifndef PNG_DITHER_GREEN_BITS
|
||||
# define PNG_DITHER_GREEN_BITS 5
|
||||
#ifdef PNG_DITHER_GREEN_BITS
|
||||
# define PNG_QUANTIZE_GREEN_BITS PNG_DITHER_GREEN_BITS
|
||||
#endif
|
||||
#ifndef PNG_DITHER_BLUE_BITS
|
||||
# define PNG_DITHER_BLUE_BITS 5
|
||||
#ifdef PNG_DITHER_BLUE_BITS
|
||||
# define PNG_QUANTIZE_BLUE_BITS PNG_DITHER_BLUE_BITS
|
||||
#endif
|
||||
|
||||
#ifndef PNG_QUANTIZE_RED_BITS
|
||||
# define PNG_QUANTIZE_RED_BITS 5
|
||||
#endif
|
||||
#ifndef PNG_QUANTIZE_GREEN_BITS
|
||||
# define PNG_QUANTIZE_GREEN_BITS 5
|
||||
#endif
|
||||
#ifndef PNG_QUANTIZE_BLUE_BITS
|
||||
# define PNG_QUANTIZE_BLUE_BITS 5
|
||||
#endif
|
||||
|
||||
/* This controls how fine the gamma correction becomes when you
|
||||
@@ -509,11 +513,12 @@
|
||||
# ifndef PNG_NO_READ_INVERT
|
||||
# define PNG_READ_INVERT_SUPPORTED
|
||||
# endif
|
||||
#if 0 /* removed from libpng-1.4.0 */
|
||||
# ifndef PNG_NO_READ_DITHER
|
||||
# define PNG_READ_DITHER_SUPPORTED
|
||||
# ifndef PNG_NO_READ_QUANTIZE
|
||||
/* Prior to libpng-1.4.0 this was PNG_READ_DITHER_SUPPORTED */
|
||||
# ifndef PNG_NO_READ_DITHER /* This migration aid will be removed */
|
||||
# define PNG_READ_QUANTIZE_SUPPORTED
|
||||
# endif
|
||||
# endif
|
||||
#endif /* 0 */
|
||||
# ifndef PNG_NO_READ_BACKGROUND
|
||||
# define PNG_READ_BACKGROUND_SUPPORTED
|
||||
# endif
|
||||
|
||||
2
pngget.c
2
pngget.c
@@ -1,7 +1,7 @@
|
||||
|
||||
/* pngget.c - retrieval of values from info struct
|
||||
*
|
||||
* Last changed in libpng 1.4.1 [February 19, 2010]
|
||||
* Last changed in libpng 1.4.1 [February 25, 2010]
|
||||
* Copyright (c) 1998-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
pngmem.c
2
pngmem.c
@@ -1,7 +1,7 @@
|
||||
|
||||
/* pngmem.c - stub functions for memory allocation
|
||||
*
|
||||
* Last changed in libpng 1.4.0 [February 19, 2010]
|
||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
||||
* Copyright (c) 1998-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.)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
/* pngpread.c - read a png file in push mode
|
||||
*
|
||||
* Last changed in libpng 1.4.1 [February 19, 2010]
|
||||
* Last changed in libpng 1.4.1 [February 25, 2010]
|
||||
* Copyright (c) 1998-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.)
|
||||
|
||||
10
pngpriv.h
10
pngpriv.h
@@ -1,7 +1,7 @@
|
||||
|
||||
/* pngpriv.h - private declarations for use inside libpng
|
||||
*
|
||||
* libpng version 1.4.1rc03 - February 19, 2010
|
||||
* libpng version 1.4.2rc03 - April 24, 2010
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
@@ -106,7 +106,7 @@
|
||||
#define PNG_SHIFT 0x0008
|
||||
#define PNG_SWAP_BYTES 0x0010
|
||||
#define PNG_INVERT_MONO 0x0020
|
||||
#define PNG_DITHER 0x0040
|
||||
#define PNG_QUANTIZE 0x0040 /* formerly PNG_DITHER */
|
||||
#define PNG_BACKGROUND 0x0080
|
||||
#define PNG_BACKGROUND_EXPAND 0x0100
|
||||
/* 0x0200 unused */
|
||||
@@ -588,9 +588,9 @@ PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info, png_bytep row));
|
||||
PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, png_bytep row));
|
||||
#endif
|
||||
|
||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
||||
PNG_EXTERN void png_do_dither PNGARG((png_row_infop row_info,
|
||||
png_bytep row, png_bytep palette_lookup, png_bytep dither_lookup));
|
||||
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||
PNG_EXTERN void png_do_quantize PNGARG((png_row_infop row_info,
|
||||
png_bytep row, png_bytep palette_lookup, png_bytep quantize_lookup));
|
||||
|
||||
# ifdef PNG_CORRECT_PALETTE_SUPPORTED
|
||||
PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
/* pngread.c - read a PNG file
|
||||
*
|
||||
* Last changed in libpng 1.4.1 [February 19, 2010]
|
||||
* Last changed in libpng 1.4.2 [April 24, 2010]
|
||||
* Copyright (c) 1998-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.)
|
||||
@@ -1080,9 +1080,9 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr,
|
||||
png_free(png_ptr, png_ptr->big_row_buf);
|
||||
png_free(png_ptr, png_ptr->prev_row);
|
||||
png_free(png_ptr, png_ptr->chunkdata);
|
||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
||||
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||
png_free(png_ptr, png_ptr->palette_lookup);
|
||||
png_free(png_ptr, png_ptr->dither_index);
|
||||
png_free(png_ptr, png_ptr->quantize_index);
|
||||
#endif
|
||||
#ifdef PNG_READ_GAMMA_SUPPORTED
|
||||
png_free(png_ptr, png_ptr->gamma_table);
|
||||
@@ -1257,7 +1257,7 @@ png_read_png(png_structp png_ptr, png_infop info_ptr,
|
||||
png_set_expand(png_ptr);
|
||||
#endif
|
||||
|
||||
/* We don't handle background color or gamma transformation or dithering.
|
||||
/* We don't handle background color or gamma transformation or quantizing.
|
||||
*/
|
||||
|
||||
#ifdef PNG_READ_INVERT_SUPPORTED
|
||||
|
||||
2
pngrio.c
2
pngrio.c
@@ -1,7 +1,7 @@
|
||||
|
||||
/* pngrio.c - functions for data input
|
||||
*
|
||||
* Last changed in libpng 1.4.1 [February 19, 2010]
|
||||
* Last changed in libpng 1.4.1 [February 25, 2010]
|
||||
* Copyright (c) 1998-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.)
|
||||
|
||||
158
pngrtran.c
158
pngrtran.c
@@ -1,7 +1,7 @@
|
||||
|
||||
/* pngrtran.c - transforms the data in a row for PNG readers
|
||||
*
|
||||
* Last changed in libpng 1.4.1 [February 19, 2010]
|
||||
* Last changed in libpng 1.4.2 [April 24, 2010]
|
||||
* Copyright (c) 1998-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.)
|
||||
@@ -141,13 +141,13 @@ png_set_strip_alpha(png_structp png_ptr)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
||||
/* Dither file to 8 bit. Supply a palette, the current number
|
||||
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||
/* Quantize file to 8 bit. Supply a palette, the current number
|
||||
* of elements in the palette, the maximum number of elements
|
||||
* allowed, and a histogram if possible. If the current number
|
||||
* of colors is greater then the maximum number, the palette will be
|
||||
* modified to fit in the maximum number. "full_dither" indicates
|
||||
* whether we need a dithering cube set up for RGB images, or if we
|
||||
* modified to fit in the maximum number. "full_quantize" indicates
|
||||
* whether we need a quantizeing cube set up for RGB images, or if we
|
||||
* simply are reducing the number of colors in a paletted image.
|
||||
*/
|
||||
|
||||
@@ -161,24 +161,24 @@ typedef png_dsort FAR * png_dsortp;
|
||||
typedef png_dsort FAR * FAR * png_dsortpp;
|
||||
|
||||
void PNGAPI
|
||||
png_set_dither(png_structp png_ptr, png_colorp palette,
|
||||
png_set_quantize(png_structp png_ptr, png_colorp palette,
|
||||
int num_palette, int maximum_colors, png_uint_16p histogram,
|
||||
int full_dither)
|
||||
int full_quantize)
|
||||
{
|
||||
png_debug(1, "in png_set_dither");
|
||||
png_debug(1, "in png_set_quantize");
|
||||
|
||||
if (png_ptr == NULL)
|
||||
return;
|
||||
png_ptr->transformations |= PNG_DITHER;
|
||||
png_ptr->transformations |= PNG_QUANTIZE;
|
||||
|
||||
if (!full_dither)
|
||||
if (!full_quantize)
|
||||
{
|
||||
int i;
|
||||
|
||||
png_ptr->dither_index = (png_bytep)png_malloc(png_ptr,
|
||||
png_ptr->quantize_index = (png_bytep)png_malloc(png_ptr,
|
||||
(png_uint_32)(num_palette * png_sizeof(png_byte)));
|
||||
for (i = 0; i < num_palette; i++)
|
||||
png_ptr->dither_index[i] = (png_byte)i;
|
||||
png_ptr->quantize_index[i] = (png_byte)i;
|
||||
}
|
||||
|
||||
if (num_palette > maximum_colors)
|
||||
@@ -192,12 +192,12 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
||||
int i;
|
||||
|
||||
/* Initialize an array to sort colors */
|
||||
png_ptr->dither_sort = (png_bytep)png_malloc(png_ptr,
|
||||
png_ptr->quantize_sort = (png_bytep)png_malloc(png_ptr,
|
||||
(png_uint_32)(num_palette * png_sizeof(png_byte)));
|
||||
|
||||
/* Initialize the dither_sort array */
|
||||
/* Initialize the quantize_sort array */
|
||||
for (i = 0; i < num_palette; i++)
|
||||
png_ptr->dither_sort[i] = (png_byte)i;
|
||||
png_ptr->quantize_sort[i] = (png_byte)i;
|
||||
|
||||
/* Find the least used palette entries by starting a
|
||||
* bubble sort, and running it until we have sorted
|
||||
@@ -214,14 +214,14 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
||||
done = 1;
|
||||
for (j = 0; j < i; j++)
|
||||
{
|
||||
if (histogram[png_ptr->dither_sort[j]]
|
||||
< histogram[png_ptr->dither_sort[j + 1]])
|
||||
if (histogram[png_ptr->quantize_sort[j]]
|
||||
< histogram[png_ptr->quantize_sort[j + 1]])
|
||||
{
|
||||
png_byte t;
|
||||
|
||||
t = png_ptr->dither_sort[j];
|
||||
png_ptr->dither_sort[j] = png_ptr->dither_sort[j + 1];
|
||||
png_ptr->dither_sort[j + 1] = t;
|
||||
t = png_ptr->quantize_sort[j];
|
||||
png_ptr->quantize_sort[j] = png_ptr->quantize_sort[j + 1];
|
||||
png_ptr->quantize_sort[j + 1] = t;
|
||||
done = 0;
|
||||
}
|
||||
}
|
||||
@@ -230,7 +230,7 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
||||
}
|
||||
|
||||
/* Swap the palette around, and set up a table, if necessary */
|
||||
if (full_dither)
|
||||
if (full_quantize)
|
||||
{
|
||||
int j = num_palette;
|
||||
|
||||
@@ -239,11 +239,11 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
||||
*/
|
||||
for (i = 0; i < maximum_colors; i++)
|
||||
{
|
||||
if ((int)png_ptr->dither_sort[i] >= maximum_colors)
|
||||
if ((int)png_ptr->quantize_sort[i] >= maximum_colors)
|
||||
{
|
||||
do
|
||||
j--;
|
||||
while ((int)png_ptr->dither_sort[j] >= maximum_colors);
|
||||
while ((int)png_ptr->quantize_sort[j] >= maximum_colors);
|
||||
palette[i] = palette[j];
|
||||
}
|
||||
}
|
||||
@@ -258,32 +258,32 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
||||
for (i = 0; i < maximum_colors; i++)
|
||||
{
|
||||
/* Only move the colors we need to */
|
||||
if ((int)png_ptr->dither_sort[i] >= maximum_colors)
|
||||
if ((int)png_ptr->quantize_sort[i] >= maximum_colors)
|
||||
{
|
||||
png_color tmp_color;
|
||||
|
||||
do
|
||||
j--;
|
||||
while ((int)png_ptr->dither_sort[j] >= maximum_colors);
|
||||
while ((int)png_ptr->quantize_sort[j] >= maximum_colors);
|
||||
|
||||
tmp_color = palette[j];
|
||||
palette[j] = palette[i];
|
||||
palette[i] = tmp_color;
|
||||
/* Indicate where the color went */
|
||||
png_ptr->dither_index[j] = (png_byte)i;
|
||||
png_ptr->dither_index[i] = (png_byte)j;
|
||||
png_ptr->quantize_index[j] = (png_byte)i;
|
||||
png_ptr->quantize_index[i] = (png_byte)j;
|
||||
}
|
||||
}
|
||||
|
||||
/* Find closest color for those colors we are not using */
|
||||
for (i = 0; i < num_palette; i++)
|
||||
{
|
||||
if ((int)png_ptr->dither_index[i] >= maximum_colors)
|
||||
if ((int)png_ptr->quantize_index[i] >= maximum_colors)
|
||||
{
|
||||
int min_d, k, min_k, d_index;
|
||||
|
||||
/* Find the closest color to one we threw out */
|
||||
d_index = png_ptr->dither_index[i];
|
||||
d_index = png_ptr->quantize_index[i];
|
||||
min_d = PNG_COLOR_DIST(palette[d_index], palette[0]);
|
||||
for (k = 1, min_k = 0; k < maximum_colors; k++)
|
||||
{
|
||||
@@ -298,12 +298,12 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
||||
}
|
||||
}
|
||||
/* Point to closest color */
|
||||
png_ptr->dither_index[i] = (png_byte)min_k;
|
||||
png_ptr->quantize_index[i] = (png_byte)min_k;
|
||||
}
|
||||
}
|
||||
}
|
||||
png_free(png_ptr, png_ptr->dither_sort);
|
||||
png_ptr->dither_sort = NULL;
|
||||
png_free(png_ptr, png_ptr->quantize_sort);
|
||||
png_ptr->quantize_sort = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -410,19 +410,19 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
||||
num_new_palette--;
|
||||
palette[png_ptr->index_to_palette[j]]
|
||||
= palette[num_new_palette];
|
||||
if (!full_dither)
|
||||
if (!full_quantize)
|
||||
{
|
||||
int k;
|
||||
|
||||
for (k = 0; k < num_palette; k++)
|
||||
{
|
||||
if (png_ptr->dither_index[k] ==
|
||||
if (png_ptr->quantize_index[k] ==
|
||||
png_ptr->index_to_palette[j])
|
||||
png_ptr->dither_index[k] =
|
||||
png_ptr->quantize_index[k] =
|
||||
png_ptr->index_to_palette[next_j];
|
||||
if ((int)png_ptr->dither_index[k] ==
|
||||
if ((int)png_ptr->quantize_index[k] ==
|
||||
num_new_palette)
|
||||
png_ptr->dither_index[k] =
|
||||
png_ptr->quantize_index[k] =
|
||||
png_ptr->index_to_palette[j];
|
||||
}
|
||||
}
|
||||
@@ -475,15 +475,15 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
||||
}
|
||||
png_ptr->num_palette = (png_uint_16)num_palette;
|
||||
|
||||
if (full_dither)
|
||||
if (full_quantize)
|
||||
{
|
||||
int i;
|
||||
png_bytep distance;
|
||||
int total_bits = PNG_DITHER_RED_BITS + PNG_DITHER_GREEN_BITS +
|
||||
PNG_DITHER_BLUE_BITS;
|
||||
int num_red = (1 << PNG_DITHER_RED_BITS);
|
||||
int num_green = (1 << PNG_DITHER_GREEN_BITS);
|
||||
int num_blue = (1 << PNG_DITHER_BLUE_BITS);
|
||||
int total_bits = PNG_QUANTIZE_RED_BITS + PNG_QUANTIZE_GREEN_BITS +
|
||||
PNG_QUANTIZE_BLUE_BITS;
|
||||
int num_red = (1 << PNG_QUANTIZE_RED_BITS);
|
||||
int num_green = (1 << PNG_QUANTIZE_GREEN_BITS);
|
||||
int num_blue = (1 << PNG_QUANTIZE_BLUE_BITS);
|
||||
png_size_t num_entries = ((png_size_t)1 << total_bits);
|
||||
|
||||
png_ptr->palette_lookup = (png_bytep )png_calloc(png_ptr,
|
||||
@@ -496,16 +496,16 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
||||
for (i = 0; i < num_palette; i++)
|
||||
{
|
||||
int ir, ig, ib;
|
||||
int r = (palette[i].red >> (8 - PNG_DITHER_RED_BITS));
|
||||
int g = (palette[i].green >> (8 - PNG_DITHER_GREEN_BITS));
|
||||
int b = (palette[i].blue >> (8 - PNG_DITHER_BLUE_BITS));
|
||||
int r = (palette[i].red >> (8 - PNG_QUANTIZE_RED_BITS));
|
||||
int g = (palette[i].green >> (8 - PNG_QUANTIZE_GREEN_BITS));
|
||||
int b = (palette[i].blue >> (8 - PNG_QUANTIZE_BLUE_BITS));
|
||||
|
||||
for (ir = 0; ir < num_red; ir++)
|
||||
{
|
||||
/* int dr = abs(ir - r); */
|
||||
int dr = ((ir > r) ? ir - r : r - ir);
|
||||
int index_r = (ir << (PNG_DITHER_BLUE_BITS +
|
||||
PNG_DITHER_GREEN_BITS));
|
||||
int index_r = (ir << (PNG_QUANTIZE_BLUE_BITS +
|
||||
PNG_QUANTIZE_GREEN_BITS));
|
||||
|
||||
for (ig = 0; ig < num_green; ig++)
|
||||
{
|
||||
@@ -513,7 +513,7 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
||||
int dg = ((ig > g) ? ig - g : g - ig);
|
||||
int dt = dr + dg;
|
||||
int dm = ((dr > dg) ? dr : dg);
|
||||
int index_g = index_r | (ig << PNG_DITHER_BLUE_BITS);
|
||||
int index_g = index_r | (ig << PNG_QUANTIZE_BLUE_BITS);
|
||||
|
||||
for (ib = 0; ib < num_blue; ib++)
|
||||
{
|
||||
@@ -536,7 +536,7 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
||||
png_free(png_ptr, distance);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif /* PNG_READ_QUANTIZE_SUPPORTED */
|
||||
|
||||
#if defined(PNG_READ_GAMMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED)
|
||||
/* Transform the image from the file_gamma to the screen_gamma. We
|
||||
@@ -1229,8 +1229,8 @@ png_read_transform_info(png_structp png_ptr, png_infop info_ptr)
|
||||
info_ptr->color_type &= ~PNG_COLOR_MASK_COLOR;
|
||||
#endif
|
||||
|
||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
||||
if (png_ptr->transformations & PNG_DITHER)
|
||||
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||
if (png_ptr->transformations & PNG_QUANTIZE)
|
||||
{
|
||||
if (((info_ptr->color_type == PNG_COLOR_TYPE_RGB) ||
|
||||
(info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)) &&
|
||||
@@ -1451,13 +1451,13 @@ png_do_read_transformations(png_structp png_ptr)
|
||||
png_do_chop(&(png_ptr->row_info), png_ptr->row_buf + 1);
|
||||
#endif
|
||||
|
||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
||||
if (png_ptr->transformations & PNG_DITHER)
|
||||
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||
if (png_ptr->transformations & PNG_QUANTIZE)
|
||||
{
|
||||
png_do_dither((png_row_infop)&(png_ptr->row_info), png_ptr->row_buf + 1,
|
||||
png_ptr->palette_lookup, png_ptr->dither_index);
|
||||
png_do_quantize((png_row_infop)&(png_ptr->row_info), png_ptr->row_buf + 1,
|
||||
png_ptr->palette_lookup, png_ptr->quantize_index);
|
||||
if (png_ptr->row_info.rowbytes == (png_uint_32)0)
|
||||
png_error(png_ptr, "png_do_dither returned rowbytes=0");
|
||||
png_error(png_ptr, "png_do_quantize returned rowbytes=0");
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -3790,16 +3790,16 @@ png_do_expand(png_row_infop row_info, png_bytep row,
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
||||
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||
void /* PRIVATE */
|
||||
png_do_dither(png_row_infop row_info, png_bytep row,
|
||||
png_bytep palette_lookup, png_bytep dither_lookup)
|
||||
png_do_quantize(png_row_infop row_info, png_bytep row,
|
||||
png_bytep palette_lookup, png_bytep quantize_lookup)
|
||||
{
|
||||
png_bytep sp, dp;
|
||||
png_uint_32 i;
|
||||
png_uint_32 row_width=row_info->width;
|
||||
|
||||
png_debug(1, "in png_do_dither");
|
||||
png_debug(1, "in png_do_quantize");
|
||||
|
||||
{
|
||||
if (row_info->color_type == PNG_COLOR_TYPE_RGB &&
|
||||
@@ -3821,14 +3821,14 @@ png_do_dither(png_row_infop row_info, png_bytep row,
|
||||
* (((g >> 3) & 0x1f) << 5) |
|
||||
* ((b >> 3) & 0x1f);
|
||||
*/
|
||||
p = (((r >> (8 - PNG_DITHER_RED_BITS)) &
|
||||
((1 << PNG_DITHER_RED_BITS) - 1)) <<
|
||||
(PNG_DITHER_GREEN_BITS + PNG_DITHER_BLUE_BITS)) |
|
||||
(((g >> (8 - PNG_DITHER_GREEN_BITS)) &
|
||||
((1 << PNG_DITHER_GREEN_BITS) - 1)) <<
|
||||
(PNG_DITHER_BLUE_BITS)) |
|
||||
((b >> (8 - PNG_DITHER_BLUE_BITS)) &
|
||||
((1 << PNG_DITHER_BLUE_BITS) - 1));
|
||||
p = (((r >> (8 - PNG_QUANTIZE_RED_BITS)) &
|
||||
((1 << PNG_QUANTIZE_RED_BITS) - 1)) <<
|
||||
(PNG_QUANTIZE_GREEN_BITS + PNG_QUANTIZE_BLUE_BITS)) |
|
||||
(((g >> (8 - PNG_QUANTIZE_GREEN_BITS)) &
|
||||
((1 << PNG_QUANTIZE_GREEN_BITS) - 1)) <<
|
||||
(PNG_QUANTIZE_BLUE_BITS)) |
|
||||
((b >> (8 - PNG_QUANTIZE_BLUE_BITS)) &
|
||||
((1 << PNG_QUANTIZE_BLUE_BITS) - 1));
|
||||
|
||||
*dp++ = palette_lookup[p];
|
||||
}
|
||||
@@ -3850,14 +3850,14 @@ png_do_dither(png_row_infop row_info, png_bytep row,
|
||||
b = *sp++;
|
||||
sp++;
|
||||
|
||||
p = (((r >> (8 - PNG_DITHER_RED_BITS)) &
|
||||
((1 << PNG_DITHER_RED_BITS) - 1)) <<
|
||||
(PNG_DITHER_GREEN_BITS + PNG_DITHER_BLUE_BITS)) |
|
||||
(((g >> (8 - PNG_DITHER_GREEN_BITS)) &
|
||||
((1 << PNG_DITHER_GREEN_BITS) - 1)) <<
|
||||
(PNG_DITHER_BLUE_BITS)) |
|
||||
((b >> (8 - PNG_DITHER_BLUE_BITS)) &
|
||||
((1 << PNG_DITHER_BLUE_BITS) - 1));
|
||||
p = (((r >> (8 - PNG_QUANTIZE_RED_BITS)) &
|
||||
((1 << PNG_QUANTIZE_RED_BITS) - 1)) <<
|
||||
(PNG_QUANTIZE_GREEN_BITS + PNG_QUANTIZE_BLUE_BITS)) |
|
||||
(((g >> (8 - PNG_QUANTIZE_GREEN_BITS)) &
|
||||
((1 << PNG_QUANTIZE_GREEN_BITS) - 1)) <<
|
||||
(PNG_QUANTIZE_BLUE_BITS)) |
|
||||
((b >> (8 - PNG_QUANTIZE_BLUE_BITS)) &
|
||||
((1 << PNG_QUANTIZE_BLUE_BITS) - 1));
|
||||
|
||||
*dp++ = palette_lookup[p];
|
||||
}
|
||||
@@ -3867,12 +3867,12 @@ png_do_dither(png_row_infop row_info, png_bytep row,
|
||||
row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width);
|
||||
}
|
||||
else if (row_info->color_type == PNG_COLOR_TYPE_PALETTE &&
|
||||
dither_lookup && row_info->bit_depth == 8)
|
||||
quantize_lookup && row_info->bit_depth == 8)
|
||||
{
|
||||
sp = row;
|
||||
for (i = 0; i < row_width; i++, sp++)
|
||||
{
|
||||
*sp = dither_lookup[*sp];
|
||||
*sp = quantize_lookup[*sp];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
14
pngrutil.c
14
pngrutil.c
@@ -1,7 +1,7 @@
|
||||
|
||||
/* pngrutil.c - utilities to read a PNG file
|
||||
*
|
||||
* Last changed in libpng 1.4.1 [February 19, 2010]
|
||||
* Last changed in libpng 1.4.2 [April 24, 2010]
|
||||
* Copyright (c) 1998-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.)
|
||||
@@ -334,7 +334,11 @@ png_decompress_chunk(png_structp png_ptr, int comp_type,
|
||||
* and we have nothing to do - the code will exit through the
|
||||
* error case below.
|
||||
*/
|
||||
else if (expanded_size > 0)
|
||||
#if defined(PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED) || \
|
||||
defined(PNG_USER_CHUNK_MALLOC_MAX)
|
||||
else
|
||||
#endif
|
||||
if (expanded_size > 0)
|
||||
{
|
||||
/* Success (maybe) - really uncompress the chunk. */
|
||||
png_size_t new_size = 0;
|
||||
@@ -890,9 +894,11 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
green_x, green_y, blue_x, blue_y);
|
||||
#else
|
||||
fprintf(stderr, "wx=%ld, wy=%ld, rx=%ld, ry=%ld\n",
|
||||
int_x_white, int_y_white, int_x_red, int_y_red);
|
||||
(long)int_x_white, (long)int_y_white,
|
||||
(long)int_x_red, (long)int_y_red);
|
||||
fprintf(stderr, "gx=%ld, gy=%ld, bx=%ld, by=%ld\n",
|
||||
int_x_green, int_y_green, int_x_blue, int_y_blue);
|
||||
(long)int_x_green, (long)int_y_green,
|
||||
(long)int_x_blue, (long)int_y_blue);
|
||||
#endif
|
||||
#endif /* PNG_CONSOLE_IO_SUPPORTED */
|
||||
}
|
||||
|
||||
2
pngset.c
2
pngset.c
@@ -1,7 +1,7 @@
|
||||
|
||||
/* pngset.c - storage of image information into info struct
|
||||
*
|
||||
* Last changed in libpng 1.4.1 [February 19, 2010]
|
||||
* Last changed in libpng 1.4.1 [February 25, 2010]
|
||||
* Copyright (c) 1998-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.)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
/* pngtest.c - a simple test program to test libpng
|
||||
*
|
||||
* Last changed in libpng 1.4.1 [February 19, 2010]
|
||||
* Last changed in libpng 1.4.1 [February 25, 2010]
|
||||
* Copyright (c) 1998-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.)
|
||||
@@ -1627,4 +1627,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_1rc03 your_png_h_is_not_version_1_4_1rc03;
|
||||
typedef version_1_4_2rc03 your_png_h_is_not_version_1_4_2rc03;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
/* pngwtran.c - transforms the data in a row for PNG writers
|
||||
*
|
||||
* Last changed in libpng 1.4.1 [February 19, 2010]
|
||||
* Last changed in libpng 1.4.1 [February 25, 2010]
|
||||
* Copyright (c) 1998-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.)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
/* pngwutil.c - utilities to write a PNG file
|
||||
*
|
||||
* Last changed in libpng 1.4.1 [February 19, 2010]
|
||||
* Last changed in libpng 1.4.1 [February 25, 2010]
|
||||
* Copyright (c) 1998-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.)
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DYLIB_COMPATIBILITY_VERSION = 14;
|
||||
DYLIB_CURRENT_VERSION = 14;
|
||||
FRAMEWORK_VERSION = 1.4.1rc03;
|
||||
FRAMEWORK_VERSION = 1.4.2rc03;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = NO;
|
||||
GCC_PREFIX_HEADER = "";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
@@ -244,7 +244,7 @@
|
||||
buildSettings = {
|
||||
DYLIB_COMPATIBILITY_VERSION = 14;
|
||||
DYLIB_CURRENT_VERSION = 14;
|
||||
FRAMEWORK_VERSION = 1.4.1rc03;
|
||||
FRAMEWORK_VERSION = 1.4.2rc03;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = NO;
|
||||
GCC_PREFIX_HEADER = "";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
Makefiles for libpng version 1.4.1rc03 - February 19, 2010
|
||||
Makefiles for libpng version 1.4.2rc03 - April 24, 2010
|
||||
|
||||
makefile.linux => Linux/ELF makefile
|
||||
(gcc, creates libpng14.so.14.1.4.1rc03)
|
||||
(gcc, creates libpng14.so.14.1.4.2rc03)
|
||||
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.1rc03 - February 19, 2010
|
||||
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.1rc03)
|
||||
gcc, creates libpng14.so.14.1.4.2rc03)
|
||||
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.1rc03 - February 19, 2010
|
||||
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.1rc03)
|
||||
creates libpng14.so.14.1.4.2rc03)
|
||||
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
|
||||
makefile.solaris => Solaris 2.X makefile (gcc,
|
||||
creates libpng14.so.14.1.4.1rc03)
|
||||
creates libpng14.so.14.1.4.2rc03)
|
||||
makefile.so9 => Solaris 9 makefile (gcc,
|
||||
creates libpng14.so.14.1.4.1rc03)
|
||||
creates libpng14.so.14.1.4.2rc03)
|
||||
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.1rc03
|
||||
version=1.4.2rc03
|
||||
prefix=""
|
||||
libdir=""
|
||||
libs=""
|
||||
|
||||
@@ -5,6 +5,6 @@ includedir=@includedir@/libpng14
|
||||
|
||||
Name: libpng
|
||||
Description: Loads and saves PNG files
|
||||
Version: 1.4.1rc03
|
||||
Version: 1.4.2rc03
|
||||
Libs: -L${libdir} -lpng14
|
||||
Cflags: -I${includedir}
|
||||
|
||||
@@ -46,7 +46,7 @@ LDDEBUG =
|
||||
CRELEASE = -O2
|
||||
LDRELEASE = -s
|
||||
WARNMORE=-W -Wall
|
||||
CFLAGS = -I$(ZLIBINC) $(WARNMORE) $(CRELEASE)
|
||||
CFLAGS = -D_ALL_SOURCE -I$(ZLIBINC) $(WARNMORE) $(CRELEASE)
|
||||
LDFLAGS = -L. -L$(ZLIBLIB) -lpng14 -lz -lm $(LDRELEASE)
|
||||
|
||||
# File extensions
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
VERMAJ = 1
|
||||
VERMIN = 4
|
||||
VERMIC = 1
|
||||
VERMIC = 2
|
||||
VER = $(VERMAJ).$(VERMIN).$(VERMIC)
|
||||
NAME = libpng
|
||||
PACKAGE = $(NAME)-$(VER)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
# Library name:
|
||||
LIBNAME = libpng14
|
||||
PNGMAJ = 14
|
||||
RELEASE = 1
|
||||
RELEASE = 2
|
||||
|
||||
# Shared library names:
|
||||
LIBSO=$(LIBNAME).so
|
||||
|
||||
@@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include/libpng14
|
||||
|
||||
LIB= png14
|
||||
SHLIB_MAJOR= 0
|
||||
SHLIB_MINOR= 1.4.1rc03
|
||||
SHLIB_MINOR= 1.4.2rc03
|
||||
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.1rc03
|
||||
SHLIB_MINOR= 1.4.2rc03
|
||||
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.1rc03
|
||||
SHLIB_MINOR= 1.4.2rc03
|
||||
|
||||
LIB= png
|
||||
SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \
|
||||
|
||||
@@ -6,7 +6,7 @@ LIBRARY lpngce
|
||||
|
||||
png_memcpy_check
|
||||
png_memset_check
|
||||
png_set_dither
|
||||
png_set_quantize
|
||||
png_read_init_3
|
||||
png_write_init_3
|
||||
png_set_strip_error_numbers
|
||||
@@ -15,7 +15,7 @@ LIBRARY lpngce
|
||||
png_get_int_32
|
||||
|
||||
EXPORTS
|
||||
;Version 1.4.1rc03
|
||||
;Version 1.4.2rc03
|
||||
png_build_grayscale_palette @1
|
||||
; png_check_sig @2
|
||||
png_chunk_error @3
|
||||
@@ -113,7 +113,7 @@ EXPORTS
|
||||
png_set_compression_strategy @94
|
||||
png_set_compression_window_bits @95
|
||||
png_set_crc_action @96
|
||||
; png_set_dither @97
|
||||
png_set_quantize @97
|
||||
png_set_error_fn @98
|
||||
png_set_expand @99
|
||||
png_set_filler @100
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
; PNG.LIB module definition file for OS/2
|
||||
;----------------------------------------
|
||||
|
||||
; Version 1.4.1rc03
|
||||
; Version 1.4.2rc03
|
||||
|
||||
LIBRARY PNG
|
||||
DESCRIPTION "PNG image compression library for OS/2"
|
||||
@@ -217,6 +217,8 @@ EXPORTS
|
||||
; Added at version 1.4.1
|
||||
png_get_chunk_malloc_max
|
||||
png_set_chunk_malloc_max
|
||||
; Added at version 1.4.2
|
||||
png_set_quantize
|
||||
|
||||
; These are not present when libpng is compiled with PNG_NO_GLOBAL_ARRAYS
|
||||
png_libpng_ver
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
LIBRARY
|
||||
|
||||
EXPORTS
|
||||
;Version 1.4.1rc03
|
||||
;Version 1.4.2rc03
|
||||
png_build_grayscale_palette
|
||||
png_chunk_error
|
||||
png_chunk_warning
|
||||
@@ -212,3 +212,5 @@ EXPORTS
|
||||
; Added at version 1.4.1
|
||||
png_get_chunk_malloc_max
|
||||
png_set_chunk_malloc_max
|
||||
; Added at version 1.4.2
|
||||
png_set_quantize
|
||||
|
||||
Reference in New Issue
Block a user