Downgrade to libpng 1.5.1.
This restores PNG screenshot colors.
This commit is contained in:
Vendored
+96
@@ -0,0 +1,96 @@
|
|||||||
|
|
||||||
|
Libpng 1.5.1 - February 3, 2011
|
||||||
|
|
||||||
|
This is a public release of libpng, intended for use in production codes.
|
||||||
|
|
||||||
|
Files available for download:
|
||||||
|
|
||||||
|
Source files with LF line endings (for Unix/Linux) and with a
|
||||||
|
"configure" script
|
||||||
|
|
||||||
|
libpng-1.5.1.tar.xz (LZMA-compressed, recommended)
|
||||||
|
libpng-1.5.1.tar.gz
|
||||||
|
libpng-1.5.1.tar.bz2
|
||||||
|
|
||||||
|
Source files with CRLF line endings (for Windows), without the
|
||||||
|
"configure" script
|
||||||
|
|
||||||
|
lpng151.7z (LZMA-compressed, recommended)
|
||||||
|
lpng151.zip
|
||||||
|
|
||||||
|
Other information:
|
||||||
|
|
||||||
|
libpng-1.5.1-README.txt
|
||||||
|
libpng-1.5.1-LICENSE.txt
|
||||||
|
|
||||||
|
Changes since the last public release (1.5.0):
|
||||||
|
|
||||||
|
Added description of png_set_crc_action() to the manual.
|
||||||
|
Added a note in the manual that the type of the iCCP profile was changed
|
||||||
|
from png_charpp to png_bytepp in png_get_iCCP(). Similarly,
|
||||||
|
it was changed from png_charpp to png_const_bytepp in png_set_iCCP().
|
||||||
|
Ensure that png_rgb_to_gray ignores palette mapped images, if libpng
|
||||||
|
internally happens to call it with one.
|
||||||
|
Fixed the failure to handle palette mapped images correctly.
|
||||||
|
Fixed a bug in handling of interlaced images (bero at arklinux.org).
|
||||||
|
Updated CMakeLists.txt (Clifford Yapp)
|
||||||
|
Fixed typecasting of some png_debug() statements (Cosmin)
|
||||||
|
Updated documentation of png_set|get_tRNS() (Thomas Klausner).
|
||||||
|
Mentioned in the documentation that applications must #include "zlib.h"
|
||||||
|
if they need access to anything in zlib.h, and that a number of
|
||||||
|
macros such as png_memset() are no longer accessible by applications.
|
||||||
|
Corrected pngvalid gamma test "sample" function to access all of the color
|
||||||
|
samples of each pixel, instead of sampling the red channel three times.
|
||||||
|
Changed variable names index, div, exp, and gamma to char_index, divisor,
|
||||||
|
exp_b10, and gamma_val, respectively, to avoid "shadow" warnings.
|
||||||
|
Prevent png_push_crc_skip() from hanging while reading an unknown chunk
|
||||||
|
or an over-large compressed zTXt chunk with the progressive reader.
|
||||||
|
Eliminated more GCC "shadow" warnings.
|
||||||
|
Revised png_fixed() in png.c to avoid compiler warning about reaching the
|
||||||
|
end without returning anything.
|
||||||
|
In the manual, describe the png_get_IHDR() arguments in the correct order.
|
||||||
|
Added const_png_structp and const_png_infop types, and used them in
|
||||||
|
prototypes for most png_get_*() functions.
|
||||||
|
Added png_get_io_chunk_type() and deprecated png_get_io_chunk_name()
|
||||||
|
Added synopses for the IO_STATE functions and other missing synopses
|
||||||
|
to the manual. Removed the synopses from libpngpf.3 because they
|
||||||
|
were out of date and no longer useful. Better information can be
|
||||||
|
obtained by reading the prototypes and comments in pngpriv.h
|
||||||
|
Attempted to fix cpp on Solaris with S. Studio 12 cc, fix build
|
||||||
|
Added a make macro DFNCPP that is a CPP that will accept the tokens in
|
||||||
|
a .dfn file and adds configure stuff to test for such a CPP. ./configure
|
||||||
|
should fail if one is not available.
|
||||||
|
Corrected const_png_ in png.h to png_const_ to avoid polluting the namespace.
|
||||||
|
Added png_get_current_row_number and png_get_current_pass_number for the
|
||||||
|
benefit of the user transform callback.
|
||||||
|
Added png_process_data_pause and png_process_data_skip for the benefit of
|
||||||
|
progressive readers that need to stop data processing or want to optimize
|
||||||
|
skipping of unread data (e.g. if the reader marks a chunk to be skipped.)
|
||||||
|
Enhanced pngvalid, corrected an error in gray_to_rgb, corrected doc error.
|
||||||
|
pngvalid contains tests of transforms, which tests are currently disabled
|
||||||
|
because they are incompletely tested. gray_to_rgb was failing to expand
|
||||||
|
the bit depth for smaller bit depth images; this seems to be a long
|
||||||
|
standing error and resulted, apparently, in invalid output. The
|
||||||
|
documentation did not accurately describe what libpng really does when
|
||||||
|
converting RGB to gray.
|
||||||
|
Fixed incorrect examples of callback prototypes in the manual, that were
|
||||||
|
introduced in libpng-1.0.0.
|
||||||
|
In addition the order of the png_get_uint macros with respect to the
|
||||||
|
relevant function definitions has been reversed. This helps the
|
||||||
|
preprocessing of the symbol files be more robust. Furthermore, the
|
||||||
|
symbol file preprocessing now uses -DPNG_NO_USE_READ_MACROS even when
|
||||||
|
the library may actually be built with PNG_USE_READ_MACROS; this stops
|
||||||
|
the read macros interfering with the symbol file format.
|
||||||
|
Made the manual, synopses, and function prototypes use the function
|
||||||
|
argument names file_gamma, int_file_gamma, and srgb_intent consistently.
|
||||||
|
Changed PNG_UNUSED from "param=param;" to "(void)param;".
|
||||||
|
Added transform tests to pngvalid and simplified the arguments.
|
||||||
|
Added a request in the manual that applications do not use "png_" or
|
||||||
|
"PNG_" to begin any of their own symbols.
|
||||||
|
|
||||||
|
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
||||||
|
(subscription required; visit
|
||||||
|
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
||||||
|
to subscribe) or to glennrp at users.sourceforge.net
|
||||||
|
|
||||||
|
Glenn R-P
|
||||||
Vendored
-44
@@ -3242,50 +3242,6 @@ Version 1.5.1rc02 [January 31, 2011]
|
|||||||
Version 1.5.1 [February 3, 2011]
|
Version 1.5.1 [February 3, 2011]
|
||||||
No changes.
|
No changes.
|
||||||
|
|
||||||
Version 1.5.2beta01 [February 13, 2011]
|
|
||||||
More -Wshadow fixes for older gcc compilers. Older gcc versions apparently
|
|
||||||
check formal parameters names in function declarations (as well as
|
|
||||||
definitions) to see if they match a name in the global namespace.
|
|
||||||
Revised PNG_EXPORTA macro to not use an empty parameter, to accommodate the
|
|
||||||
old VisualC++ preprocessor.
|
|
||||||
Turned on interlace handling in png_read_png().
|
|
||||||
Fixed gcc pendantic warnings.
|
|
||||||
Handle longjmp in Cygwin.
|
|
||||||
Fixed png_get_current_row_number() in the interlaced case.
|
|
||||||
Cleaned up ALPHA flags and transformations.
|
|
||||||
Implemented expansion to 16 bits.
|
|
||||||
|
|
||||||
Version 1.5.2beta02 [February 19, 2011]
|
|
||||||
Fixed mistake in the descriptions of user read_transform and write_transform
|
|
||||||
function prototypes in the manual. The row_info struct is png_row_infop.
|
|
||||||
Reverted png_get_current_row_number() to previous (1.5.2beta01) behavior.
|
|
||||||
Corrected png_get_current_row_number documentation
|
|
||||||
Fixed the read/write row callback documentation.
|
|
||||||
This documents the current behavior, where the callback is called after
|
|
||||||
every row with information pertaining to the next row.
|
|
||||||
|
|
||||||
Version 1.5.2beta03 [March 3, 2011]
|
|
||||||
Fixed scripts/makefile.vcwin32
|
|
||||||
Updated contrib/pngsuite/README to add the word "modify".
|
|
||||||
Define PNG_ALLOCATED to blank when _MSC_VER<1300.
|
|
||||||
|
|
||||||
Version 1.5.2rc01 [March 19, 2011]
|
|
||||||
Define remaining attributes to blank when MSC_VER<1300.
|
|
||||||
ifdef out mask arrays in pngread.c when interlacing is not supported.
|
|
||||||
|
|
||||||
Version 1.5.2rc02 [March 22, 2011]
|
|
||||||
Added a hint to try CPP=/bin/cpp if "cpp -E" fails in scripts/pnglibconf.mak
|
|
||||||
and in contrib/pngminim/*/makefile, eg., on SunOS 5.10, and removed "strip"
|
|
||||||
from the makefiles.
|
|
||||||
Fixed a bug (present since libpng-1.0.7) that makes png_handle_sPLT() fail
|
|
||||||
to compile when PNG_NO_POINTER_INDEXING is defined (Chubanov Kirill)
|
|
||||||
|
|
||||||
Version 1.5.2rc03 [March 24, 2011]
|
|
||||||
Don't include standard header files in png.h while building the symbol table,
|
|
||||||
to avoid cpp failure on SunOS (introduced PNG_BUILDING_SYMBOL_TABLE macro).
|
|
||||||
|
|
||||||
Version 1.5.2 [March 31, 2011]
|
|
||||||
|
|
||||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
||||||
(subscription required; visit
|
(subscription required; visit
|
||||||
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
||||||
|
|||||||
Vendored
+2
-2
@@ -33,7 +33,7 @@ enable_testing()
|
|||||||
|
|
||||||
set(PNGLIB_MAJOR 1)
|
set(PNGLIB_MAJOR 1)
|
||||||
set(PNGLIB_MINOR 5)
|
set(PNGLIB_MINOR 5)
|
||||||
set(PNGLIB_RELEASE 2)
|
set(PNGLIB_RELEASE 1)
|
||||||
set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR})
|
set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR})
|
||||||
set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE})
|
set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE})
|
||||||
|
|
||||||
@@ -264,7 +264,7 @@ install(CODE ${PNG_CONFIG_INSTALL_CODE})
|
|||||||
# SET UP LINKS
|
# SET UP LINKS
|
||||||
if(PNG_SHARED)
|
if(PNG_SHARED)
|
||||||
set_target_properties(${PNG_LIB_NAME} PROPERTIES
|
set_target_properties(${PNG_LIB_NAME} PROPERTIES
|
||||||
# VERSION 15.${PNGLIB_RELEASE}.1.5.2
|
# VERSION 15.${PNGLIB_RELEASE}.1.5.1
|
||||||
VERSION 15.${PNGLIB_RELEASE}.0
|
VERSION 15.${PNGLIB_RELEASE}.0
|
||||||
SOVERSION 15
|
SOVERSION 15
|
||||||
CLEAN_DIRECT_OUTPUT 1)
|
CLEAN_DIRECT_OUTPUT 1)
|
||||||
|
|||||||
Vendored
+135
@@ -0,0 +1,135 @@
|
|||||||
|
|
||||||
|
Installing libpng
|
||||||
|
|
||||||
|
On Unix/Linux and similar systems, you can simply type
|
||||||
|
|
||||||
|
./configure [--prefix=/path]
|
||||||
|
make check
|
||||||
|
make install
|
||||||
|
|
||||||
|
and ignore the rest of this document.
|
||||||
|
|
||||||
|
If configure does not work on your system and you have a reasonably
|
||||||
|
up-to-date set of tools, running ./autogen.sh before running ./configure
|
||||||
|
may fix the problem. You can also run the individual commands in
|
||||||
|
autogen.sh with the --force option, if supported by your version of
|
||||||
|
the tools. To be really sure that you aren't using any of the included
|
||||||
|
pre-built scripts, you can do this:
|
||||||
|
|
||||||
|
./configure --enable-maintainer-mode
|
||||||
|
make maintainer-clean
|
||||||
|
./autogen.sh
|
||||||
|
./configure [--prefix=/path] [other options]
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
make check
|
||||||
|
|
||||||
|
Instead, you can use one of the custom-built makefiles in the
|
||||||
|
"scripts" directory
|
||||||
|
|
||||||
|
cp scripts/makefile.system makefile
|
||||||
|
make test
|
||||||
|
make install
|
||||||
|
|
||||||
|
The files that are presently available in the scripts directory
|
||||||
|
are listed and described in scripts/README.txt.
|
||||||
|
|
||||||
|
Or you can use one of the "projects" in the "projects" directory.
|
||||||
|
|
||||||
|
Before installing libpng, you must first install zlib, if it
|
||||||
|
is not already on your system. zlib can usually be found
|
||||||
|
wherever you got libpng. zlib can be placed in another directory,
|
||||||
|
at the same level as libpng.
|
||||||
|
|
||||||
|
If you want to use "cmake" (see www.cmake.org), type
|
||||||
|
|
||||||
|
cmake . -DCMAKE_INSTALL_PREFIX=/path
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
If your system already has a preinstalled zlib you will still need
|
||||||
|
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-x.y.z" or "libpngNN" and "zlib-1.2.5"
|
||||||
|
or "zlib125") so that you have directories called "zlib" and "libpng".
|
||||||
|
|
||||||
|
Your directory structure should look like this:
|
||||||
|
|
||||||
|
.. (the parent directory)
|
||||||
|
libpng (this directory)
|
||||||
|
INSTALL (this file)
|
||||||
|
README
|
||||||
|
*.h
|
||||||
|
*.c
|
||||||
|
CMakeLists.txt => "cmake" script
|
||||||
|
configuration files:
|
||||||
|
configure.ac, configure, Makefile.am, Makefile.in,
|
||||||
|
autogen.sh, config.guess, ltmain.sh, missing, libpng.pc.in,
|
||||||
|
libpng-config.in, aclocal.m4, config.h.in, config.sub,
|
||||||
|
depcomp, install-sh, mkinstalldirs, test-pngtest.sh
|
||||||
|
contrib
|
||||||
|
gregbook
|
||||||
|
pngminim
|
||||||
|
pngminus
|
||||||
|
pngsuite
|
||||||
|
visupng
|
||||||
|
projects
|
||||||
|
visualc71
|
||||||
|
vstudio
|
||||||
|
scripts
|
||||||
|
makefile.*
|
||||||
|
*.def (module definition files)
|
||||||
|
etc.
|
||||||
|
pngtest.png
|
||||||
|
etc.
|
||||||
|
zlib
|
||||||
|
README
|
||||||
|
*.h
|
||||||
|
*.c
|
||||||
|
contrib
|
||||||
|
etc.
|
||||||
|
|
||||||
|
If the line endings in the files look funny, you may wish to get the other
|
||||||
|
distribution of libpng. It is available in both tar.gz (UNIX style line
|
||||||
|
endings) and zip (DOS style line endings) formats.
|
||||||
|
|
||||||
|
If you are building libpng with MSVC, you can enter the
|
||||||
|
libpng projects\visualc6 or visualc71 directory and follow the instructions
|
||||||
|
in README.txt.
|
||||||
|
|
||||||
|
Otherwise enter the zlib directory and follow the instructions in zlib/README,
|
||||||
|
then come back here and run "configure" or choose the appropriate
|
||||||
|
makefile.sys in the scripts directory.
|
||||||
|
|
||||||
|
Copy the file (or files) that you need from the
|
||||||
|
scripts directory into this directory, for example
|
||||||
|
|
||||||
|
MSDOS example: copy scripts\makefile.msc makefile
|
||||||
|
UNIX example: cp scripts/makefile.std makefile
|
||||||
|
|
||||||
|
Read the makefile to see if you need to change any source or
|
||||||
|
target directories to match your preferences.
|
||||||
|
|
||||||
|
Then read pnglibconf.dfa to see if you want to make any configuration
|
||||||
|
changes.
|
||||||
|
|
||||||
|
Then just run "make" which will create the libpng library in
|
||||||
|
this directory and "make test" which will run a quick test that reads
|
||||||
|
the "pngtest.png" file and writes a "pngout.png" file that should be
|
||||||
|
identical to it. Look for "9782 zero samples" in the output of the
|
||||||
|
test. For more confidence, you can run another test by typing
|
||||||
|
"pngtest pngnow.png" and looking for "289 zero samples" in the output.
|
||||||
|
Also, you can run "pngtest -m contrib/pngsuite/*.png" and compare
|
||||||
|
your output with the result shown in contrib/pngsuite/README.
|
||||||
|
|
||||||
|
Most of the makefiles will allow you to run "make install" to
|
||||||
|
put the library in its final resting place (if you want to
|
||||||
|
do that, run "make install" in the zlib directory first if necessary).
|
||||||
|
Some also allow you to run "make test-installed" after you have
|
||||||
|
run "make install".
|
||||||
|
|
||||||
|
Further information can be found in the README and libpng-manual.txt
|
||||||
|
files, in the individual makefiles, in png.h, and the manual pages
|
||||||
|
libpng.3 and png.5.
|
||||||
Vendored
+2
-2
@@ -10,7 +10,7 @@ this sentence.
|
|||||||
|
|
||||||
This code is released under the libpng license.
|
This code is released under the libpng license.
|
||||||
|
|
||||||
libpng versions 1.2.6, August 15, 2004, through 1.5.2, March 31, 2011, are
|
libpng versions 1.2.6, August 15, 2004, through 1.5.1, February 3, 2011, are
|
||||||
Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
|
Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
|
||||||
distributed according to the same disclaimer and license as libpng-1.2.5
|
distributed according to the same disclaimer and license as libpng-1.2.5
|
||||||
with the following individual added to the list of Contributing Authors
|
with the following individual added to the list of Contributing Authors
|
||||||
@@ -108,4 +108,4 @@ certification mark of the Open Source Initiative.
|
|||||||
|
|
||||||
Glenn Randers-Pehrson
|
Glenn Randers-Pehrson
|
||||||
glennrp at users.sourceforge.net
|
glennrp at users.sourceforge.net
|
||||||
March 31, 2011
|
February 3, 2011
|
||||||
|
|||||||
Vendored
+205
@@ -0,0 +1,205 @@
|
|||||||
|
README for libpng version 1.5.1 - February 3, 2011 (shared library 15.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.
|
||||||
|
|
||||||
|
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
|
||||||
|
extensive use and testing since mid-1995. By late 1997 it had
|
||||||
|
finally gotten to the stage where there hadn't been significant
|
||||||
|
changes to the API in some time, and people have a bad feeling about
|
||||||
|
libraries with versions < 1.0. Version 1.0.0 was released in
|
||||||
|
March 1998.
|
||||||
|
|
||||||
|
****
|
||||||
|
Note that some of the changes to the png_info structure render this
|
||||||
|
version of the library binary incompatible with libpng-0.89 or
|
||||||
|
earlier versions if you are using a shared library. The type of the
|
||||||
|
"filler" parameter for png_set_filler() has changed from png_byte to
|
||||||
|
png_uint_32, which will affect shared-library applications that use
|
||||||
|
this function.
|
||||||
|
|
||||||
|
To avoid problems with changes to the internals of png_info_struct,
|
||||||
|
new APIs have been made available in 0.95 to avoid direct application
|
||||||
|
access to info_ptr. These functions are the png_set_<chunk> and
|
||||||
|
png_get_<chunk> functions. These functions should be used when
|
||||||
|
accessing/storing the info_struct data, rather than manipulating it
|
||||||
|
directly, to avoid such problems in the future.
|
||||||
|
|
||||||
|
It is important to note that the APIs do not make current programs
|
||||||
|
that access the info struct directly incompatible with the new
|
||||||
|
library. However, it is strongly suggested that new programs use
|
||||||
|
the new APIs (as shown in example.c and pngtest.c), and older programs
|
||||||
|
be converted to the new format, to facilitate upgrades in the future.
|
||||||
|
****
|
||||||
|
|
||||||
|
Additions since 0.90 include the ability to compile libpng as a
|
||||||
|
Windows DLL, and new APIs for accessing data in the info struct.
|
||||||
|
Experimental functions include the ability to set weighting and cost
|
||||||
|
factors for row filter selection, direct reads of integers from buffers
|
||||||
|
on big-endian processors that support misaligned data access, faster
|
||||||
|
methods of doing alpha composition, and more accurate 16->8 bit color
|
||||||
|
conversion.
|
||||||
|
|
||||||
|
The additions since 0.89 include the ability to read from a PNG stream
|
||||||
|
which has had some (or all) of the signature bytes read by the calling
|
||||||
|
application. This also allows the reading of embedded PNG streams that
|
||||||
|
do not have the PNG file signature. As well, it is now possible to set
|
||||||
|
the library action on the detection of chunk CRC errors. It is possible
|
||||||
|
to set different actions based on whether the CRC error occurred in a
|
||||||
|
critical or an ancillary chunk.
|
||||||
|
|
||||||
|
The changes made to the library, and bugs fixed are based on discussions
|
||||||
|
on the PNG-implement mailing list and not on material submitted
|
||||||
|
privately to Guy, Andreas, or Glenn. They will forward any good
|
||||||
|
suggestions to the list.
|
||||||
|
|
||||||
|
For a detailed description on using libpng, read libpng-manual.txt. For
|
||||||
|
examples of libpng in a program, see example.c and pngtest.c. For usage
|
||||||
|
information and restrictions (what little they are) on libpng, see
|
||||||
|
png.h. For a description on using zlib (the compression library used by
|
||||||
|
libpng) and zlib's restrictions, see zlib.h
|
||||||
|
|
||||||
|
I have included a general makefile, as well as several machine and
|
||||||
|
compiler specific ones, but you may have to modify one for your own needs.
|
||||||
|
|
||||||
|
You should use zlib 1.0.4 or later to run this, but it MAY work with
|
||||||
|
versions as old as zlib 0.95. Even so, there are bugs in older zlib
|
||||||
|
versions which can cause the output of invalid compression streams for
|
||||||
|
some images. You will definitely need zlib 1.0.4 or later if you are
|
||||||
|
taking advantage of the MS-DOS "far" structure allocation for the small
|
||||||
|
and medium memory models. You should also note that zlib is a
|
||||||
|
compression library that is useful for more things than just PNG files.
|
||||||
|
You can use zlib as a drop-in replacement for fread() and fwrite() if
|
||||||
|
you are so inclined.
|
||||||
|
|
||||||
|
zlib should be available at the same place that libpng is, or at.
|
||||||
|
ftp://ftp.info-zip.org/pub/infozip/zlib
|
||||||
|
|
||||||
|
You may also want a copy of the PNG specification. It is available
|
||||||
|
as an RFC, a W3C Recommendation, and an ISO/IEC Standard. You can find
|
||||||
|
these at http://www.libpng.org/pub/png/documents/
|
||||||
|
|
||||||
|
This code is currently being archived at libpng.sf.net in the
|
||||||
|
[DOWNLOAD] area, and on CompuServe, Lib 20 (PNG SUPPORT)
|
||||||
|
at GO GRAPHSUP. If you can't find it in any of those places,
|
||||||
|
e-mail me, and I'll help you find it.
|
||||||
|
|
||||||
|
If you have any code changes, requests, problems, etc., please e-mail
|
||||||
|
them to me. Also, I'd appreciate any make files or project files,
|
||||||
|
and any modifications you needed to make to get libpng to compile,
|
||||||
|
along with a #define variable to tell what compiler/system you are on.
|
||||||
|
If you needed to add transformations to libpng, or wish libpng would
|
||||||
|
provide the image in a different way, drop me a note (and code, if
|
||||||
|
possible), so I can consider supporting the transformation.
|
||||||
|
Finally, if you get any warning messages when compiling libpng
|
||||||
|
(note: not zlib), and they are easy to fix, I'd appreciate the
|
||||||
|
fix. Please mention "libpng" somewhere in the subject line. Thanks.
|
||||||
|
|
||||||
|
This release was created and will be supported by myself (of course
|
||||||
|
based in a large way on Guy's and Andreas' earlier work), and the PNG
|
||||||
|
development group.
|
||||||
|
|
||||||
|
Send comments/corrections/commendations to png-mng-implement at
|
||||||
|
lists.sourceforge.net (subscription required; visit
|
||||||
|
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
||||||
|
to subscribe) or to glennrp at users.sourceforge.net
|
||||||
|
|
||||||
|
You can't reach Guy, the original libpng author, at the addresses
|
||||||
|
given in previous versions of this document. He and Andreas will
|
||||||
|
read mail addressed to the png-implement list, however.
|
||||||
|
|
||||||
|
Please do not send general questions about PNG. Send them to
|
||||||
|
the (png-list at ccrc.wustl.edu, subscription required, write to
|
||||||
|
majordomo at ccrc.wustl.edu with "subscribe png-list" in your message).
|
||||||
|
On the other hand,
|
||||||
|
please do not send libpng questions to that address, send them to me
|
||||||
|
or to the png-implement list. I'll
|
||||||
|
get them in the end anyway. If you have a question about something
|
||||||
|
in the PNG specification that is related to using libpng, send it
|
||||||
|
to me. Send me any questions that start with "I was using libpng,
|
||||||
|
and ...". If in doubt, send questions to me. I'll bounce them
|
||||||
|
to others, if necessary.
|
||||||
|
|
||||||
|
Please do not send suggestions on how to change PNG. We have
|
||||||
|
been discussing PNG for nine years now, and it is official and
|
||||||
|
finished. If you have suggestions for libpng, however, I'll
|
||||||
|
gladly listen. Even if your suggestion is not used immediately,
|
||||||
|
it may be used later.
|
||||||
|
|
||||||
|
Files in this distribution:
|
||||||
|
|
||||||
|
ANNOUNCE => Announcement of this version, with recent changes
|
||||||
|
CHANGES => Description of changes between libpng versions
|
||||||
|
KNOWNBUG => List of known bugs and deficiencies
|
||||||
|
LICENSE => License to use and redistribute libpng
|
||||||
|
README => This file
|
||||||
|
TODO => Things not implemented in the current library
|
||||||
|
Y2KINFO => Statement of Y2K compliance
|
||||||
|
example.c => Example code for using libpng functions
|
||||||
|
libpng.3 => manual page for libpng (includes libpng-manual.txt)
|
||||||
|
libpng-manual.txt => Description of libpng and its functions
|
||||||
|
libpngpf.3 => manual page for libpng's private functions
|
||||||
|
png.5 => manual page for the PNG format
|
||||||
|
png.c => Basic interface functions common to library
|
||||||
|
png.h => Library function and interface declarations (public)
|
||||||
|
pngpriv.h => Library function and interface declarations (private)
|
||||||
|
pngconf.h => System specific library configuration (public)
|
||||||
|
pngstruct.h => png_struct declaration (private)
|
||||||
|
pnginfo.h => png_info struct declaration (private)
|
||||||
|
pngdebug.h => debugging macros (private)
|
||||||
|
pngerror.c => Error/warning message I/O functions
|
||||||
|
pngget.c => Functions for retrieving info from struct
|
||||||
|
pngmem.c => Memory handling functions
|
||||||
|
pngbar.png => PNG logo, 88x31
|
||||||
|
pngnow.png => PNG logo, 98x31
|
||||||
|
pngpread.c => Progressive reading functions
|
||||||
|
pngread.c => Read data/helper high-level functions
|
||||||
|
pngrio.c => Lowest-level data read I/O functions
|
||||||
|
pngrtran.c => Read data transformation functions
|
||||||
|
pngrutil.c => Read data utility functions
|
||||||
|
pngset.c => Functions for storing data into the info_struct
|
||||||
|
pngtest.c => Library test program
|
||||||
|
pngtest.png => Library test sample image
|
||||||
|
pngtrans.c => Common data transformation functions
|
||||||
|
pngwio.c => Lowest-level write I/O functions
|
||||||
|
pngwrite.c => High-level write functions
|
||||||
|
pngwtran.c => Write data transformations
|
||||||
|
pngwutil.c => Write utility functions
|
||||||
|
contrib => Contributions
|
||||||
|
gregbook => source code for PNG reading and writing, from
|
||||||
|
Greg Roelofs' "PNG: The Definitive Guide",
|
||||||
|
O'Reilly, 1999
|
||||||
|
msvctest => Builds and runs pngtest using a MSVC workspace
|
||||||
|
pngminus => Simple pnm2png and png2pnm programs
|
||||||
|
pngsuite => Test images
|
||||||
|
visupng => Contains a MSVC workspace for VisualPng
|
||||||
|
projects => Contains project files and workspaces for
|
||||||
|
building a DLL
|
||||||
|
cbuilder5 => Contains a Borland workspace for building
|
||||||
|
libpng and zlib
|
||||||
|
visualc6 => Contains a Microsoft Visual C++ (MSVC)
|
||||||
|
workspace for building libpng and zlib
|
||||||
|
visualc71 => Contains a Microsoft Visual C++ (MSVC)
|
||||||
|
workspace for building libpng and zlib
|
||||||
|
xcode => Contains an Apple xcode
|
||||||
|
workspace for building libpng and zlib
|
||||||
|
scripts => Directory containing scripts for building libpng:
|
||||||
|
(see scripts/README.txt for the list of scripts)
|
||||||
|
|
||||||
|
Good luck, and happy coding.
|
||||||
|
|
||||||
|
-Glenn Randers-Pehrson (current maintainer, since 1998)
|
||||||
|
Internet: glennrp at users.sourceforge.net
|
||||||
|
|
||||||
|
-Andreas Eric Dilger (former maintainer, 1996-1997)
|
||||||
|
Internet: adilger at enel.ucalgary.ca
|
||||||
|
Web: http://www-mddsp.enel.ucalgary.ca/People/adilger/
|
||||||
|
|
||||||
|
-Guy Eric Schalnat (original author and former maintainer, 1995-1996)
|
||||||
|
(formerly of Group 42, Inc)
|
||||||
|
Internet: gschal at infinet.com
|
||||||
Vendored
+27
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
TODO - list of things to do for libpng:
|
||||||
|
|
||||||
|
Final bug fixes.
|
||||||
|
Better C++ wrapper/full C++ implementation?
|
||||||
|
Fix problem with C++ and EXTERN "C".
|
||||||
|
cHRM transformation.
|
||||||
|
Remove setjmp/longjmp usage in favor of returning error codes.
|
||||||
|
Add "grayscale->palette" transformation and "palette->grayscale" detection.
|
||||||
|
Improved dithering.
|
||||||
|
Multi-lingual error and warning message support.
|
||||||
|
Complete sRGB transformation (presently it simply uses gamma=0.45455).
|
||||||
|
Man pages for function calls.
|
||||||
|
Better documentation.
|
||||||
|
Better filter selection
|
||||||
|
(counting huffman bits/precompression? filter inertia? filter costs?).
|
||||||
|
Histogram creation.
|
||||||
|
Text conversion between different code pages (Latin-1 -> Mac and DOS).
|
||||||
|
Avoid building gamma tables whenever possible.
|
||||||
|
Use greater precision when changing to linear gamma for compositing against
|
||||||
|
background and doing rgb-to-gray transformation.
|
||||||
|
Investigate pre-incremented loop counters and other loop constructions.
|
||||||
|
Add interpolated method of handling interlacing.
|
||||||
|
Switch to the simpler zlib (zlib/libpng) license if legally possible.
|
||||||
|
Extend pngvalid.c to validate more of the libpng transformations.
|
||||||
|
|
||||||
|
*/
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
This demonstrates the use of PNG_USER_CONFIG, pngusr.h and pngusr.dfa
|
|
||||||
to build minimal decoder, encoder, and progressive reader applications.
|
|
||||||
|
|
||||||
See the individual README and pngusr.dfa files for more explanation.
|
|
||||||
+2
-3
@@ -4,13 +4,11 @@
|
|||||||
#CC=cc
|
#CC=cc
|
||||||
CC=gcc
|
CC=gcc
|
||||||
LD=$(CC)
|
LD=$(CC)
|
||||||
|
STRIP=strip
|
||||||
|
|
||||||
# If awk fails try
|
# If awk fails try
|
||||||
# make AWK=nawk
|
# make AWK=nawk
|
||||||
|
|
||||||
# If cpp fails try
|
|
||||||
# make CPP=/lib/cpp
|
|
||||||
|
|
||||||
RM=rm -f
|
RM=rm -f
|
||||||
COPY=cp
|
COPY=cp
|
||||||
|
|
||||||
@@ -89,6 +87,7 @@ all: pngm2pnm$(E)
|
|||||||
|
|
||||||
pngm2pnm$(E): $(OBJS)
|
pngm2pnm$(E): $(OBJS)
|
||||||
$(LD) -o pngm2pnm$(E) $(OBJS)
|
$(LD) -o pngm2pnm$(E) $(OBJS)
|
||||||
|
$(STRIP) pngm2pnm$(E)
|
||||||
|
|
||||||
# The DFA_XTRA setting turns all libpng options off then
|
# The DFA_XTRA setting turns all libpng options off then
|
||||||
# turns on those required for this minimal build.
|
# turns on those required for this minimal build.
|
||||||
|
|||||||
+2
-3
@@ -4,13 +4,11 @@
|
|||||||
#CC=cc
|
#CC=cc
|
||||||
CC=gcc
|
CC=gcc
|
||||||
LD=$(CC)
|
LD=$(CC)
|
||||||
|
STRIP=strip
|
||||||
|
|
||||||
# If awk fails try
|
# If awk fails try
|
||||||
# make AWK=nawk
|
# make AWK=nawk
|
||||||
|
|
||||||
# If cpp fails try
|
|
||||||
# make CPP=/lib/cpp
|
|
||||||
|
|
||||||
RM=rm -f
|
RM=rm -f
|
||||||
COPY=cp
|
COPY=cp
|
||||||
|
|
||||||
@@ -88,6 +86,7 @@ all: pnm2pngm$(E)
|
|||||||
|
|
||||||
pnm2pngm$(E): $(OBJS)
|
pnm2pngm$(E): $(OBJS)
|
||||||
$(LD) -o pnm2pngm$(E) $(OBJS)
|
$(LD) -o pnm2pngm$(E) $(OBJS)
|
||||||
|
$(STRIP) pnm2pngm$(E)
|
||||||
|
|
||||||
# The DFA_XTRA setting turns all libpng options off then
|
# The DFA_XTRA setting turns all libpng options off then
|
||||||
# turns on those required for this minimal build.
|
# turns on those required for this minimal build.
|
||||||
|
|||||||
+2
-3
@@ -4,13 +4,11 @@
|
|||||||
#CC=cc
|
#CC=cc
|
||||||
CC=gcc
|
CC=gcc
|
||||||
LD=$(CC)
|
LD=$(CC)
|
||||||
|
STRIP=strip
|
||||||
|
|
||||||
# If awk fails try
|
# If awk fails try
|
||||||
# make AWK=nawk
|
# make AWK=nawk
|
||||||
|
|
||||||
# If cpp fails try
|
|
||||||
# make CPP=/lib/cpp
|
|
||||||
|
|
||||||
RM=rm -f
|
RM=rm -f
|
||||||
COPY=cp
|
COPY=cp
|
||||||
|
|
||||||
@@ -104,6 +102,7 @@ all: $(PROGDOCS) rpng2-x$(E)
|
|||||||
|
|
||||||
rpng2-x$(E): $(OBJS)
|
rpng2-x$(E): $(OBJS)
|
||||||
$(LD) -o rpng2-x$(E) $(OBJS) $(LIBS)
|
$(LD) -o rpng2-x$(E) $(OBJS) $(LIBS)
|
||||||
|
$(STRIP) rpng2-x$(E)
|
||||||
|
|
||||||
# The DFA_XTRA setting turns all libpng options off then
|
# The DFA_XTRA setting turns all libpng options off then
|
||||||
# turns on those required for this minimal build.
|
# turns on those required for this minimal build.
|
||||||
|
|||||||
-102
@@ -1,102 +0,0 @@
|
|||||||
|
|
||||||
pngsuite
|
|
||||||
--------
|
|
||||||
(c) Willem van Schaik, 1999, 2011
|
|
||||||
|
|
||||||
Permission to use, copy, modify, and distribute these images for any
|
|
||||||
purpose and without fee is hereby granted.
|
|
||||||
|
|
||||||
The 15 "bas*.png" images are part of the much larger PngSuite test-set of
|
|
||||||
images, available for developers of PNG supporting software. The
|
|
||||||
complete set, available at http:/www.schaik.com/pngsuite/, contains
|
|
||||||
a variety of images to test interlacing, gamma settings, ancillary
|
|
||||||
chunks, etc.
|
|
||||||
|
|
||||||
The "ft*.png" images are "free/libre" replacements for the transparent
|
|
||||||
corresponding t*.png images in the PngSuite.
|
|
||||||
|
|
||||||
The images in this directory represent the basic PNG color-types:
|
|
||||||
grayscale (1-16 bit deep), full color (8 or 16 bit), paletted
|
|
||||||
(1-8 bit) and grayscale or color images with alpha channel. You
|
|
||||||
can use them to test the proper functioning of PNG software.
|
|
||||||
|
|
||||||
filename depth type
|
|
||||||
------------ ------ --------------
|
|
||||||
basn0g01.png 1-bit grayscale
|
|
||||||
basn0g02.png 2-bit grayscale
|
|
||||||
basn0g04.png 4-bit grayscale
|
|
||||||
basn0g08.png 8-bit grayscale
|
|
||||||
basn0g16.png 16-bit grayscale
|
|
||||||
basn2c08.png 8-bit truecolor
|
|
||||||
basn2c16.png 16-bit truecolor
|
|
||||||
basn3p01.png 1-bit paletted
|
|
||||||
basn3p02.png 2-bit paletted
|
|
||||||
basn3p04.png 4-bit paletted
|
|
||||||
basn3p08.png 8-bit paletted
|
|
||||||
basn4a08.png 8-bit gray with alpha
|
|
||||||
basn4a16.png 16-bit gray with alpha
|
|
||||||
basn6a08.png 8-bit RGBA
|
|
||||||
basn6a16.png 16-bit RGBA
|
|
||||||
|
|
||||||
ftbbn0g04.png 4-bit grayscale, black bKGD
|
|
||||||
ftbbn2c16.png 16-bit truecolor, black bKGD
|
|
||||||
ftbbn3p08.png 8-bit paletted, black bKGD
|
|
||||||
ftbgn2c16.png 16-bit truecolor, gray bKGD
|
|
||||||
ftbgn3p08.png 8-bit paletted, gray bKGD
|
|
||||||
ftbrn2c08.png 8-bit truecolor, red bKGD
|
|
||||||
ftbwn0g16.png 16-bit gray, white bKGD
|
|
||||||
ftbwn3p08.png 8-bit paletted, white bKGD
|
|
||||||
ftbyn3p08.png 8-bit paletted, yellow bKGD
|
|
||||||
ftp0n0g08.png 8-bit grayscale, opaque
|
|
||||||
ftp0n2c08.png 8-bit truecolor, opaque
|
|
||||||
ftp0n3p08.png 8-bit paletted, opaque
|
|
||||||
ftp1n3p08.png 8-bit paletted, no bKGD
|
|
||||||
|
|
||||||
Here is the correct result of typing "pngtest -m bas*.png" in
|
|
||||||
this directory:
|
|
||||||
|
|
||||||
Testing basn0g01.png: PASS (524 zero samples)
|
|
||||||
Filter 0 was used 32 times
|
|
||||||
Testing basn0g02.png: PASS (448 zero samples)
|
|
||||||
Filter 0 was used 32 times
|
|
||||||
Testing basn0g04.png: PASS (520 zero samples)
|
|
||||||
Filter 0 was used 32 times
|
|
||||||
Testing basn0g08.png: PASS (3 zero samples)
|
|
||||||
Filter 1 was used 9 times
|
|
||||||
Filter 4 was used 23 times
|
|
||||||
Testing basn0g16.png: PASS (1 zero samples)
|
|
||||||
Filter 1 was used 1 times
|
|
||||||
Filter 2 was used 31 times
|
|
||||||
Testing basn2c08.png: PASS (6 zero samples)
|
|
||||||
Filter 1 was used 5 times
|
|
||||||
Filter 4 was used 27 times
|
|
||||||
Testing basn2c16.png: PASS (592 zero samples)
|
|
||||||
Filter 1 was used 1 times
|
|
||||||
Filter 4 was used 31 times
|
|
||||||
Testing basn3p01.png: PASS (512 zero samples)
|
|
||||||
Filter 0 was used 32 times
|
|
||||||
Testing basn3p02.png: PASS (448 zero samples)
|
|
||||||
Filter 0 was used 32 times
|
|
||||||
Testing basn3p04.png: PASS (544 zero samples)
|
|
||||||
Filter 0 was used 32 times
|
|
||||||
Testing basn3p08.png: PASS (4 zero samples)
|
|
||||||
Filter 0 was used 32 times
|
|
||||||
Testing basn4a08.png: PASS (32 zero samples)
|
|
||||||
Filter 1 was used 1 times
|
|
||||||
Filter 4 was used 31 times
|
|
||||||
Testing basn4a16.png: PASS (64 zero samples)
|
|
||||||
Filter 0 was used 1 times
|
|
||||||
Filter 1 was used 2 times
|
|
||||||
Filter 2 was used 1 times
|
|
||||||
Filter 4 was used 28 times
|
|
||||||
Testing basn6a08.png: PASS (160 zero samples)
|
|
||||||
Filter 1 was used 1 times
|
|
||||||
Filter 4 was used 31 times
|
|
||||||
Testing basn6a16.png: PASS (1072 zero samples)
|
|
||||||
Filter 1 was used 4 times
|
|
||||||
Filter 4 was used 28 times
|
|
||||||
libpng passes test
|
|
||||||
|
|
||||||
Willem van Schaik
|
|
||||||
<[email protected]>
|
|
||||||
October 1999
|
|
||||||
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
#if 0 /* in case someone actually tries to compile this */
|
#if 0 /* in case someone actually tries to compile this */
|
||||||
|
|
||||||
/* example.c - an example of using libpng
|
/* example.c - an example of using libpng
|
||||||
* Last changed in libpng 1.5.2 [March 31, 2011]
|
* Last changed in libpng 1.5.0 [January 6, 2011]
|
||||||
* This file has been placed in the public domain by the authors.
|
* This file has been placed in the public domain by the authors.
|
||||||
* Maintained 1998-2011 Glenn Randers-Pehrson
|
* Maintained 1998-2011 Glenn Randers-Pehrson
|
||||||
* Maintained 1996, 1997 Andreas Dilger)
|
* Maintained 1996, 1997 Andreas Dilger)
|
||||||
|
|||||||
+127
@@ -0,0 +1,127 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
# libpng-config
|
||||||
|
# provides configuration info for libpng.
|
||||||
|
|
||||||
|
# Copyright (C) 2002, 2004, 2006, 2007 Glenn Randers-Pehrson
|
||||||
|
|
||||||
|
# This code is released under the libpng license.
|
||||||
|
# For conditions of distribution and use, see the disclaimer
|
||||||
|
# and license in png.h
|
||||||
|
|
||||||
|
# Modeled after libxml-config.
|
||||||
|
|
||||||
|
version="@PNGLIB_VERSION@"
|
||||||
|
prefix="@prefix@"
|
||||||
|
exec_prefix="@exec_prefix@"
|
||||||
|
libdir="@libdir@"
|
||||||
|
includedir="@includedir@/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@"
|
||||||
|
libs="-lpng@PNGLIB_MAJOR@@PNGLIB_MINOR@"
|
||||||
|
all_libs="-lpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ @LIBS@"
|
||||||
|
I_opts="-I${includedir}"
|
||||||
|
L_opts="-L${libdir}"
|
||||||
|
R_opts=""
|
||||||
|
cppflags=""
|
||||||
|
ccopts=""
|
||||||
|
ldopts=""
|
||||||
|
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
cat <<EOF
|
||||||
|
Usage: $0 [OPTION] ...
|
||||||
|
|
||||||
|
Known values for OPTION are:
|
||||||
|
|
||||||
|
--prefix print libpng prefix
|
||||||
|
--libdir print path to directory containing library
|
||||||
|
--libs print library linking information
|
||||||
|
--ccopts print compiler options
|
||||||
|
--cppflags print pre-processor flags
|
||||||
|
--cflags print preprocessor flags, I_opts, and compiler options
|
||||||
|
--I_opts print "-I" include options
|
||||||
|
--L_opts print linker "-L" flags for dynamic linking
|
||||||
|
--R_opts print dynamic linker "-R" or "-rpath" flags
|
||||||
|
--ldopts print linker options
|
||||||
|
--ldflags print linker flags (ldopts, L_opts, R_opts, and libs)
|
||||||
|
--static revise subsequent outputs for static linking
|
||||||
|
--help print this help and exit
|
||||||
|
--version print version information
|
||||||
|
EOF
|
||||||
|
|
||||||
|
exit $1
|
||||||
|
}
|
||||||
|
|
||||||
|
if test $# -eq 0; then
|
||||||
|
usage 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
while test $# -gt 0; do
|
||||||
|
case "$1" in
|
||||||
|
|
||||||
|
--prefix)
|
||||||
|
echo ${prefix}
|
||||||
|
;;
|
||||||
|
|
||||||
|
--version)
|
||||||
|
echo ${version}
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
--help)
|
||||||
|
usage 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
--ccopts)
|
||||||
|
echo ${ccopts}
|
||||||
|
;;
|
||||||
|
|
||||||
|
--cppflags)
|
||||||
|
echo ${cppflags}
|
||||||
|
;;
|
||||||
|
|
||||||
|
--cflags)
|
||||||
|
echo ${I_opts} ${cppflags} ${ccopts}
|
||||||
|
;;
|
||||||
|
|
||||||
|
--libdir)
|
||||||
|
echo ${libdir}
|
||||||
|
;;
|
||||||
|
|
||||||
|
--libs)
|
||||||
|
echo ${libs}
|
||||||
|
;;
|
||||||
|
|
||||||
|
--I_opts)
|
||||||
|
echo ${I_opts}
|
||||||
|
;;
|
||||||
|
|
||||||
|
--L_opts)
|
||||||
|
echo ${L_opts}
|
||||||
|
;;
|
||||||
|
|
||||||
|
--R_opts)
|
||||||
|
echo ${R_opts}
|
||||||
|
;;
|
||||||
|
|
||||||
|
--ldopts)
|
||||||
|
echo ${ldopts}
|
||||||
|
;;
|
||||||
|
|
||||||
|
--ldflags)
|
||||||
|
echo ${ldopts} ${L_opts} ${R_opts} ${libs}
|
||||||
|
;;
|
||||||
|
|
||||||
|
--static)
|
||||||
|
R_opts=""
|
||||||
|
libs=${all_libs}
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
||||||
+52
-130
@@ -1,6 +1,6 @@
|
|||||||
libpng-manual.txt - A description on how to use and modify libpng
|
libpng-manual.txt - A description on how to use and modify libpng
|
||||||
|
|
||||||
libpng version 1.5.2 - March 31, 2011
|
libpng version 1.5.1 - February 3, 2011
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
<glennrp at users.sourceforge.net>
|
<glennrp at users.sourceforge.net>
|
||||||
Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||||
@@ -11,7 +11,7 @@ libpng-manual.txt - A description on how to use and modify libpng
|
|||||||
|
|
||||||
Based on:
|
Based on:
|
||||||
|
|
||||||
libpng versions 0.97, January 1998, through 1.5.2 - March 31, 2011
|
libpng versions 0.97, January 1998, through 1.5.1 - February 3, 2011
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||||
|
|
||||||
@@ -513,19 +513,6 @@ To inform libpng about your function, use
|
|||||||
|
|
||||||
png_set_read_status_fn(png_ptr, read_row_callback);
|
png_set_read_status_fn(png_ptr, read_row_callback);
|
||||||
|
|
||||||
When this function is called the row has already been completely processed and
|
|
||||||
the 'row' and 'pass' refer to the next row to be handled. For the
|
|
||||||
non-interlaced case the row that was just handled is simply one less than the
|
|
||||||
passed in row number, and pass will always be 0. For the interlaced case the
|
|
||||||
same applies unless the row value is 0, in which case the row just handled was
|
|
||||||
the last one from one of the preceding passes. Because interlacing may skip a
|
|
||||||
pass you cannot be sure that the preceding pass is just 'pass-1', if you really
|
|
||||||
need to know what the last pass is record (row,pass) from the callback and use
|
|
||||||
the last recorded value each time.
|
|
||||||
|
|
||||||
As with the user transform you can find the output row using the
|
|
||||||
PNG_ROW_FROM_PASS_ROW macro.
|
|
||||||
|
|
||||||
Unknown-chunk handling
|
Unknown-chunk handling
|
||||||
|
|
||||||
Now you get to set the way the library processes unknown chunks in the
|
Now you get to set the way the library processes unknown chunks in the
|
||||||
@@ -1174,13 +1161,13 @@ viewing application that wishes to treat all images in the same way.
|
|||||||
if (color_type == PNG_COLOR_TYPE_PALETTE)
|
if (color_type == PNG_COLOR_TYPE_PALETTE)
|
||||||
png_set_palette_to_rgb(png_ptr);
|
png_set_palette_to_rgb(png_ptr);
|
||||||
|
|
||||||
if (png_get_valid(png_ptr, info_ptr,
|
|
||||||
PNG_INFO_tRNS)) png_set_tRNS_to_alpha(png_ptr);
|
|
||||||
|
|
||||||
if (color_type == PNG_COLOR_TYPE_GRAY &&
|
if (color_type == PNG_COLOR_TYPE_GRAY &&
|
||||||
bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr);
|
bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr);
|
||||||
|
|
||||||
The first two functions are actually aliases for png_set_expand(), added
|
if (png_get_valid(png_ptr, info_ptr,
|
||||||
|
PNG_INFO_tRNS)) png_set_tRNS_to_alpha(png_ptr);
|
||||||
|
|
||||||
|
These three functions are actually aliases for png_set_expand(), added
|
||||||
in libpng version 1.0.4, with the function names expanded to improve code
|
in libpng version 1.0.4, with the function names expanded to improve code
|
||||||
readability. In some future version they may actually do different
|
readability. In some future version they may actually do different
|
||||||
things.
|
things.
|
||||||
@@ -1188,13 +1175,42 @@ things.
|
|||||||
As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was
|
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.
|
added. It expands the sample depth without changing tRNS to alpha.
|
||||||
|
|
||||||
As of libpng version 1.5.2, png_set_expand_16() was added. It behaves as
|
As of libpng version 1.5.1, not all possible expansions are supported.
|
||||||
png_set_expand(), however, the resultant channels have 16 bits rather than 8.
|
|
||||||
Use this when the output color or gray channels are made linear to avoid fairly
|
|
||||||
severe accuracy loss.
|
|
||||||
|
|
||||||
if (bit_depth < 16)
|
In the following table, the 01 means grayscale with depth<8, 31 means
|
||||||
png_set_expand_16(png_ptr);
|
indexed with depth<8, other numerals represent the color type, "T" means
|
||||||
|
the tRNS chunk is present, A means an alpha channel is present, and O
|
||||||
|
means tRNS or alpha is present but all pixels in the image are opaque.
|
||||||
|
|
||||||
|
FROM 01 31 0 0T 0O 2 2T 2O 3 3T 3O 4A 4O 6A 6O
|
||||||
|
TO
|
||||||
|
01 -
|
||||||
|
31 -
|
||||||
|
0 1 -
|
||||||
|
0T -
|
||||||
|
0O -
|
||||||
|
2 GX -
|
||||||
|
2T -
|
||||||
|
2O -
|
||||||
|
3 1 -
|
||||||
|
3T -
|
||||||
|
3O -
|
||||||
|
4A T -
|
||||||
|
4O -
|
||||||
|
6A GX TX TX -
|
||||||
|
6O GX TX -
|
||||||
|
|
||||||
|
Within the matrix,
|
||||||
|
"-" means the transformation is not supported.
|
||||||
|
"X" means the transformation is obtained by png_set_expand().
|
||||||
|
"1" means the transformation is obtained by
|
||||||
|
png_set_expand_gray_1_2_4_to_8
|
||||||
|
"G" means the transformation is obtained by
|
||||||
|
png_set_gray_to_rgb().
|
||||||
|
"P" means the transformation is obtained by
|
||||||
|
png_set_expand_palette_to_rgb().
|
||||||
|
"T" means the transformation is obtained by
|
||||||
|
png_set_tRNS_to_alpha().
|
||||||
|
|
||||||
PNG can have files with 16 bits per channel. If you only can handle
|
PNG can have files with 16 bits per channel. If you only can handle
|
||||||
8 bits per channel, this will strip the pixels down to 8 bit.
|
8 bits per channel, this will strip the pixels down to 8 bit.
|
||||||
@@ -1210,66 +1226,6 @@ it with the background, so that's what you should probably do):
|
|||||||
if (color_type & PNG_COLOR_MASK_ALPHA)
|
if (color_type & PNG_COLOR_MASK_ALPHA)
|
||||||
png_set_strip_alpha(png_ptr);
|
png_set_strip_alpha(png_ptr);
|
||||||
|
|
||||||
See below for png_set_background(), which does the correct composition on a
|
|
||||||
single opaque color. This is probably what you should do in all cases rather
|
|
||||||
than use png_set_strip_alpha() - unless you know for sure that it is the wrong
|
|
||||||
thing to do.
|
|
||||||
|
|
||||||
As of libpng version 1.5.2, almost all useful expansions are supported, the
|
|
||||||
major ommissions are convertion of grayscale to indexed images (which can be
|
|
||||||
done trivially in the application) and convertion of indexed to grayscale (which
|
|
||||||
can be done by a trivial manipulation of the palette.)
|
|
||||||
|
|
||||||
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
|
|
||||||
the tRNS chunk is present, A means an alpha channel is present, and O
|
|
||||||
means tRNS or alpha is present but all pixels in the image are opaque.
|
|
||||||
|
|
||||||
FROM 01 31 0 0T 0O 2 2T 2O 3 3T 3O 4A 4O 6A 6O
|
|
||||||
TO
|
|
||||||
01 - [G] - - - - - - - - - - - - -
|
|
||||||
31 [Q] Q [Q] [Q] [Q] Q Q Q Q Q Q [Q] [Q] Q Q
|
|
||||||
0 1 G + . . G G G G G G B B GB GB
|
|
||||||
0T lt Gt t + . Gt G G Gt G G Bt Bt GBt GBt
|
|
||||||
0O lt Gt t . + Gt Gt G Gt Gt G Bt Bt GBt GBt
|
|
||||||
2 C P C C C + . . C - - CB CB B B
|
|
||||||
2T Ct - Ct C C t + t - - - CBt CBt Bt Bt
|
|
||||||
2O Ct - Ct C C t t + - - - CBt CBt Bt Bt
|
|
||||||
3 [Q] p [Q] [Q] [Q] Q Q Q + . . [Q] [Q] Q Q
|
|
||||||
3T [Qt] p [Qt][Q] [Q] Qt Qt Qt t + t [Qt][Qt] Qt Qt
|
|
||||||
3O [Qt] p [Qt][Q] [Q] Qt Qt Qt t t + [Qt][Qt] Qt Qt
|
|
||||||
4A lA G A T T GA GT GT GA GT GT + BA G GBA
|
|
||||||
4O lA GBA A T T GA GT GT GA GT GT BA + GBA G
|
|
||||||
6A CA PA CA C C A T tT PA P P C CBA + BA
|
|
||||||
6O CA PBA CA C C A tT T PA P P CBA C BA +
|
|
||||||
|
|
||||||
Within the matrix,
|
|
||||||
"+" identifies entries where 'from' and 'to' are the same.
|
|
||||||
"-" means the transformation is not supported.
|
|
||||||
"." means nothing is necessary (a tRNS chunk can just be ignored).
|
|
||||||
"t" means the transformation is obtained by png_set_tRNS.
|
|
||||||
"A" means the transformation is obtained by png_set_add_alpha().
|
|
||||||
"X" means the transformation is obtained by png_set_expand().
|
|
||||||
"1" means the transformation is obtained by
|
|
||||||
png_set_expand_gray_1_2_4_to_8() (and by png_set_expand() if there
|
|
||||||
is no transparency in the original or the final format).
|
|
||||||
"C" means the transformation is obtained by png_set_gray_to_rgb().
|
|
||||||
"G" means the transformation is obtained by png_set_rgb_to_gray() or
|
|
||||||
png_set_rgb_to_Y().
|
|
||||||
"P" means the transformation is obtained by
|
|
||||||
png_set_expand_palette_to_rgb().
|
|
||||||
"p" means the transformation is obtained by png_set_packing().
|
|
||||||
"Q" means the transformation is obtained by png_set_quantize().
|
|
||||||
"T" means the transformation is obtained by png_set_tRNS_to_alpha().
|
|
||||||
"B" means the transformation is obtained by png_set_background(), or
|
|
||||||
png_strip_alpha().
|
|
||||||
|
|
||||||
When an entry has multiple transforms listed all are required to cause the
|
|
||||||
right overall transformation. When two transforms are separated by a comma
|
|
||||||
either will do the job. When transforms are enclosed in [] the transform should
|
|
||||||
do the job but this is currently unimplemented - a different format will result
|
|
||||||
if the suggested transformations are used.
|
|
||||||
|
|
||||||
In PNG files, the alpha channel in an image
|
In PNG files, the alpha channel in an image
|
||||||
is the level of opacity. If you need the alpha channel in an image to
|
is the level of opacity. If you need the alpha channel in an image to
|
||||||
be the level of transparency instead of opacity, you can invert the
|
be the level of transparency instead of opacity, you can invert the
|
||||||
@@ -1396,7 +1352,7 @@ Libpng approximates this with integers scaled by 32768:
|
|||||||
The calculation is done in a linear colorspace, if the image gamma
|
The calculation is done in a linear colorspace, if the image gamma
|
||||||
can be determined.
|
can be determined.
|
||||||
|
|
||||||
If you have a grayscale and you are using png_set_expand_gray_1_2_4_to_8(),
|
If you have a grayscale and you are using png_set_expand_depth(),
|
||||||
png_set_expand(), or png_set_gray_to_rgb to change to truecolor or to
|
png_set_expand(), or png_set_gray_to_rgb to change to truecolor or to
|
||||||
a higher bit-depth, you must either supply the background color as a gray
|
a higher bit-depth, you must either supply the background color as a gray
|
||||||
value at the original file bit-depth (need_expand = 1) or else supply the
|
value at the original file bit-depth (need_expand = 1) or else supply the
|
||||||
@@ -1555,7 +1511,7 @@ with
|
|||||||
|
|
||||||
You must supply the function
|
You must supply the function
|
||||||
|
|
||||||
void read_transform_fn(png_structp png_ptr, png_row_infop
|
void read_transform_fn(png_structp png_ptr, row_info_ptr
|
||||||
row_info, png_bytep data)
|
row_info, png_bytep data)
|
||||||
|
|
||||||
See pngtest.c for a working example. Your function will be called
|
See pngtest.c for a working example. Your function will be called
|
||||||
@@ -1574,14 +1530,6 @@ supported if user transforms are supported, secondly they may well return
|
|||||||
unexpected results unless the row is actually being processed at the moment they
|
unexpected results unless the row is actually being processed at the moment they
|
||||||
are called.
|
are called.
|
||||||
|
|
||||||
With interlaced
|
|
||||||
images the value returned is the row in the input sub-image image. Use
|
|
||||||
PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to
|
|
||||||
find the output pixel (x,y) given an interlaced sub-image pixel (row,col,pass).
|
|
||||||
|
|
||||||
The discussion of interlace handling above contains more information on how to
|
|
||||||
use these values.
|
|
||||||
|
|
||||||
You can also set up a pointer to a user structure for use by your
|
You can also set up a pointer to a user structure for use by your
|
||||||
callback function, and you can inform libpng that your transform
|
callback function, and you can inform libpng that your transform
|
||||||
function will change the number of channels or bit depth with the
|
function will change the number of channels or bit depth with the
|
||||||
@@ -2235,20 +2183,6 @@ To inform libpng about your function, use
|
|||||||
|
|
||||||
png_set_write_status_fn(png_ptr, write_row_callback);
|
png_set_write_status_fn(png_ptr, write_row_callback);
|
||||||
|
|
||||||
When this function is called the row has already been completely processed and
|
|
||||||
it has also been written out. The 'row' and 'pass' refer to the next row to be
|
|
||||||
handled. For the
|
|
||||||
non-interlaced case the row that was just handled is simply one less than the
|
|
||||||
passed in row number, and pass will always be 0. For the interlaced case the
|
|
||||||
same applies unless the row value is 0, in which case the row just handled was
|
|
||||||
the last one from one of the preceding passes. Because interlacing may skip a
|
|
||||||
pass you cannot be sure that the preceding pass is just 'pass-1', if you really
|
|
||||||
need to know what the last pass is record (row,pass) from the callback and use
|
|
||||||
the last recorded value each time.
|
|
||||||
|
|
||||||
As with the user transform you can find the output row using the
|
|
||||||
PNG_ROW_FROM_PASS_ROW macro.
|
|
||||||
|
|
||||||
You now have the option of modifying how the compression library will
|
You now have the option of modifying how the compression library will
|
||||||
run. The following functions are mainly for testing, but may be useful
|
run. The following functions are mainly for testing, but may be useful
|
||||||
in some cases, like if you need to write PNG files extremely fast and
|
in some cases, like if you need to write PNG files extremely fast and
|
||||||
@@ -2293,8 +2227,6 @@ which changes how much time zlib spends on trying to compress the image
|
|||||||
data. See the Compression Library (zlib.h and algorithm.txt, distributed
|
data. See the Compression Library (zlib.h and algorithm.txt, distributed
|
||||||
with zlib) for details on the compression levels.
|
with zlib) for details on the compression levels.
|
||||||
|
|
||||||
#include zlib.h
|
|
||||||
|
|
||||||
/* set the zlib compression level */
|
/* set the zlib compression level */
|
||||||
png_set_compression_level(png_ptr,
|
png_set_compression_level(png_ptr,
|
||||||
Z_BEST_COMPRESSION);
|
Z_BEST_COMPRESSION);
|
||||||
@@ -2847,8 +2779,8 @@ with
|
|||||||
|
|
||||||
You must supply the function
|
You must supply the function
|
||||||
|
|
||||||
void write_transform_fn(png_structp png_ptr, png_row_infop
|
void write_transform_fn(png_structp png_ptr ptr,
|
||||||
row_info, png_bytep data)
|
row_info_ptr row_info, png_bytep data)
|
||||||
|
|
||||||
See pngtest.c for a working example. Your function will be called
|
See pngtest.c for a working example. Your function will be called
|
||||||
before any of the other transformations are processed. If supported
|
before any of the other transformations are processed. If supported
|
||||||
@@ -2856,15 +2788,9 @@ libpng also supplies an information routine that may be called from
|
|||||||
your callback:
|
your callback:
|
||||||
|
|
||||||
png_get_current_row_number(png_ptr);
|
png_get_current_row_number(png_ptr);
|
||||||
png_get_current_pass_number(png_ptr);
|
|
||||||
|
|
||||||
This returns the current row passed to the transform. With interlaced
|
This returns the current row passed to the transform. Even with interlaced
|
||||||
images the value returned is the row in the input sub-image image. Use
|
images the value returned is the row in the final output image.
|
||||||
PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to
|
|
||||||
find the output pixel (x,y) given an interlaced sub-image pixel (row,col,pass).
|
|
||||||
|
|
||||||
The discussion of interlace handling above contains more information on how to
|
|
||||||
use these values.
|
|
||||||
|
|
||||||
You can also set up a pointer to a user structure for use by your
|
You can also set up a pointer to a user structure for use by your
|
||||||
callback function.
|
callback function.
|
||||||
@@ -3284,7 +3210,6 @@ specify no compression (Z_NO_COMPRESSION = 0), but this would create
|
|||||||
files larger than just storing the raw bitmap. You can specify the
|
files larger than just storing the raw bitmap. You can specify the
|
||||||
compression level by calling:
|
compression level by calling:
|
||||||
|
|
||||||
#include zlib.h
|
|
||||||
png_set_compression_level(png_ptr, level);
|
png_set_compression_level(png_ptr, level);
|
||||||
|
|
||||||
Another useful one is to reduce the memory level used by the library.
|
Another useful one is to reduce the memory level used by the library.
|
||||||
@@ -3295,14 +3220,12 @@ other things, lower levels will result in sections of incompressible
|
|||||||
data being emitted in smaller stored blocks, with a correspondingly
|
data being emitted in smaller stored blocks, with a correspondingly
|
||||||
larger relative overhead of up to 15% in the worst case.
|
larger relative overhead of up to 15% in the worst case.
|
||||||
|
|
||||||
#include zlib.h
|
|
||||||
png_set_compression_mem_level(png_ptr, level);
|
png_set_compression_mem_level(png_ptr, level);
|
||||||
|
|
||||||
The other functions are for configuring zlib. They are not recommended
|
The other functions are for configuring zlib. They are not recommended
|
||||||
for normal use and may result in writing an invalid PNG file. See
|
for normal use and may result in writing an invalid PNG file. See
|
||||||
zlib.h for more information on what these mean.
|
zlib.h for more information on what these mean.
|
||||||
|
|
||||||
#include zlib.h
|
|
||||||
png_set_compression_strategy(png_ptr,
|
png_set_compression_strategy(png_ptr,
|
||||||
strategy);
|
strategy);
|
||||||
|
|
||||||
@@ -3700,7 +3623,7 @@ and memset(), respectively.
|
|||||||
The function png_set_gray_1_2_4_to_8() was removed. It has been
|
The function png_set_gray_1_2_4_to_8() was removed. It has been
|
||||||
deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with
|
deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with
|
||||||
png_set_expand_gray_1_2_4_to_8() because the former function also
|
png_set_expand_gray_1_2_4_to_8() because the former function also
|
||||||
expanded any tRNS chunk to an alpha channel.
|
expanded palette images.
|
||||||
|
|
||||||
Macros for png_get_uint_16, png_get_uint_32, and png_get_int_32
|
Macros for png_get_uint_16, png_get_uint_32, and png_get_int_32
|
||||||
were added and are used by default instead of the corresponding
|
were added and are used by default instead of the corresponding
|
||||||
@@ -3785,8 +3708,7 @@ application code. (It is extremely rare for an application to do this.)
|
|||||||
|
|
||||||
Any program that compiled against libpng 1.4 and did not use deprecated
|
Any program that compiled against libpng 1.4 and did not use deprecated
|
||||||
features or access internal library structures should compile and work
|
features or access internal library structures should compile and work
|
||||||
against libpng 1.5, except for the change in the prototype for
|
against libpng 1.5.
|
||||||
png_get_iCCP() and png_set_iCCP() API functions mentioned above.
|
|
||||||
|
|
||||||
libpng 1.5.0 adds PNG_ PASS macros to help in the reading and writing of
|
libpng 1.5.0 adds PNG_ PASS macros to help in the reading and writing of
|
||||||
interlaced images. The macros return the number of rows and columns in
|
interlaced images. The macros return the number of rows and columns in
|
||||||
@@ -3794,7 +3716,7 @@ each pass and information that can be used to de-interlace and (if
|
|||||||
absolutely necessary) interlace an image.
|
absolutely necessary) interlace an image.
|
||||||
|
|
||||||
libpng 1.5.0 adds an API png_longjmp(png_ptr, value). This API calls
|
libpng 1.5.0 adds an API png_longjmp(png_ptr, value). This API calls
|
||||||
the application-provided png_longjmp_ptr on the internal, but application
|
the application provided png_longjmp_ptr on the internal, but application
|
||||||
initialized, jmpbuf. It is provided as a convenience to avoid the need
|
initialized, jmpbuf. It is provided as a convenience to avoid the need
|
||||||
to use the png_jmpbuf macro, which had the unnecessary side effect of
|
to use the png_jmpbuf macro, which had the unnecessary side effect of
|
||||||
resetting the internal png_longjmp_ptr value.
|
resetting the internal png_longjmp_ptr value.
|
||||||
@@ -4159,13 +4081,13 @@ Other rules can be inferred by inspecting the libpng source.
|
|||||||
|
|
||||||
XIV. Y2K Compliance in libpng
|
XIV. Y2K Compliance in libpng
|
||||||
|
|
||||||
March 31, 2011
|
February 3, 2011
|
||||||
|
|
||||||
Since the PNG Development group is an ad-hoc body, we can't make
|
Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
an official declaration.
|
an official declaration.
|
||||||
|
|
||||||
This is your unofficial assurance that libpng from version 0.71 and
|
This is your unofficial assurance that libpng from version 0.71 and
|
||||||
upward through 1.5.2 are Y2K compliant. It is my belief that earlier
|
upward through 1.5.1 are Y2K compliant. It is my belief that earlier
|
||||||
versions were also Y2K compliant.
|
versions were also Y2K compliant.
|
||||||
|
|
||||||
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
||||||
|
|||||||
Vendored
+57
-142
@@ -1,6 +1,6 @@
|
|||||||
.TH LIBPNG 3 "March 31, 2011"
|
.TH LIBPNG 3 "February 3, 2011"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.5.2
|
libpng \- Portable Network Graphics (PNG) Reference Library 1.5.1
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
\fI\fB
|
\fI\fB
|
||||||
|
|
||||||
@@ -576,10 +576,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.2
|
|||||||
|
|
||||||
\fI\fB
|
\fI\fB
|
||||||
|
|
||||||
\fBvoid png_set_expand_16 (png_structp \fIpng_ptr\fP\fB);\fP
|
|
||||||
|
|
||||||
\fI\fB
|
|
||||||
|
|
||||||
\fBvoid png_set_expand_gray_1_2_4_to_8 (png_structp \fIpng_ptr\fP\fB);\fP
|
\fBvoid png_set_expand_gray_1_2_4_to_8 (png_structp \fIpng_ptr\fP\fB);\fP
|
||||||
|
|
||||||
\fI\fB
|
\fI\fB
|
||||||
@@ -923,7 +919,7 @@ Following is a copy of the libpng-manual.txt file that accompanies libpng.
|
|||||||
.SH LIBPNG.TXT
|
.SH LIBPNG.TXT
|
||||||
libpng-manual.txt - A description on how to use and modify libpng
|
libpng-manual.txt - A description on how to use and modify libpng
|
||||||
|
|
||||||
libpng version 1.5.2 - March 31, 2011
|
libpng version 1.5.1 - February 3, 2011
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
<glennrp at users.sourceforge.net>
|
<glennrp at users.sourceforge.net>
|
||||||
Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||||
@@ -934,7 +930,7 @@ libpng-manual.txt - A description on how to use and modify libpng
|
|||||||
|
|
||||||
Based on:
|
Based on:
|
||||||
|
|
||||||
libpng versions 0.97, January 1998, through 1.5.2 - March 31, 2011
|
libpng versions 0.97, January 1998, through 1.5.1 - February 3, 2011
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||||
|
|
||||||
@@ -1436,19 +1432,6 @@ To inform libpng about your function, use
|
|||||||
|
|
||||||
png_set_read_status_fn(png_ptr, read_row_callback);
|
png_set_read_status_fn(png_ptr, read_row_callback);
|
||||||
|
|
||||||
When this function is called the row has already been completely processed and
|
|
||||||
the 'row' and 'pass' refer to the next row to be handled. For the
|
|
||||||
non-interlaced case the row that was just handled is simply one less than the
|
|
||||||
passed in row number, and pass will always be 0. For the interlaced case the
|
|
||||||
same applies unless the row value is 0, in which case the row just handled was
|
|
||||||
the last one from one of the preceding passes. Because interlacing may skip a
|
|
||||||
pass you cannot be sure that the preceding pass is just 'pass-1', if you really
|
|
||||||
need to know what the last pass is record (row,pass) from the callback and use
|
|
||||||
the last recorded value each time.
|
|
||||||
|
|
||||||
As with the user transform you can find the output row using the
|
|
||||||
PNG_ROW_FROM_PASS_ROW macro.
|
|
||||||
|
|
||||||
.SS Unknown-chunk handling
|
.SS Unknown-chunk handling
|
||||||
|
|
||||||
Now you get to set the way the library processes unknown chunks in the
|
Now you get to set the way the library processes unknown chunks in the
|
||||||
@@ -2097,13 +2080,13 @@ viewing application that wishes to treat all images in the same way.
|
|||||||
if (color_type == PNG_COLOR_TYPE_PALETTE)
|
if (color_type == PNG_COLOR_TYPE_PALETTE)
|
||||||
png_set_palette_to_rgb(png_ptr);
|
png_set_palette_to_rgb(png_ptr);
|
||||||
|
|
||||||
if (png_get_valid(png_ptr, info_ptr,
|
|
||||||
PNG_INFO_tRNS)) png_set_tRNS_to_alpha(png_ptr);
|
|
||||||
|
|
||||||
if (color_type == PNG_COLOR_TYPE_GRAY &&
|
if (color_type == PNG_COLOR_TYPE_GRAY &&
|
||||||
bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr);
|
bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr);
|
||||||
|
|
||||||
The first two functions are actually aliases for png_set_expand(), added
|
if (png_get_valid(png_ptr, info_ptr,
|
||||||
|
PNG_INFO_tRNS)) png_set_tRNS_to_alpha(png_ptr);
|
||||||
|
|
||||||
|
These three functions are actually aliases for png_set_expand(), added
|
||||||
in libpng version 1.0.4, with the function names expanded to improve code
|
in libpng version 1.0.4, with the function names expanded to improve code
|
||||||
readability. In some future version they may actually do different
|
readability. In some future version they may actually do different
|
||||||
things.
|
things.
|
||||||
@@ -2111,13 +2094,42 @@ things.
|
|||||||
As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was
|
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.
|
added. It expands the sample depth without changing tRNS to alpha.
|
||||||
|
|
||||||
As of libpng version 1.5.2, png_set_expand_16() was added. It behaves as
|
As of libpng version 1.5.1, not all possible expansions are supported.
|
||||||
png_set_expand(), however, the resultant channels have 16 bits rather than 8.
|
|
||||||
Use this when the output color or gray channels are made linear to avoid fairly
|
|
||||||
severe accuracy loss.
|
|
||||||
|
|
||||||
if (bit_depth < 16)
|
In the following table, the 01 means grayscale with depth<8, 31 means
|
||||||
png_set_expand_16(png_ptr);
|
indexed with depth<8, other numerals represent the color type, "T" means
|
||||||
|
the tRNS chunk is present, A means an alpha channel is present, and O
|
||||||
|
means tRNS or alpha is present but all pixels in the image are opaque.
|
||||||
|
|
||||||
|
FROM 01 31 0 0T 0O 2 2T 2O 3 3T 3O 4A 4O 6A 6O
|
||||||
|
TO
|
||||||
|
01 -
|
||||||
|
31 -
|
||||||
|
0 1 -
|
||||||
|
0T -
|
||||||
|
0O -
|
||||||
|
2 GX -
|
||||||
|
2T -
|
||||||
|
2O -
|
||||||
|
3 1 -
|
||||||
|
3T -
|
||||||
|
3O -
|
||||||
|
4A T -
|
||||||
|
4O -
|
||||||
|
6A GX TX TX -
|
||||||
|
6O GX TX -
|
||||||
|
|
||||||
|
Within the matrix,
|
||||||
|
"-" means the transformation is not supported.
|
||||||
|
"X" means the transformation is obtained by png_set_expand().
|
||||||
|
"1" means the transformation is obtained by
|
||||||
|
png_set_expand_gray_1_2_4_to_8
|
||||||
|
"G" means the transformation is obtained by
|
||||||
|
png_set_gray_to_rgb().
|
||||||
|
"P" means the transformation is obtained by
|
||||||
|
png_set_expand_palette_to_rgb().
|
||||||
|
"T" means the transformation is obtained by
|
||||||
|
png_set_tRNS_to_alpha().
|
||||||
|
|
||||||
PNG can have files with 16 bits per channel. If you only can handle
|
PNG can have files with 16 bits per channel. If you only can handle
|
||||||
8 bits per channel, this will strip the pixels down to 8 bit.
|
8 bits per channel, this will strip the pixels down to 8 bit.
|
||||||
@@ -2133,66 +2145,6 @@ it with the background, so that's what you should probably do):
|
|||||||
if (color_type & PNG_COLOR_MASK_ALPHA)
|
if (color_type & PNG_COLOR_MASK_ALPHA)
|
||||||
png_set_strip_alpha(png_ptr);
|
png_set_strip_alpha(png_ptr);
|
||||||
|
|
||||||
See below for png_set_background(), which does the correct composition on a
|
|
||||||
single opaque color. This is probably what you should do in all cases rather
|
|
||||||
than use png_set_strip_alpha() - unless you know for sure that it is the wrong
|
|
||||||
thing to do.
|
|
||||||
|
|
||||||
As of libpng version 1.5.2, almost all useful expansions are supported, the
|
|
||||||
major ommissions are convertion of grayscale to indexed images (which can be
|
|
||||||
done trivially in the application) and convertion of indexed to grayscale (which
|
|
||||||
can be done by a trivial manipulation of the palette.)
|
|
||||||
|
|
||||||
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
|
|
||||||
the tRNS chunk is present, A means an alpha channel is present, and O
|
|
||||||
means tRNS or alpha is present but all pixels in the image are opaque.
|
|
||||||
|
|
||||||
FROM 01 31 0 0T 0O 2 2T 2O 3 3T 3O 4A 4O 6A 6O
|
|
||||||
TO
|
|
||||||
01 - [G] - - - - - - - - - - - - -
|
|
||||||
31 [Q] Q [Q] [Q] [Q] Q Q Q Q Q Q [Q] [Q] Q Q
|
|
||||||
0 1 G + . . G G G G G G B B GB GB
|
|
||||||
0T lt Gt t + . Gt G G Gt G G Bt Bt GBt GBt
|
|
||||||
0O lt Gt t . + Gt Gt G Gt Gt G Bt Bt GBt GBt
|
|
||||||
2 C P C C C + . . C - - CB CB B B
|
|
||||||
2T Ct - Ct C C t + t - - - CBt CBt Bt Bt
|
|
||||||
2O Ct - Ct C C t t + - - - CBt CBt Bt Bt
|
|
||||||
3 [Q] p [Q] [Q] [Q] Q Q Q + . . [Q] [Q] Q Q
|
|
||||||
3T [Qt] p [Qt][Q] [Q] Qt Qt Qt t + t [Qt][Qt] Qt Qt
|
|
||||||
3O [Qt] p [Qt][Q] [Q] Qt Qt Qt t t + [Qt][Qt] Qt Qt
|
|
||||||
4A lA G A T T GA GT GT GA GT GT + BA G GBA
|
|
||||||
4O lA GBA A T T GA GT GT GA GT GT BA + GBA G
|
|
||||||
6A CA PA CA C C A T tT PA P P C CBA + BA
|
|
||||||
6O CA PBA CA C C A tT T PA P P CBA C BA +
|
|
||||||
|
|
||||||
Within the matrix,
|
|
||||||
"+" identifies entries where 'from' and 'to' are the same.
|
|
||||||
"-" means the transformation is not supported.
|
|
||||||
"." means nothing is necessary (a tRNS chunk can just be ignored).
|
|
||||||
"t" means the transformation is obtained by png_set_tRNS.
|
|
||||||
"A" means the transformation is obtained by png_set_add_alpha().
|
|
||||||
"X" means the transformation is obtained by png_set_expand().
|
|
||||||
"1" means the transformation is obtained by
|
|
||||||
png_set_expand_gray_1_2_4_to_8() (and by png_set_expand() if there
|
|
||||||
is no transparency in the original or the final format).
|
|
||||||
"C" means the transformation is obtained by png_set_gray_to_rgb().
|
|
||||||
"G" means the transformation is obtained by png_set_rgb_to_gray() or
|
|
||||||
png_set_rgb_to_Y().
|
|
||||||
"P" means the transformation is obtained by
|
|
||||||
png_set_expand_palette_to_rgb().
|
|
||||||
"p" means the transformation is obtained by png_set_packing().
|
|
||||||
"Q" means the transformation is obtained by png_set_quantize().
|
|
||||||
"T" means the transformation is obtained by png_set_tRNS_to_alpha().
|
|
||||||
"B" means the transformation is obtained by png_set_background(), or
|
|
||||||
png_strip_alpha().
|
|
||||||
|
|
||||||
When an entry has multiple transforms listed all are required to cause the
|
|
||||||
right overall transformation. When two transforms are separated by a comma
|
|
||||||
either will do the job. When transforms are enclosed in [] the transform should
|
|
||||||
do the job but this is currently unimplemented - a different format will result
|
|
||||||
if the suggested transformations are used.
|
|
||||||
|
|
||||||
In PNG files, the alpha channel in an image
|
In PNG files, the alpha channel in an image
|
||||||
is the level of opacity. If you need the alpha channel in an image to
|
is the level of opacity. If you need the alpha channel in an image to
|
||||||
be the level of transparency instead of opacity, you can invert the
|
be the level of transparency instead of opacity, you can invert the
|
||||||
@@ -2319,7 +2271,7 @@ Libpng approximates this with integers scaled by 32768:
|
|||||||
The calculation is done in a linear colorspace, if the image gamma
|
The calculation is done in a linear colorspace, if the image gamma
|
||||||
can be determined.
|
can be determined.
|
||||||
|
|
||||||
If you have a grayscale and you are using png_set_expand_gray_1_2_4_to_8(),
|
If you have a grayscale and you are using png_set_expand_depth(),
|
||||||
png_set_expand(), or png_set_gray_to_rgb to change to truecolor or to
|
png_set_expand(), or png_set_gray_to_rgb to change to truecolor or to
|
||||||
a higher bit-depth, you must either supply the background color as a gray
|
a higher bit-depth, you must either supply the background color as a gray
|
||||||
value at the original file bit-depth (need_expand = 1) or else supply the
|
value at the original file bit-depth (need_expand = 1) or else supply the
|
||||||
@@ -2478,7 +2430,7 @@ with
|
|||||||
|
|
||||||
You must supply the function
|
You must supply the function
|
||||||
|
|
||||||
void read_transform_fn(png_structp png_ptr, png_row_infop
|
void read_transform_fn(png_structp png_ptr, row_info_ptr
|
||||||
row_info, png_bytep data)
|
row_info, png_bytep data)
|
||||||
|
|
||||||
See pngtest.c for a working example. Your function will be called
|
See pngtest.c for a working example. Your function will be called
|
||||||
@@ -2497,14 +2449,6 @@ supported if user transforms are supported, secondly they may well return
|
|||||||
unexpected results unless the row is actually being processed at the moment they
|
unexpected results unless the row is actually being processed at the moment they
|
||||||
are called.
|
are called.
|
||||||
|
|
||||||
With interlaced
|
|
||||||
images the value returned is the row in the input sub-image image. Use
|
|
||||||
PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to
|
|
||||||
find the output pixel (x,y) given an interlaced sub-image pixel (row,col,pass).
|
|
||||||
|
|
||||||
The discussion of interlace handling above contains more information on how to
|
|
||||||
use these values.
|
|
||||||
|
|
||||||
You can also set up a pointer to a user structure for use by your
|
You can also set up a pointer to a user structure for use by your
|
||||||
callback function, and you can inform libpng that your transform
|
callback function, and you can inform libpng that your transform
|
||||||
function will change the number of channels or bit depth with the
|
function will change the number of channels or bit depth with the
|
||||||
@@ -3158,20 +3102,6 @@ To inform libpng about your function, use
|
|||||||
|
|
||||||
png_set_write_status_fn(png_ptr, write_row_callback);
|
png_set_write_status_fn(png_ptr, write_row_callback);
|
||||||
|
|
||||||
When this function is called the row has already been completely processed and
|
|
||||||
it has also been written out. The 'row' and 'pass' refer to the next row to be
|
|
||||||
handled. For the
|
|
||||||
non-interlaced case the row that was just handled is simply one less than the
|
|
||||||
passed in row number, and pass will always be 0. For the interlaced case the
|
|
||||||
same applies unless the row value is 0, in which case the row just handled was
|
|
||||||
the last one from one of the preceding passes. Because interlacing may skip a
|
|
||||||
pass you cannot be sure that the preceding pass is just 'pass-1', if you really
|
|
||||||
need to know what the last pass is record (row,pass) from the callback and use
|
|
||||||
the last recorded value each time.
|
|
||||||
|
|
||||||
As with the user transform you can find the output row using the
|
|
||||||
PNG_ROW_FROM_PASS_ROW macro.
|
|
||||||
|
|
||||||
You now have the option of modifying how the compression library will
|
You now have the option of modifying how the compression library will
|
||||||
run. The following functions are mainly for testing, but may be useful
|
run. The following functions are mainly for testing, but may be useful
|
||||||
in some cases, like if you need to write PNG files extremely fast and
|
in some cases, like if you need to write PNG files extremely fast and
|
||||||
@@ -3216,8 +3146,6 @@ which changes how much time zlib spends on trying to compress the image
|
|||||||
data. See the Compression Library (zlib.h and algorithm.txt, distributed
|
data. See the Compression Library (zlib.h and algorithm.txt, distributed
|
||||||
with zlib) for details on the compression levels.
|
with zlib) for details on the compression levels.
|
||||||
|
|
||||||
#include zlib.h
|
|
||||||
|
|
||||||
/* set the zlib compression level */
|
/* set the zlib compression level */
|
||||||
png_set_compression_level(png_ptr,
|
png_set_compression_level(png_ptr,
|
||||||
Z_BEST_COMPRESSION);
|
Z_BEST_COMPRESSION);
|
||||||
@@ -3770,8 +3698,8 @@ with
|
|||||||
|
|
||||||
You must supply the function
|
You must supply the function
|
||||||
|
|
||||||
void write_transform_fn(png_structp png_ptr, png_row_infop
|
void write_transform_fn(png_structp png_ptr ptr,
|
||||||
row_info, png_bytep data)
|
row_info_ptr row_info, png_bytep data)
|
||||||
|
|
||||||
See pngtest.c for a working example. Your function will be called
|
See pngtest.c for a working example. Your function will be called
|
||||||
before any of the other transformations are processed. If supported
|
before any of the other transformations are processed. If supported
|
||||||
@@ -3779,15 +3707,9 @@ libpng also supplies an information routine that may be called from
|
|||||||
your callback:
|
your callback:
|
||||||
|
|
||||||
png_get_current_row_number(png_ptr);
|
png_get_current_row_number(png_ptr);
|
||||||
png_get_current_pass_number(png_ptr);
|
|
||||||
|
|
||||||
This returns the current row passed to the transform. With interlaced
|
This returns the current row passed to the transform. Even with interlaced
|
||||||
images the value returned is the row in the input sub-image image. Use
|
images the value returned is the row in the final output image.
|
||||||
PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to
|
|
||||||
find the output pixel (x,y) given an interlaced sub-image pixel (row,col,pass).
|
|
||||||
|
|
||||||
The discussion of interlace handling above contains more information on how to
|
|
||||||
use these values.
|
|
||||||
|
|
||||||
You can also set up a pointer to a user structure for use by your
|
You can also set up a pointer to a user structure for use by your
|
||||||
callback function.
|
callback function.
|
||||||
@@ -4207,7 +4129,6 @@ specify no compression (Z_NO_COMPRESSION = 0), but this would create
|
|||||||
files larger than just storing the raw bitmap. You can specify the
|
files larger than just storing the raw bitmap. You can specify the
|
||||||
compression level by calling:
|
compression level by calling:
|
||||||
|
|
||||||
#include zlib.h
|
|
||||||
png_set_compression_level(png_ptr, level);
|
png_set_compression_level(png_ptr, level);
|
||||||
|
|
||||||
Another useful one is to reduce the memory level used by the library.
|
Another useful one is to reduce the memory level used by the library.
|
||||||
@@ -4218,14 +4139,12 @@ other things, lower levels will result in sections of incompressible
|
|||||||
data being emitted in smaller stored blocks, with a correspondingly
|
data being emitted in smaller stored blocks, with a correspondingly
|
||||||
larger relative overhead of up to 15% in the worst case.
|
larger relative overhead of up to 15% in the worst case.
|
||||||
|
|
||||||
#include zlib.h
|
|
||||||
png_set_compression_mem_level(png_ptr, level);
|
png_set_compression_mem_level(png_ptr, level);
|
||||||
|
|
||||||
The other functions are for configuring zlib. They are not recommended
|
The other functions are for configuring zlib. They are not recommended
|
||||||
for normal use and may result in writing an invalid PNG file. See
|
for normal use and may result in writing an invalid PNG file. See
|
||||||
zlib.h for more information on what these mean.
|
zlib.h for more information on what these mean.
|
||||||
|
|
||||||
#include zlib.h
|
|
||||||
png_set_compression_strategy(png_ptr,
|
png_set_compression_strategy(png_ptr,
|
||||||
strategy);
|
strategy);
|
||||||
|
|
||||||
@@ -4623,7 +4542,7 @@ and memset(), respectively.
|
|||||||
The function png_set_gray_1_2_4_to_8() was removed. It has been
|
The function png_set_gray_1_2_4_to_8() was removed. It has been
|
||||||
deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with
|
deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with
|
||||||
png_set_expand_gray_1_2_4_to_8() because the former function also
|
png_set_expand_gray_1_2_4_to_8() because the former function also
|
||||||
expanded any tRNS chunk to an alpha channel.
|
expanded palette images.
|
||||||
|
|
||||||
Macros for png_get_uint_16, png_get_uint_32, and png_get_int_32
|
Macros for png_get_uint_16, png_get_uint_32, and png_get_int_32
|
||||||
were added and are used by default instead of the corresponding
|
were added and are used by default instead of the corresponding
|
||||||
@@ -4708,8 +4627,7 @@ application code. (It is extremely rare for an application to do this.)
|
|||||||
|
|
||||||
Any program that compiled against libpng 1.4 and did not use deprecated
|
Any program that compiled against libpng 1.4 and did not use deprecated
|
||||||
features or access internal library structures should compile and work
|
features or access internal library structures should compile and work
|
||||||
against libpng 1.5, except for the change in the prototype for
|
against libpng 1.5.
|
||||||
png_get_iCCP() and png_set_iCCP() API functions mentioned above.
|
|
||||||
|
|
||||||
libpng 1.5.0 adds PNG_ PASS macros to help in the reading and writing of
|
libpng 1.5.0 adds PNG_ PASS macros to help in the reading and writing of
|
||||||
interlaced images. The macros return the number of rows and columns in
|
interlaced images. The macros return the number of rows and columns in
|
||||||
@@ -4717,7 +4635,7 @@ each pass and information that can be used to de-interlace and (if
|
|||||||
absolutely necessary) interlace an image.
|
absolutely necessary) interlace an image.
|
||||||
|
|
||||||
libpng 1.5.0 adds an API png_longjmp(png_ptr, value). This API calls
|
libpng 1.5.0 adds an API png_longjmp(png_ptr, value). This API calls
|
||||||
the application-provided png_longjmp_ptr on the internal, but application
|
the application provided png_longjmp_ptr on the internal, but application
|
||||||
initialized, jmpbuf. It is provided as a convenience to avoid the need
|
initialized, jmpbuf. It is provided as a convenience to avoid the need
|
||||||
to use the png_jmpbuf macro, which had the unnecessary side effect of
|
to use the png_jmpbuf macro, which had the unnecessary side effect of
|
||||||
resetting the internal png_longjmp_ptr value.
|
resetting the internal png_longjmp_ptr value.
|
||||||
@@ -5082,13 +5000,13 @@ Other rules can be inferred by inspecting the libpng source.
|
|||||||
|
|
||||||
.SH XIV. Y2K Compliance in libpng
|
.SH XIV. Y2K Compliance in libpng
|
||||||
|
|
||||||
March 31, 2011
|
February 3, 2011
|
||||||
|
|
||||||
Since the PNG Development group is an ad-hoc body, we can't make
|
Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
an official declaration.
|
an official declaration.
|
||||||
|
|
||||||
This is your unofficial assurance that libpng from version 0.71 and
|
This is your unofficial assurance that libpng from version 0.71 and
|
||||||
upward through 1.5.2 are Y2K compliant. It is my belief that earlier
|
upward through 1.5.1 are Y2K compliant. It is my belief that earlier
|
||||||
versions were also Y2K compliant.
|
versions were also Y2K compliant.
|
||||||
|
|
||||||
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
||||||
@@ -5274,9 +5192,6 @@ the first widely used release:
|
|||||||
1.5.1beta01-11 15 10501 15.so.15.1[.0]
|
1.5.1beta01-11 15 10501 15.so.15.1[.0]
|
||||||
1.5.1rc01-02 15 10501 15.so.15.1[.0]
|
1.5.1rc01-02 15 10501 15.so.15.1[.0]
|
||||||
1.5.1 15 10501 15.so.15.1[.0]
|
1.5.1 15 10501 15.so.15.1[.0]
|
||||||
1.5.2beta01-03 15 10502 15.so.15.2[.0]
|
|
||||||
1.5.2rc01-03 15 10502 15.so.15.2[.0]
|
|
||||||
1.5.2 15 10502 15.so.15.2[.0]
|
|
||||||
|
|
||||||
Henceforth the source version will match the shared-library minor
|
Henceforth the source version will match the shared-library minor
|
||||||
and patch numbers; the shared-library major version number will be
|
and patch numbers; the shared-library major version number will be
|
||||||
@@ -5333,7 +5248,7 @@ possible without all of you.
|
|||||||
|
|
||||||
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
||||||
|
|
||||||
Libpng version 1.5.2 - March 31, 2011:
|
Libpng version 1.5.1 - February 3, 2011:
|
||||||
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
||||||
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
|
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
|
||||||
|
|
||||||
@@ -5356,7 +5271,7 @@ this sentence.
|
|||||||
|
|
||||||
This code is released under the libpng license.
|
This code is released under the libpng license.
|
||||||
|
|
||||||
libpng versions 1.2.6, August 15, 2004, through 1.5.2, March 31, 2011, are
|
libpng versions 1.2.6, August 15, 2004, through 1.5.1, February 3, 2011, are
|
||||||
Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
|
Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
|
||||||
distributed according to the same disclaimer and license as libpng-1.2.5
|
distributed according to the same disclaimer and license as libpng-1.2.5
|
||||||
with the following individual added to the list of Contributing Authors
|
with the following individual added to the list of Contributing Authors
|
||||||
@@ -5455,7 +5370,7 @@ certification mark of the Open Source Initiative.
|
|||||||
|
|
||||||
Glenn Randers-Pehrson
|
Glenn Randers-Pehrson
|
||||||
glennrp at users.sourceforge.net
|
glennrp at users.sourceforge.net
|
||||||
March 31, 2011
|
February 3, 2011
|
||||||
|
|
||||||
.\" end of man page
|
.\" end of man page
|
||||||
|
|
||||||
|
|||||||
Vendored
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
.TH LIBPNGPF 3 "March 31, 2011"
|
.TH LIBPNGPF 3 "February 3, 2011"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.5.2
|
libpng \- Portable Network Graphics (PNG) Reference Library 1.5.1
|
||||||
(private functions)
|
(private functions)
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
\fB#include \fI"pngpriv.h"
|
\fB#include \fI"pngpriv.h"
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
.TH PNG 5 "March 31, 2011"
|
.TH PNG 5 "February 3, 2011"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
png \- Portable Network Graphics (PNG) format
|
png \- Portable Network Graphics (PNG) format
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
|
|||||||
Vendored
+3
-3
@@ -14,7 +14,7 @@
|
|||||||
#include "pngpriv.h"
|
#include "pngpriv.h"
|
||||||
|
|
||||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||||
typedef png_libpng_version_1_5_2 Your_png_h_is_not_version_1_5_2;
|
typedef png_libpng_version_1_5_1 Your_png_h_is_not_version_1_5_1;
|
||||||
|
|
||||||
/* Tells libpng that we have already handled the first "num_bytes" bytes
|
/* Tells libpng that we have already handled the first "num_bytes" bytes
|
||||||
* of the PNG file signature. If the PNG data is embedded into another
|
* of the PNG file signature. If the PNG data is embedded into another
|
||||||
@@ -555,13 +555,13 @@ png_get_copyright(png_const_structp png_ptr)
|
|||||||
#else
|
#else
|
||||||
# ifdef __STDC__
|
# ifdef __STDC__
|
||||||
return PNG_STRING_NEWLINE \
|
return PNG_STRING_NEWLINE \
|
||||||
"libpng version 1.5.2 - March 31, 2011" PNG_STRING_NEWLINE \
|
"libpng version 1.5.1 - February 3, 2011" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1998-2011 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
|
"Copyright (c) 1998-2011 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
|
"Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
|
"Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
|
||||||
PNG_STRING_NEWLINE;
|
PNG_STRING_NEWLINE;
|
||||||
# else
|
# else
|
||||||
return "libpng version 1.5.2 - March 31, 2011\
|
return "libpng version 1.5.1 - February 3, 2011\
|
||||||
Copyright (c) 1998-2011 Glenn Randers-Pehrson\
|
Copyright (c) 1998-2011 Glenn Randers-Pehrson\
|
||||||
Copyright (c) 1996-1997 Andreas Dilger\
|
Copyright (c) 1996-1997 Andreas Dilger\
|
||||||
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
|
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
|
||||||
|
|||||||
Vendored
+34
-63
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* png.h - header file for PNG reference library
|
/* png.h - header file for PNG reference library
|
||||||
*
|
*
|
||||||
* libpng version 1.5.2 - March 31, 2011
|
* libpng version 1.5.1 - February 3, 2011
|
||||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
* Authors and maintainers:
|
* Authors and maintainers:
|
||||||
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
|
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
|
||||||
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
|
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
|
||||||
* libpng versions 0.97, January 1998, through 1.5.2 - March 31, 2011: Glenn
|
* libpng versions 0.97, January 1998, through 1.5.1 - February 3, 2011: Glenn
|
||||||
* See also "Contributing Authors", below.
|
* See also "Contributing Authors", below.
|
||||||
*
|
*
|
||||||
* Note about libpng version numbers:
|
* Note about libpng version numbers:
|
||||||
@@ -147,9 +147,6 @@
|
|||||||
* 1.5.1beta01-11 15 10501 15.so.15.1[.0]
|
* 1.5.1beta01-11 15 10501 15.so.15.1[.0]
|
||||||
* 1.5.1rc01-02 15 10501 15.so.15.1[.0]
|
* 1.5.1rc01-02 15 10501 15.so.15.1[.0]
|
||||||
* 1.5.1 15 10501 15.so.15.1[.0]
|
* 1.5.1 15 10501 15.so.15.1[.0]
|
||||||
* 1.5.2beta01-03 15 10502 15.so.15.2[.0]
|
|
||||||
* 1.5.2rc01-03 15 10502 15.so.15.2[.0]
|
|
||||||
* 1.5.2 15 10502 15.so.15.2[.0]
|
|
||||||
*
|
*
|
||||||
* Henceforth the source version will match the shared-library major
|
* Henceforth the source version will match the shared-library major
|
||||||
* and minor numbers; the shared-library major version number will be
|
* and minor numbers; the shared-library major version number will be
|
||||||
@@ -181,7 +178,7 @@
|
|||||||
*
|
*
|
||||||
* This code is released under the libpng license.
|
* This code is released under the libpng license.
|
||||||
*
|
*
|
||||||
* libpng versions 1.2.6, August 15, 2004, through 1.5.2, March 31, 2011, are
|
* libpng versions 1.2.6, August 15, 2004, through 1.5.1, February 3, 2011, are
|
||||||
* Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
|
* Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
|
||||||
* distributed according to the same disclaimer and license as libpng-1.2.5
|
* distributed according to the same disclaimer and license as libpng-1.2.5
|
||||||
* with the following individual added to the list of Contributing Authors:
|
* with the following individual added to the list of Contributing Authors:
|
||||||
@@ -293,13 +290,13 @@
|
|||||||
* Y2K compliance in libpng:
|
* Y2K compliance in libpng:
|
||||||
* =========================
|
* =========================
|
||||||
*
|
*
|
||||||
* March 31, 2011
|
* February 3, 2011
|
||||||
*
|
*
|
||||||
* Since the PNG Development group is an ad-hoc body, we can't make
|
* Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
* an official declaration.
|
* an official declaration.
|
||||||
*
|
*
|
||||||
* This is your unofficial assurance that libpng from version 0.71 and
|
* This is your unofficial assurance that libpng from version 0.71 and
|
||||||
* upward through 1.5.2 are Y2K compliant. It is my belief that
|
* upward through 1.5.1 are Y2K compliant. It is my belief that
|
||||||
* earlier versions were also Y2K compliant.
|
* earlier versions were also Y2K compliant.
|
||||||
*
|
*
|
||||||
* Libpng only has three year fields. One is a 2-byte unsigned integer
|
* Libpng only has three year fields. One is a 2-byte unsigned integer
|
||||||
@@ -355,9 +352,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Version information for png.h - this should match the version in png.c */
|
/* Version information for png.h - this should match the version in png.c */
|
||||||
#define PNG_LIBPNG_VER_STRING "1.5.2"
|
#define PNG_LIBPNG_VER_STRING "1.5.1"
|
||||||
#define PNG_HEADER_VERSION_STRING \
|
#define PNG_HEADER_VERSION_STRING \
|
||||||
" libpng version 1.5.2 - March 31, 2011\n"
|
" libpng version 1.5.1 - February 3, 2011\n"
|
||||||
|
|
||||||
#define PNG_LIBPNG_VER_SONUM 15
|
#define PNG_LIBPNG_VER_SONUM 15
|
||||||
#define PNG_LIBPNG_VER_DLLNUM 15
|
#define PNG_LIBPNG_VER_DLLNUM 15
|
||||||
@@ -365,7 +362,7 @@
|
|||||||
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
|
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
|
||||||
#define PNG_LIBPNG_VER_MAJOR 1
|
#define PNG_LIBPNG_VER_MAJOR 1
|
||||||
#define PNG_LIBPNG_VER_MINOR 5
|
#define PNG_LIBPNG_VER_MINOR 5
|
||||||
#define PNG_LIBPNG_VER_RELEASE 2
|
#define PNG_LIBPNG_VER_RELEASE 1
|
||||||
/* This should match the numeric part of the final component of
|
/* This should match the numeric part of the final component of
|
||||||
* PNG_LIBPNG_VER_STRING, omitting any leading zero:
|
* PNG_LIBPNG_VER_STRING, omitting any leading zero:
|
||||||
*/
|
*/
|
||||||
@@ -395,7 +392,7 @@
|
|||||||
* version 1.0.0 was mis-numbered 100 instead of 10000). From
|
* version 1.0.0 was mis-numbered 100 instead of 10000). From
|
||||||
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release
|
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release
|
||||||
*/
|
*/
|
||||||
#define PNG_LIBPNG_VER 10502 /* 1.5.2 */
|
#define PNG_LIBPNG_VER 10501 /* 1.5.1 */
|
||||||
|
|
||||||
/* Library configuration: these options cannot be changed after
|
/* Library configuration: these options cannot be changed after
|
||||||
* the library has been built.
|
* the library has been built.
|
||||||
@@ -408,11 +405,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PNG_VERSION_INFO_ONLY
|
#ifndef PNG_VERSION_INFO_ONLY
|
||||||
# ifndef PNG_BUILDING_SYMBOL_TABLE
|
/* Standard header files (not needed for the version info) */
|
||||||
/*
|
|
||||||
* Standard header files (not needed for the version info or while
|
|
||||||
* building symbol table -- see scripts/pnglibconf.dfa)
|
|
||||||
*/
|
|
||||||
# ifdef PNG_SETJMP_SUPPORTED
|
# ifdef PNG_SETJMP_SUPPORTED
|
||||||
# include <setjmp.h>
|
# include <setjmp.h>
|
||||||
# endif
|
# endif
|
||||||
@@ -424,7 +417,6 @@
|
|||||||
/* "time.h" functions are not supported on all operating systems */
|
/* "time.h" functions are not supported on all operating systems */
|
||||||
# include <time.h>
|
# include <time.h>
|
||||||
#endif
|
#endif
|
||||||
# endif
|
|
||||||
|
|
||||||
/* Machine specific configuration. */
|
/* Machine specific configuration. */
|
||||||
# include "pngconf.h"
|
# include "pngconf.h"
|
||||||
@@ -517,7 +509,7 @@ extern "C" {
|
|||||||
/* This triggers a compiler error in png.c, if png.c and png.h
|
/* This triggers a compiler error in png.c, if png.c and png.h
|
||||||
* do not agree upon the version number.
|
* do not agree upon the version number.
|
||||||
*/
|
*/
|
||||||
typedef char* png_libpng_version_1_5_2;
|
typedef char* png_libpng_version_1_5_1;
|
||||||
|
|
||||||
/* Three color definitions. The order of the red, green, and blue, (and the
|
/* Three color definitions. The order of the red, green, and blue, (and the
|
||||||
* exact size) is not important, although the size of the fields need to
|
* exact size) is not important, although the size of the fields need to
|
||||||
@@ -804,44 +796,35 @@ typedef struct png_struct_def png_struct;
|
|||||||
typedef PNG_CONST png_struct FAR * png_const_structp;
|
typedef PNG_CONST png_struct FAR * png_const_structp;
|
||||||
typedef png_struct FAR * png_structp;
|
typedef png_struct FAR * png_structp;
|
||||||
|
|
||||||
typedef PNG_CALLBACK(void, *png_error_ptr, (png_structp, png_const_charp));
|
typedef PNG_CALLBACK(void, *png_error_ptr, (png_structp, png_const_charp), );
|
||||||
typedef PNG_CALLBACK(void, *png_rw_ptr, (png_structp, png_bytep, png_size_t));
|
typedef PNG_CALLBACK(void, *png_rw_ptr, (png_structp, png_bytep, png_size_t), );
|
||||||
typedef PNG_CALLBACK(void, *png_flush_ptr, (png_structp));
|
typedef PNG_CALLBACK(void, *png_flush_ptr, (png_structp), );
|
||||||
typedef PNG_CALLBACK(void, *png_read_status_ptr, (png_structp, png_uint_32,
|
typedef PNG_CALLBACK(void, *png_read_status_ptr, (png_structp, png_uint_32,
|
||||||
int));
|
int), );
|
||||||
typedef PNG_CALLBACK(void, *png_write_status_ptr, (png_structp, png_uint_32,
|
typedef PNG_CALLBACK(void, *png_write_status_ptr, (png_structp, png_uint_32,
|
||||||
int));
|
int), );
|
||||||
|
|
||||||
#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
|
#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
|
||||||
typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop));
|
typedef PNG_CALLBACK(void, *png_progressive_info_ptr,
|
||||||
typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop));
|
(png_structp, png_infop), );
|
||||||
|
typedef PNG_CALLBACK(void, *png_progressive_end_ptr,
|
||||||
/* The following callback receives png_uint_32 row_number, int pass for the
|
(png_structp, png_infop), );
|
||||||
* png_bytep data of the row. When transforming an interlaced image the
|
typedef PNG_CALLBACK(void, *png_progressive_row_ptr,
|
||||||
* row number is the row number within the sub-image of the interlace pass, so
|
(png_structp, png_bytep, png_uint_32, int), );
|
||||||
* the value will increase to the height of the sub-image (not the full image)
|
|
||||||
* then reset to 0 for the next pass.
|
|
||||||
*
|
|
||||||
* Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to
|
|
||||||
* find the output pixel (x,y) given an interlaced sub-image pixel
|
|
||||||
* (row,col,pass). (See below for these macros.)
|
|
||||||
*/
|
|
||||||
typedef PNG_CALLBACK(void, *png_progressive_row_ptr, (png_structp, png_bytep,
|
|
||||||
png_uint_32, int));
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
|
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
|
||||||
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
|
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
|
||||||
typedef PNG_CALLBACK(void, *png_user_transform_ptr, (png_structp, png_row_infop,
|
typedef PNG_CALLBACK(void, *png_user_transform_ptr,
|
||||||
png_bytep));
|
(png_structp, png_row_infop, png_bytep), );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_USER_CHUNKS_SUPPORTED
|
#ifdef PNG_USER_CHUNKS_SUPPORTED
|
||||||
typedef PNG_CALLBACK(int, *png_user_chunk_ptr, (png_structp,
|
typedef PNG_CALLBACK(int, *png_user_chunk_ptr, (png_structp,
|
||||||
png_unknown_chunkp));
|
png_unknown_chunkp), );
|
||||||
#endif
|
#endif
|
||||||
#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
|
#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp));
|
typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp), );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_SETJMP_SUPPORTED
|
#ifdef PNG_SETJMP_SUPPORTED
|
||||||
@@ -898,8 +881,8 @@ typedef PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)),
|
|||||||
* following.
|
* following.
|
||||||
*/
|
*/
|
||||||
typedef PNG_CALLBACK(png_voidp, *png_malloc_ptr, (png_structp,
|
typedef PNG_CALLBACK(png_voidp, *png_malloc_ptr, (png_structp,
|
||||||
png_alloc_size_t));
|
png_alloc_size_t), );
|
||||||
typedef PNG_CALLBACK(void, *png_free_ptr, (png_structp, png_voidp));
|
typedef PNG_CALLBACK(void, *png_free_ptr, (png_structp, png_voidp), );
|
||||||
|
|
||||||
typedef png_struct FAR * FAR * png_structpp;
|
typedef png_struct FAR * FAR * png_structpp;
|
||||||
|
|
||||||
@@ -1078,13 +1061,6 @@ PNG_EXPORT(28, void, png_set_palette_to_rgb, (png_structp png_ptr));
|
|||||||
PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structp png_ptr));
|
PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structp png_ptr));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_EXPAND_16_SUPPORTED
|
|
||||||
/* Expand to 16 bit channels, forces conversion of palette to RGB and expansion
|
|
||||||
* of a tRNS chunk if present.
|
|
||||||
*/
|
|
||||||
PNG_EXPORT(221, void, png_set_expand_16, (png_structp png_ptr));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
|
#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
|
||||||
/* Use blue, green, red order for pixels. */
|
/* Use blue, green, red order for pixels. */
|
||||||
PNG_EXPORT(30, void, png_set_bgr, (png_structp png_ptr));
|
PNG_EXPORT(30, void, png_set_bgr, (png_structp png_ptr));
|
||||||
@@ -1499,13 +1475,9 @@ PNG_EXPORT(87, png_voidp, png_get_user_transform_ptr,
|
|||||||
/* Return information about the row currently being processed. Note that these
|
/* Return information about the row currently being processed. Note that these
|
||||||
* APIs do not fail but will return unexpected results if called outside a user
|
* APIs do not fail but will return unexpected results if called outside a user
|
||||||
* transform callback. Also note that when transforming an interlaced image the
|
* transform callback. Also note that when transforming an interlaced image the
|
||||||
* row number is the row number within the sub-image of the interlace pass, so
|
* row number is still the row in the final, de-interlaced, image but the row
|
||||||
* the value will increase to the height of the sub-image (not the full image)
|
* only contains the data of the current pass - consult png_row_info for the
|
||||||
* then reset to 0 for the next pass.
|
* actual width of the row!
|
||||||
*
|
|
||||||
* Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to
|
|
||||||
* find the output pixel (x,y) given an interlaced sub-image pixel
|
|
||||||
* (row,col,pass). (See below for these macros.)
|
|
||||||
*/
|
*/
|
||||||
PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structp));
|
PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structp));
|
||||||
PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structp));
|
PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structp));
|
||||||
@@ -2170,9 +2142,8 @@ PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type,
|
|||||||
#define PNG_PASS_COLS(width, pass) (((width)+(((1<<PNG_PASS_COL_SHIFT(pass))\
|
#define PNG_PASS_COLS(width, pass) (((width)+(((1<<PNG_PASS_COL_SHIFT(pass))\
|
||||||
-1)-PNG_PASS_START_COL(pass)))>>PNG_PASS_COL_SHIFT(pass))
|
-1)-PNG_PASS_START_COL(pass)))>>PNG_PASS_COL_SHIFT(pass))
|
||||||
|
|
||||||
/* For the reader row callbacks (both progressive and sequential) it is
|
/* For the progressive reader it is necessary to find the row in the output
|
||||||
* necessary to find the row in the output image given a row in an interlaced
|
* image given a row in an interlaced image, so two more macros:
|
||||||
* image, so two more macros:
|
|
||||||
*/
|
*/
|
||||||
#define PNG_ROW_FROM_PASS_ROW(yIn, pass) \
|
#define PNG_ROW_FROM_PASS_ROW(yIn, pass) \
|
||||||
(((yIn)<<PNG_PASS_ROW_SHIFT(pass))+PNG_PASS_START_ROW(pass))
|
(((yIn)<<PNG_PASS_ROW_SHIFT(pass))+PNG_PASS_START_ROW(pass))
|
||||||
@@ -2297,7 +2268,7 @@ PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i));
|
|||||||
* scripts/symbols.def as well.
|
* scripts/symbols.def as well.
|
||||||
*/
|
*/
|
||||||
#ifdef PNG_EXPORT_LAST_ORDINAL
|
#ifdef PNG_EXPORT_LAST_ORDINAL
|
||||||
PNG_EXPORT_LAST_ORDINAL(221);
|
PNG_EXPORT_LAST_ORDINAL(220);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
Vendored
+26
-43
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngconf.h - machine configurable file for libpng
|
/* pngconf.h - machine configurable file for libpng
|
||||||
*
|
*
|
||||||
* libpng version 1.5.2 - March 31, 2011
|
* libpng version 1.5.1 - February 3, 2011
|
||||||
*
|
*
|
||||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
@@ -22,7 +22,6 @@
|
|||||||
#ifndef PNGCONF_H
|
#ifndef PNGCONF_H
|
||||||
#define PNGCONF_H
|
#define PNGCONF_H
|
||||||
|
|
||||||
#ifndef PNG_BUILDING_SYMBOL_TABLE
|
|
||||||
/* PNG_NO_LIMITS_H may be used to turn off the use of the standard C
|
/* PNG_NO_LIMITS_H may be used to turn off the use of the standard C
|
||||||
* definition file for machine specific limits, this may impact the
|
* definition file for machine specific limits, this may impact the
|
||||||
* correctness of the definitons below (see uses of INT_MAX).
|
* correctness of the definitons below (see uses of INT_MAX).
|
||||||
@@ -47,7 +46,6 @@
|
|||||||
#ifdef PNG_STDIO_SUPPORTED
|
#ifdef PNG_STDIO_SUPPORTED
|
||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
/* This controls optimization of the reading of 16 and 32 bit values
|
/* This controls optimization of the reading of 16 and 32 bit values
|
||||||
* from PNG files. It can be set on a per-app-file basis - it
|
* from PNG files. It can be set on a per-app-file basis - it
|
||||||
@@ -284,15 +282,23 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat
|
/* THe following complexity is concerned with getting the 'attributes' of the
|
||||||
* 'attributes' as a storage class - the attributes go at the start of the
|
* declared function in the correct place. This potentially requires a separate
|
||||||
* function definition, and attributes are always appended regardless of the
|
* PNG_EXPORT function for every compiler.
|
||||||
* compiler. This considerably simplifies these macros but may cause problems
|
|
||||||
* if any compilers both need function attributes and fail to handle them as
|
|
||||||
* a storage class (this is unlikely.)
|
|
||||||
*/
|
*/
|
||||||
#ifndef PNG_FUNCTION
|
#ifndef PNG_FUNCTION
|
||||||
# define PNG_FUNCTION(type, name, args, attributes) attributes type name args
|
# ifdef __GNUC__
|
||||||
|
# define PNG_FUNCTION(type, name, args, attributes)\
|
||||||
|
attributes type name args
|
||||||
|
# else /* !GNUC */
|
||||||
|
# ifdef _MSC_VER
|
||||||
|
# define PNG_FUNCTION(type, name, args, attributes)\
|
||||||
|
attributes type name args
|
||||||
|
# else /* !MSC */
|
||||||
|
# define PNG_FUNCTION(type, name, args, attributes)\
|
||||||
|
type name args
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PNG_EXPORT_TYPE
|
#ifndef PNG_EXPORT_TYPE
|
||||||
@@ -304,19 +310,13 @@
|
|||||||
* scripts directory.
|
* scripts directory.
|
||||||
*/
|
*/
|
||||||
#ifndef PNG_EXPORTA
|
#ifndef PNG_EXPORTA
|
||||||
|
|
||||||
# define PNG_EXPORTA(ordinal, type, name, args, attributes)\
|
# define PNG_EXPORTA(ordinal, type, name, args, attributes)\
|
||||||
PNG_FUNCTION(PNG_EXPORT_TYPE(type),(PNGAPI name),PNGARG(args), \
|
extern PNG_FUNCTION(PNG_EXPORT_TYPE(type),(PNGAPI name),PNGARG(args),\
|
||||||
extern attributes)
|
attributes)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* ANSI-C (C90) does not permit a macro to be invoked with an empty argument,
|
|
||||||
* so make something non-empty to satisfy the requirement:
|
|
||||||
*/
|
|
||||||
#define PNG_EMPTY /*empty list*/
|
|
||||||
|
|
||||||
#define PNG_EXPORT(ordinal, type, name, args)\
|
#define PNG_EXPORT(ordinal, type, name, args)\
|
||||||
PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY)
|
PNG_EXPORTA(ordinal, type, name, args, )
|
||||||
|
|
||||||
/* Use PNG_REMOVED to comment out a removed interface. */
|
/* Use PNG_REMOVED to comment out a removed interface. */
|
||||||
#ifndef PNG_REMOVED
|
#ifndef PNG_REMOVED
|
||||||
@@ -324,7 +324,8 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PNG_CALLBACK
|
#ifndef PNG_CALLBACK
|
||||||
# define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args)
|
# define PNG_CALLBACK(type, name, args, attributes)\
|
||||||
|
type (PNGCBAPI name) PNGARG(args) attributes
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Support for compiler specific function attributes. These are used
|
/* Support for compiler specific function attributes. These are used
|
||||||
@@ -346,7 +347,7 @@
|
|||||||
* functions in png.h will generate compiler warnings. Added at libpng
|
* functions in png.h will generate compiler warnings. Added at libpng
|
||||||
* version 1.2.41.
|
* version 1.2.41.
|
||||||
*/
|
*/
|
||||||
# if defined(__GNUC__)
|
# ifdef __GNUC__
|
||||||
# ifndef PNG_USE_RESULT
|
# ifndef PNG_USE_RESULT
|
||||||
# define PNG_USE_RESULT __attribute__((__warn_unused_result__))
|
# define PNG_USE_RESULT __attribute__((__warn_unused_result__))
|
||||||
# endif
|
# endif
|
||||||
@@ -354,22 +355,8 @@
|
|||||||
# define PNG_NORETURN __attribute__((__noreturn__))
|
# define PNG_NORETURN __attribute__((__noreturn__))
|
||||||
# endif
|
# endif
|
||||||
# ifndef PNG_PTR_NORETURN
|
# ifndef PNG_PTR_NORETURN
|
||||||
/* It's not enough to have the compiler be the correct compiler at
|
|
||||||
* this point - it's necessary for the library (which defines
|
|
||||||
* the type of the library longjmp) to also be the GNU library.
|
|
||||||
* This is because many systems use the GNU compiler with a
|
|
||||||
* non-GNU libc implementation. Min/GW headers are also compatible
|
|
||||||
* with GCC as well as uclibc, so it seems best to exclude known
|
|
||||||
* problem libcs here rather than just including known libcs.
|
|
||||||
*
|
|
||||||
* NOTE: this relies on the only use of PNG_PTR_NORETURN being with
|
|
||||||
* the system longjmp. If the same type is used elsewhere then this
|
|
||||||
* will need to be changed.
|
|
||||||
*/
|
|
||||||
# if !defined(__CYGWIN__)
|
|
||||||
# define PNG_PTR_NORETURN __attribute__((__noreturn__))
|
# define PNG_PTR_NORETURN __attribute__((__noreturn__))
|
||||||
# endif
|
# endif
|
||||||
# endif
|
|
||||||
# ifndef PNG_ALLOCATED
|
# ifndef PNG_ALLOCATED
|
||||||
# define PNG_ALLOCATED __attribute__((__malloc__))
|
# define PNG_ALLOCATED __attribute__((__malloc__))
|
||||||
# endif
|
# endif
|
||||||
@@ -393,11 +380,10 @@
|
|||||||
# define PNG_PRIVATE \
|
# define PNG_PRIVATE \
|
||||||
__attribute__((__deprecated__))
|
__attribute__((__deprecated__))
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif /* PNG_PRIVATE */
|
||||||
# endif /* PNGLIB_BUILD */
|
# endif /* PNGLIB_BUILD */
|
||||||
# endif /* __GNUC__ */
|
# endif /* __GNUC__ */
|
||||||
|
# ifdef _MSC_VER /* may need to check value */
|
||||||
# if defined(_MSC_VER) && (_MSC_VER >= 1300)
|
|
||||||
# ifndef PNG_USE_RESULT
|
# ifndef PNG_USE_RESULT
|
||||||
# define PNG_USE_RESULT /*not supported*/
|
# define PNG_USE_RESULT /*not supported*/
|
||||||
# endif
|
# endif
|
||||||
@@ -424,9 +410,9 @@
|
|||||||
# endif
|
# endif
|
||||||
# ifndef PNG_PRIVATE
|
# ifndef PNG_PRIVATE
|
||||||
# define PNG_PRIVATE __declspec(deprecated)
|
# define PNG_PRIVATE __declspec(deprecated)
|
||||||
# endif
|
# endif /* PNG_PRIVATE */
|
||||||
# endif /* PNGLIB_BUILD */
|
# endif /* PNGLIB_BUILD */
|
||||||
# endif /* _MSC_VER */
|
# endif /* __GNUC__ */
|
||||||
#endif /* PNG_PEDANTIC_WARNINGS */
|
#endif /* PNG_PEDANTIC_WARNINGS */
|
||||||
|
|
||||||
#ifndef PNG_DEPRECATED
|
#ifndef PNG_DEPRECATED
|
||||||
@@ -438,9 +424,6 @@
|
|||||||
#ifndef PNG_NORETURN
|
#ifndef PNG_NORETURN
|
||||||
# define PNG_NORETURN /* This function does not return */
|
# define PNG_NORETURN /* This function does not return */
|
||||||
#endif
|
#endif
|
||||||
#ifndef PNG_PTR_NORETURN
|
|
||||||
# define PNG_PTR_NORETURN /* This function does not return */
|
|
||||||
#endif
|
|
||||||
#ifndef PNG_ALLOCATED
|
#ifndef PNG_ALLOCATED
|
||||||
# define PNG_ALLOCATED /* The result of the function is new memory */
|
# define PNG_ALLOCATED /* The result of the function is new memory */
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Vendored
BIN
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
Vendored
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngpread.c - read a png file in push mode
|
/* pngpread.c - read a png file in push mode
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.5.2 [March 31, 2011]
|
* Last changed in libpng 1.5.1 [February 3, 2011]
|
||||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
@@ -1026,7 +1026,7 @@ png_push_process_row(png_structp png_ptr)
|
|||||||
|
|
||||||
png_memcpy(png_ptr->prev_row, png_ptr->row_buf, png_ptr->rowbytes + 1);
|
png_memcpy(png_ptr->prev_row, png_ptr->row_buf, png_ptr->rowbytes + 1);
|
||||||
|
|
||||||
if (png_ptr->transformations)
|
if (png_ptr->transformations || (png_ptr->flags&PNG_FLAG_STRIP_ALPHA))
|
||||||
png_do_read_transformations(png_ptr);
|
png_do_read_transformations(png_ptr);
|
||||||
|
|
||||||
#ifdef PNG_READ_INTERLACING_SUPPORTED
|
#ifdef PNG_READ_INTERLACING_SUPPORTED
|
||||||
|
|||||||
Vendored
+12
-19
@@ -6,7 +6,7 @@
|
|||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.5.2 [March 31, 2011]
|
* Last changed in libpng 1.5.0 [January 6, 2011]
|
||||||
*
|
*
|
||||||
* This code is released under the libpng license.
|
* This code is released under the libpng license.
|
||||||
* For conditions of distribution and use, see the disclaimer
|
* For conditions of distribution and use, see the disclaimer
|
||||||
@@ -83,7 +83,6 @@ typedef PNG_CONST png_uint_16p FAR * png_const_uint_16pp;
|
|||||||
# define PNG_MAX_MALLOC_64K
|
# define PNG_MAX_MALLOC_64K
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PNG_UNUSED
|
|
||||||
/* Unused formal parameter warnings are silenced using the following macro
|
/* Unused formal parameter warnings are silenced using the following macro
|
||||||
* which is expected to have no bad effects on performance (optimizing
|
* which is expected to have no bad effects on performance (optimizing
|
||||||
* compilers will probably remove it entirely). Note that if you replace
|
* compilers will probably remove it entirely). Note that if you replace
|
||||||
@@ -91,7 +90,6 @@ typedef PNG_CONST png_uint_16p FAR * png_const_uint_16pp;
|
|||||||
* semicolon.
|
* semicolon.
|
||||||
*/
|
*/
|
||||||
#define PNG_UNUSED(param) (void)param;
|
#define PNG_UNUSED(param) (void)param;
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Just a little check that someone hasn't tried to define something
|
/* Just a little check that someone hasn't tried to define something
|
||||||
* contradictory.
|
* contradictory.
|
||||||
@@ -288,7 +286,7 @@ typedef PNG_CONST png_uint_16p FAR * png_const_uint_16pp;
|
|||||||
#define PNG_QUANTIZE 0x0040
|
#define PNG_QUANTIZE 0x0040
|
||||||
#define PNG_BACKGROUND 0x0080
|
#define PNG_BACKGROUND 0x0080
|
||||||
#define PNG_BACKGROUND_EXPAND 0x0100
|
#define PNG_BACKGROUND_EXPAND 0x0100
|
||||||
#define PNG_EXPAND_16 0x0200 /* Added to libpng 1.5.2 */
|
/* 0x0200 unused */
|
||||||
#define PNG_16_TO_8 0x0400
|
#define PNG_16_TO_8 0x0400
|
||||||
#define PNG_RGBA 0x0800
|
#define PNG_RGBA 0x0800
|
||||||
#define PNG_EXPAND 0x1000
|
#define PNG_EXPAND 0x1000
|
||||||
@@ -342,8 +340,8 @@ typedef PNG_CONST png_uint_16p FAR * png_const_uint_16pp;
|
|||||||
#define PNG_FLAG_STRIP_ERROR_NUMBERS 0x40000L
|
#define PNG_FLAG_STRIP_ERROR_NUMBERS 0x40000L
|
||||||
#define PNG_FLAG_STRIP_ERROR_TEXT 0x80000L
|
#define PNG_FLAG_STRIP_ERROR_TEXT 0x80000L
|
||||||
#define PNG_FLAG_MALLOC_NULL_MEM_OK 0x100000L
|
#define PNG_FLAG_MALLOC_NULL_MEM_OK 0x100000L
|
||||||
/* 0x200000L unused */
|
#define PNG_FLAG_ADD_ALPHA 0x200000L /* Added to libpng-1.2.8 */
|
||||||
/* 0x400000L unused */
|
#define PNG_FLAG_STRIP_ALPHA 0x400000L /* Added to libpng-1.2.8 */
|
||||||
#define PNG_FLAG_BENIGN_ERRORS_WARN 0x800000L /* Added to libpng-1.4.0 */
|
#define PNG_FLAG_BENIGN_ERRORS_WARN 0x800000L /* Added to libpng-1.4.0 */
|
||||||
/* 0x1000000L unused */
|
/* 0x1000000L unused */
|
||||||
/* 0x2000000L unused */
|
/* 0x2000000L unused */
|
||||||
@@ -774,8 +772,8 @@ PNG_EXTERN void png_do_write_invert_alpha PNGARG((png_row_infop row_info,
|
|||||||
|
|
||||||
#if defined(PNG_WRITE_FILLER_SUPPORTED) || \
|
#if defined(PNG_WRITE_FILLER_SUPPORTED) || \
|
||||||
defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
|
defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
|
||||||
PNG_EXTERN void png_do_strip_channel PNGARG((png_row_infop row_info,
|
PNG_EXTERN void png_do_strip_filler PNGARG((png_row_infop row_info,
|
||||||
png_bytep row, int at_start));
|
png_bytep row, png_uint_32 flags));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_16BIT_SUPPORTED
|
#ifdef PNG_16BIT_SUPPORTED
|
||||||
@@ -877,11 +875,6 @@ PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info,
|
|||||||
png_bytep row, png_const_color_16p trans_color));
|
png_bytep row, png_const_color_16p trans_color));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_EXPAND_16_SUPPORTED
|
|
||||||
PNG_EXTERN void png_do_expand_16 PNGARG((png_row_infop row_info,
|
|
||||||
png_bytep row));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The following decodes the appropriate chunks, and does error correction,
|
/* The following decodes the appropriate chunks, and does error correction,
|
||||||
* then calls the appropriate callback for the chunk if it is valid.
|
* then calls the appropriate callback for the chunk if it is valid.
|
||||||
*/
|
*/
|
||||||
@@ -1191,13 +1184,13 @@ PNG_EXTERN int png_check_fp_string PNGARG((png_const_charp string,
|
|||||||
* holds the result.
|
* holds the result.
|
||||||
*/
|
*/
|
||||||
PNG_EXTERN int png_muldiv PNGARG((png_fixed_point_p res, png_fixed_point a,
|
PNG_EXTERN int png_muldiv PNGARG((png_fixed_point_p res, png_fixed_point a,
|
||||||
png_int_32 multiplied_by, png_int_32 divided_by));
|
png_int_32 times, png_int_32 div));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_INCH_CONVERSIONS_SUPPORTED)
|
#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_INCH_CONVERSIONS_SUPPORTED)
|
||||||
/* Same deal, but issue a warning on overflow and return 0. */
|
/* Same deal, but issue a warning on overflow and return 0. */
|
||||||
PNG_EXTERN png_fixed_point png_muldiv_warn PNGARG((png_structp png_ptr,
|
PNG_EXTERN png_fixed_point png_muldiv_warn PNGARG((png_structp png_ptr,
|
||||||
png_fixed_point a, png_int_32 multiplied_by, png_int_32 divided_by));
|
png_fixed_point a, png_int_32 times, png_int_32 div));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_GAMMA_SUPPORTED
|
#ifdef PNG_READ_GAMMA_SUPPORTED
|
||||||
@@ -1224,12 +1217,12 @@ PNG_EXTERN png_fixed_point png_reciprocal2 PNGARG((png_fixed_point a,
|
|||||||
* correct bit value - 0..255 or 0..65535 as required.
|
* correct bit value - 0..255 or 0..65535 as required.
|
||||||
*/
|
*/
|
||||||
PNG_EXTERN png_uint_16 png_gamma_correct PNGARG((png_structp png_ptr,
|
PNG_EXTERN png_uint_16 png_gamma_correct PNGARG((png_structp png_ptr,
|
||||||
unsigned int value, png_fixed_point gamma_value));
|
unsigned int value, png_fixed_point gamma));
|
||||||
PNG_EXTERN int png_gamma_significant PNGARG((png_fixed_point gamma_value));
|
PNG_EXTERN int png_gamma_significant PNGARG((png_fixed_point gamma));
|
||||||
PNG_EXTERN png_uint_16 png_gamma_16bit_correct PNGARG((unsigned int value,
|
PNG_EXTERN png_uint_16 png_gamma_16bit_correct PNGARG((unsigned int value,
|
||||||
png_fixed_point gamma_value));
|
png_fixed_point gamma));
|
||||||
PNG_EXTERN png_byte png_gamma_8bit_correct PNGARG((unsigned int value,
|
PNG_EXTERN png_byte png_gamma_8bit_correct PNGARG((unsigned int value,
|
||||||
png_fixed_point gamma_value));
|
png_fixed_point gamma));
|
||||||
PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr,
|
PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr,
|
||||||
int bit_depth));
|
int bit_depth));
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Vendored
+3
-10
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngread.c - read a PNG file
|
/* pngread.c - read a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.5.2 [March 31, 2011]
|
* Last changed in libpng 1.5.1 [$RDATE%]
|
||||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
@@ -488,11 +488,9 @@ void PNGAPI
|
|||||||
png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
||||||
{
|
{
|
||||||
PNG_IDAT;
|
PNG_IDAT;
|
||||||
#ifdef PNG_READ_INTERLACING_SUPPORTED
|
|
||||||
PNG_CONST int png_pass_dsp_mask[7] = {0xff, 0x0f, 0xff, 0x33, 0xff, 0x55,
|
PNG_CONST int png_pass_dsp_mask[7] = {0xff, 0x0f, 0xff, 0x33, 0xff, 0x55,
|
||||||
0xff};
|
0xff};
|
||||||
PNG_CONST int png_pass_mask[7] = {0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff};
|
PNG_CONST int png_pass_mask[7] = {0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff};
|
||||||
#endif
|
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
@@ -704,7 +702,7 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
if (png_ptr->transformations)
|
if (png_ptr->transformations || (png_ptr->flags&PNG_FLAG_STRIP_ALPHA))
|
||||||
png_do_read_transformations(png_ptr);
|
png_do_read_transformations(png_ptr);
|
||||||
|
|
||||||
#ifdef PNG_READ_INTERLACING_SUPPORTED
|
#ifdef PNG_READ_INTERLACING_SUPPORTED
|
||||||
@@ -1313,7 +1311,7 @@ png_read_png(png_structp png_ptr, png_infop info_ptr,
|
|||||||
{
|
{
|
||||||
int row;
|
int row;
|
||||||
|
|
||||||
if (png_ptr == NULL || info_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* png_read_info() gives us all of the information from the
|
/* png_read_info() gives us all of the information from the
|
||||||
@@ -1428,11 +1426,6 @@ png_read_png(png_structp png_ptr, png_infop info_ptr,
|
|||||||
|
|
||||||
/* We don't handle adding filler bytes */
|
/* We don't handle adding filler bytes */
|
||||||
|
|
||||||
/* We use png_read_image and rely on that for interlace handling, but we also
|
|
||||||
* call png_read_update_info therefore must turn on interlace handling now:
|
|
||||||
*/
|
|
||||||
(void)png_set_interlace_handling(png_ptr);
|
|
||||||
|
|
||||||
/* Optional call to gamma correct and add the background to the palette
|
/* Optional call to gamma correct and add the background to the palette
|
||||||
* and update info structure. REQUIRED if you are expecting libpng to
|
* and update info structure. REQUIRED if you are expecting libpng to
|
||||||
* update the palette for you (i.e., you selected such a transform above).
|
* update the palette for you (i.e., you selected such a transform above).
|
||||||
|
|||||||
Vendored
+9
-88
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngrtran.c - transforms the data in a row for PNG readers
|
/* pngrtran.c - transforms the data in a row for PNG readers
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.5.2 [March 31, 2011]
|
* Last changed in libpng 1.5.1 [February 3, 2011]
|
||||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
@@ -137,7 +137,6 @@ png_set_strip_16(png_structp png_ptr)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
png_ptr->transformations |= PNG_16_TO_8;
|
png_ptr->transformations |= PNG_16_TO_8;
|
||||||
png_ptr->transformations &= ~PNG_EXPAND_16;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -150,7 +149,7 @@ png_set_strip_alpha(png_structp png_ptr)
|
|||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
png_ptr->transformations |= PNG_STRIP_ALPHA;
|
png_ptr->flags |= PNG_FLAG_STRIP_ALPHA;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -687,25 +686,6 @@ png_set_tRNS_to_alpha(png_structp png_ptr)
|
|||||||
}
|
}
|
||||||
#endif /* defined(PNG_READ_EXPAND_SUPPORTED) */
|
#endif /* defined(PNG_READ_EXPAND_SUPPORTED) */
|
||||||
|
|
||||||
#ifdef PNG_READ_EXPAND_16_SUPPORTED
|
|
||||||
/* Expand to 16 bit channels, expand the tRNS chunk too (because otherwise
|
|
||||||
* it may not work correctly.)
|
|
||||||
*/
|
|
||||||
void PNGAPI
|
|
||||||
png_set_expand_16(png_structp png_ptr)
|
|
||||||
{
|
|
||||||
png_debug(1, "in png_set_expand_16");
|
|
||||||
|
|
||||||
if (png_ptr == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
png_ptr->transformations |= (PNG_EXPAND_16 | PNG_EXPAND | PNG_EXPAND_tRNS);
|
|
||||||
png_ptr->transformations &= ~PNG_16_TO_8;
|
|
||||||
|
|
||||||
png_ptr->flags &= ~PNG_FLAG_ROW_INIT;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
|
#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
png_set_gray_to_rgb(png_structp png_ptr)
|
png_set_gray_to_rgb(png_structp png_ptr)
|
||||||
@@ -1093,7 +1073,7 @@ png_init_read_transformations(png_structp png_ptr)
|
|||||||
*/
|
*/
|
||||||
png_ptr->transformations &= ~PNG_BACKGROUND;
|
png_ptr->transformations &= ~PNG_BACKGROUND;
|
||||||
png_ptr->transformations &= ~PNG_GAMMA;
|
png_ptr->transformations &= ~PNG_GAMMA;
|
||||||
png_ptr->transformations |= PNG_STRIP_ALPHA;
|
png_ptr->flags |= PNG_FLAG_STRIP_ALPHA;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if (png_ptr->background_gamma_type!=PNG_BACKGROUND_GAMMA_UNKNOWN) */
|
/* if (png_ptr->background_gamma_type!=PNG_BACKGROUND_GAMMA_UNKNOWN) */
|
||||||
@@ -1227,7 +1207,7 @@ png_init_read_transformations(png_structp png_ptr)
|
|||||||
|
|
||||||
/* Handled alpha, still need to strip the channel. */
|
/* Handled alpha, still need to strip the channel. */
|
||||||
png_ptr->transformations &= ~PNG_BACKGROUND;
|
png_ptr->transformations &= ~PNG_BACKGROUND;
|
||||||
png_ptr->transformations |= PNG_STRIP_ALPHA;
|
png_ptr->flags |= PNG_FLAG_STRIP_ALPHA;
|
||||||
}
|
}
|
||||||
#endif /* PNG_READ_BACKGROUND_SUPPORTED */
|
#endif /* PNG_READ_BACKGROUND_SUPPORTED */
|
||||||
|
|
||||||
@@ -1305,14 +1285,6 @@ png_read_transform_info(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_EXPAND_16_SUPPORTED
|
|
||||||
if (png_ptr->transformations & PNG_EXPAND_16 && info_ptr->bit_depth == 8 &&
|
|
||||||
info_ptr->color_type != PNG_COLOR_TYPE_PALETTE)
|
|
||||||
{
|
|
||||||
info_ptr->bit_depth = 16;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef PNG_READ_BACKGROUND_SUPPORTED
|
#ifdef PNG_READ_BACKGROUND_SUPPORTED
|
||||||
if (png_ptr->transformations & PNG_BACKGROUND)
|
if (png_ptr->transformations & PNG_BACKGROUND)
|
||||||
{
|
{
|
||||||
@@ -1381,7 +1353,7 @@ png_read_transform_info(png_structp png_ptr, png_infop info_ptr)
|
|||||||
info_ptr->channels = 1;
|
info_ptr->channels = 1;
|
||||||
|
|
||||||
#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
|
#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
|
||||||
if (png_ptr->transformations & PNG_STRIP_ALPHA)
|
if (png_ptr->flags & PNG_FLAG_STRIP_ALPHA)
|
||||||
info_ptr->color_type &= ~PNG_COLOR_MASK_ALPHA;
|
info_ptr->color_type &= ~PNG_COLOR_MASK_ALPHA;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1467,31 +1439,24 @@ png_do_read_transformations(png_structp png_ptr)
|
|||||||
png_do_expand_palette(&(png_ptr->row_info), png_ptr->row_buf + 1,
|
png_do_expand_palette(&(png_ptr->row_info), png_ptr->row_buf + 1,
|
||||||
png_ptr->palette, png_ptr->trans_alpha, png_ptr->num_trans);
|
png_ptr->palette, png_ptr->trans_alpha, png_ptr->num_trans);
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (png_ptr->num_trans &&
|
if (png_ptr->num_trans &&
|
||||||
(png_ptr->transformations & PNG_EXPAND_tRNS))
|
(png_ptr->transformations & PNG_EXPAND_tRNS))
|
||||||
png_do_expand(&(png_ptr->row_info), png_ptr->row_buf + 1,
|
png_do_expand(&(png_ptr->row_info), png_ptr->row_buf + 1,
|
||||||
&(png_ptr->trans_color));
|
&(png_ptr->trans_color));
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
png_do_expand(&(png_ptr->row_info), png_ptr->row_buf + 1,
|
png_do_expand(&(png_ptr->row_info), png_ptr->row_buf + 1,
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Delay the 'expand 16' step until later for efficiency, so that the
|
|
||||||
* intermediate steps work with 8 bit data.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
|
#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
|
||||||
if ((png_ptr->transformations & PNG_STRIP_ALPHA) &&
|
if (png_ptr->flags & PNG_FLAG_STRIP_ALPHA)
|
||||||
(png_ptr->row_info.color_type == PNG_COLOR_TYPE_RGB_ALPHA ||
|
png_do_strip_filler(&(png_ptr->row_info), png_ptr->row_buf + 1,
|
||||||
png_ptr->row_info.color_type == PNG_COLOR_TYPE_GRAY_ALPHA))
|
PNG_FLAG_FILLER_AFTER | (png_ptr->flags & PNG_FLAG_STRIP_ALPHA));
|
||||||
png_do_strip_channel(&(png_ptr->row_info), png_ptr->row_buf + 1,
|
|
||||||
0/*!at_start, because SWAP_ALPHA happens later*/);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
|
#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
|
||||||
@@ -1600,16 +1565,6 @@ png_do_read_transformations(png_structp png_ptr)
|
|||||||
}
|
}
|
||||||
#endif /* PNG_READ_QUANTIZE_SUPPORTED */
|
#endif /* PNG_READ_QUANTIZE_SUPPORTED */
|
||||||
|
|
||||||
#ifdef PNG_READ_EXPAND_16_SUPPORTED
|
|
||||||
/* Do the expansion now, after all the arithmetic has been done. Notice
|
|
||||||
* that previous transformations can handle the PNG_EXPAND_16 flag if this
|
|
||||||
* is efficient (particularly true in the case of gamma correction, where
|
|
||||||
* better accuracy results faster!)
|
|
||||||
*/
|
|
||||||
if (png_ptr->transformations & PNG_EXPAND_16)
|
|
||||||
png_do_expand_16(&png_ptr->row_info, png_ptr->row_buf + 1);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef PNG_READ_INVERT_SUPPORTED
|
#ifdef PNG_READ_INVERT_SUPPORTED
|
||||||
if (png_ptr->transformations & PNG_INVERT_MONO)
|
if (png_ptr->transformations & PNG_INVERT_MONO)
|
||||||
png_do_invert(&(png_ptr->row_info), png_ptr->row_buf + 1);
|
png_do_invert(&(png_ptr->row_info), png_ptr->row_buf + 1);
|
||||||
@@ -1637,9 +1592,6 @@ png_do_read_transformations(png_structp png_ptr)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
|
#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
|
||||||
/*NOTE: this must be in the wrong place - what happens if BGR is set too?
|
|
||||||
* Need pngvalid to test this combo.
|
|
||||||
*/
|
|
||||||
/* If gray -> RGB, do so now only if we did not do so above */
|
/* If gray -> RGB, do so now only if we did not do so above */
|
||||||
if ((png_ptr->transformations & PNG_GRAY_TO_RGB) &&
|
if ((png_ptr->transformations & PNG_GRAY_TO_RGB) &&
|
||||||
(png_ptr->mode & PNG_BACKGROUND_IS_GRAY))
|
(png_ptr->mode & PNG_BACKGROUND_IS_GRAY))
|
||||||
@@ -4112,37 +4064,6 @@ png_do_expand(png_row_infop row_info, png_bytep row,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_EXPAND_16_SUPPORTED
|
|
||||||
/* If the bit depth is 8 and the colour type is not a palette type expand the
|
|
||||||
* whole row to 16 bits. Has no effect otherwise.
|
|
||||||
*/
|
|
||||||
void /* PRIVATE */
|
|
||||||
png_do_expand_16(png_row_infop row_info, png_bytep row)
|
|
||||||
{
|
|
||||||
if (row_info->bit_depth == 8 &&
|
|
||||||
row_info->color_type != PNG_COLOR_TYPE_PALETTE)
|
|
||||||
{
|
|
||||||
/* The row have a sequence of bytes containing [0..255] and we need
|
|
||||||
* to turn it into another row containing [0..65535], to do this we
|
|
||||||
* calculate:
|
|
||||||
*
|
|
||||||
* (input / 255) * 65535
|
|
||||||
*
|
|
||||||
* Which happens to be exactly input * 257 and this can be achieved
|
|
||||||
* simply by byte replication in place (copying backwards).
|
|
||||||
*/
|
|
||||||
png_byte *sp = row + row_info->rowbytes; /* source, last byte + 1 */
|
|
||||||
png_byte *dp = sp + row_info->rowbytes; /* destination, end + 1 */
|
|
||||||
while (dp > sp)
|
|
||||||
dp[-2] = dp[-1] = *--sp, dp -= 2;
|
|
||||||
|
|
||||||
row_info->rowbytes *= 2;
|
|
||||||
row_info->bit_depth = 16;
|
|
||||||
row_info->pixel_depth = (png_byte)(row_info->channels * 16);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||||
void /* PRIVATE */
|
void /* PRIVATE */
|
||||||
png_do_quantize(png_row_infop row_info, png_bytep row,
|
png_do_quantize(png_row_infop row_info, png_bytep row,
|
||||||
|
|||||||
Vendored
+4
-20
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngrutil.c - utilities to read a PNG file
|
/* pngrutil.c - utilities to read a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.5.2 [March 31, 2011]
|
* Last changed in libpng 1.5.1 [February 3, 2011]
|
||||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
@@ -1275,7 +1275,9 @@ png_handle_sPLT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
{
|
{
|
||||||
png_bytep entry_start;
|
png_bytep entry_start;
|
||||||
png_sPLT_t new_palette;
|
png_sPLT_t new_palette;
|
||||||
|
#ifdef PNG_POINTER_INDEXING_SUPPORTED
|
||||||
png_sPLT_entryp pp;
|
png_sPLT_entryp pp;
|
||||||
|
#endif
|
||||||
png_uint_32 data_length;
|
png_uint_32 data_length;
|
||||||
int entry_size, i;
|
int entry_size, i;
|
||||||
png_uint_32 skip = 0;
|
png_uint_32 skip = 0;
|
||||||
@@ -1440,7 +1442,7 @@ png_handle_sPLT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
pp[i].alpha = png_get_uint_16(entry_start); entry_start += 2;
|
pp[i].alpha = png_get_uint_16(entry_start); entry_start += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
pp[i].frequency = png_get_uint_16(entry_start); entry_start += 2;
|
pp->frequency = png_get_uint_16(entry_start); entry_start += 2;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -3461,24 +3463,6 @@ png_read_start_row(png_structp png_ptr)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_EXPAND_16_SUPPORTED
|
|
||||||
if (png_ptr->transformations & PNG_EXPAND_16)
|
|
||||||
{
|
|
||||||
# ifdef PNG_READ_EXPAND_SUPPORTED
|
|
||||||
/* In fact it is an error if it isn't supported, but checking is
|
|
||||||
* the safe way.
|
|
||||||
*/
|
|
||||||
if (png_ptr->transformations & PNG_EXPAND)
|
|
||||||
{
|
|
||||||
if (png_ptr->bit_depth < 16)
|
|
||||||
max_pixel_depth *= 2;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
# endif
|
|
||||||
png_ptr->transformations &= ~PNG_EXPAND_16;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef PNG_READ_FILLER_SUPPORTED
|
#ifdef PNG_READ_FILLER_SUPPORTED
|
||||||
if (png_ptr->transformations & (PNG_FILLER))
|
if (png_ptr->transformations & (PNG_FILLER))
|
||||||
{
|
{
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1784,4 +1784,4 @@ main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||||
typedef png_libpng_version_1_5_2 Your_png_h_is_not_version_1_5_2;
|
typedef png_libpng_version_1_5_1 Your_png_h_is_not_version_1_5_1;
|
||||||
|
|||||||
Vendored
BIN
Binary file not shown.
|
After Width: | Height: | Size: 8.5 KiB |
Vendored
+138
-89
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
|
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.5.2 [March 31, 2011]
|
* Last changed in libpng 1.5.1 [February 3, 2011]
|
||||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
@@ -424,115 +424,170 @@ png_do_packswap(png_row_infop row_info, png_bytep row)
|
|||||||
|
|
||||||
#if defined(PNG_WRITE_FILLER_SUPPORTED) || \
|
#if defined(PNG_WRITE_FILLER_SUPPORTED) || \
|
||||||
defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
|
defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
|
||||||
/* Remove a channel - this used to be 'png_do_strip_filler' but it used a
|
/* Remove filler or alpha byte(s) */
|
||||||
* somewhat weird combination of flags to determine what to do. All the calls
|
|
||||||
* to png_do_strip_filler are changed in 1.5.2 to call this instead with the
|
|
||||||
* correct arguments.
|
|
||||||
*
|
|
||||||
* The routine isn't general - the channel must be the channel at the start or
|
|
||||||
* end (not in the middle) of each pixel.
|
|
||||||
*/
|
|
||||||
void /* PRIVATE */
|
void /* PRIVATE */
|
||||||
png_do_strip_channel(png_row_infop row_info, png_bytep row, int at_start)
|
png_do_strip_filler(png_row_infop row_info, png_bytep row, png_uint_32 flags)
|
||||||
{
|
{
|
||||||
png_bytep sp = row; /* source pointer */
|
png_debug(1, "in png_do_strip_filler");
|
||||||
png_bytep dp = row; /* destination pointer */
|
|
||||||
png_bytep ep = row + row_info->rowbytes; /* One beyond end of row */
|
|
||||||
|
|
||||||
/* At the start sp will point to the first byte to copy and dp to where
|
{
|
||||||
* it is copied to. ep always points just beyond the end of the row, so
|
png_bytep sp = row;
|
||||||
* the loop simply copies (channels-1) channels until sp reaches ep.
|
png_bytep dp = row;
|
||||||
*/
|
png_uint_32 row_width = row_info->width;
|
||||||
/* GA, GX, XG cases */
|
png_uint_32 i;
|
||||||
if (row_info->channels == 2)
|
|
||||||
|
if ((row_info->color_type == PNG_COLOR_TYPE_RGB ||
|
||||||
|
(row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA &&
|
||||||
|
(flags & PNG_FLAG_STRIP_ALPHA))) &&
|
||||||
|
row_info->channels == 4)
|
||||||
{
|
{
|
||||||
if (row_info->bit_depth == 8)
|
if (row_info->bit_depth == 8)
|
||||||
{
|
{
|
||||||
if (at_start) /* Skip initial filler */
|
/* This converts from RGBX or RGBA to RGB */
|
||||||
++sp;
|
if (flags & PNG_FLAG_FILLER_AFTER)
|
||||||
else /* Skip initial channels and, for sp, the filler */
|
{
|
||||||
sp += 2, ++dp;
|
dp += 3; sp += 4;
|
||||||
|
for (i = 1; i < row_width; i++)
|
||||||
/* For a 1 pixel wide image there is nothing to do */
|
{
|
||||||
while (sp < ep)
|
*dp++ = *sp++;
|
||||||
*dp++ = *sp, sp += 2;
|
*dp++ = *sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
row_info->pixel_depth = 8;
|
sp++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (row_info->bit_depth == 16)
|
/* This converts from XRGB or ARGB to RGB */
|
||||||
{
|
|
||||||
if (at_start)
|
|
||||||
sp += 2;
|
|
||||||
else
|
else
|
||||||
sp += 4, dp += 2;
|
|
||||||
|
|
||||||
while (sp < ep)
|
|
||||||
*dp++ = *sp++, *dp++ = *sp, sp += 3;
|
|
||||||
|
|
||||||
row_info->pixel_depth = 16;
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
return; /* bad bit depth */
|
|
||||||
|
|
||||||
row_info->channels = 1;
|
|
||||||
|
|
||||||
/* Finally fix the color type if it records an alpha channel */
|
|
||||||
if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
|
|
||||||
row_info->color_type = PNG_COLOR_TYPE_GRAY;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* RGBA, RGBX, XRGB cases */
|
|
||||||
else if (row_info->channels == 4)
|
|
||||||
{
|
{
|
||||||
if (row_info->bit_depth == 8)
|
for (i = 0; i < row_width; i++)
|
||||||
{
|
{
|
||||||
if (at_start) /* Skip initial filler */
|
sp++;
|
||||||
++sp;
|
*dp++ = *sp++;
|
||||||
else /* Skip initial channels and, for sp, the filler */
|
*dp++ = *sp++;
|
||||||
sp += 4, dp += 3;
|
*dp++ = *sp++;
|
||||||
|
}
|
||||||
/* Note that the loop adds 3 to dp and 4 to sp each time. */
|
}
|
||||||
while (sp < ep)
|
|
||||||
*dp++ = *sp++, *dp++ = *sp++, *dp++ = *sp, sp += 2;
|
|
||||||
|
|
||||||
row_info->pixel_depth = 24;
|
row_info->pixel_depth = 24;
|
||||||
|
row_info->rowbytes = row_width * 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (row_info->bit_depth == 16)
|
else /* if (row_info->bit_depth == 16) */
|
||||||
{
|
{
|
||||||
if (at_start)
|
if (flags & PNG_FLAG_FILLER_AFTER)
|
||||||
sp += 2;
|
{
|
||||||
else
|
/* This converts from RRGGBBXX or RRGGBBAA to RRGGBB */
|
||||||
sp += 8, dp += 6;
|
sp += 8; dp += 6;
|
||||||
|
for (i = 1; i < row_width; i++)
|
||||||
|
{
|
||||||
|
/* This could be (although png_memcpy is probably slower):
|
||||||
|
png_memcpy(dp, sp, 6);
|
||||||
|
sp += 8;
|
||||||
|
dp += 6;
|
||||||
|
*/
|
||||||
|
|
||||||
while (sp < ep)
|
*dp++ = *sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
sp += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
{
|
{
|
||||||
/* Copy 6 bytes, skip 2 */
|
/* This converts from XXRRGGBB or AARRGGBB to RRGGBB */
|
||||||
*dp++ = *sp++, *dp++ = *sp++;
|
for (i = 0; i < row_width; i++)
|
||||||
*dp++ = *sp++, *dp++ = *sp++;
|
{
|
||||||
*dp++ = *sp++, *dp++ = *sp, sp += 3;
|
/* This could be (although png_memcpy is probably slower):
|
||||||
|
png_memcpy(dp, sp, 6);
|
||||||
|
sp += 8;
|
||||||
|
dp += 6;
|
||||||
|
*/
|
||||||
|
|
||||||
|
sp += 2;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
row_info->pixel_depth = 48;
|
row_info->pixel_depth = 48;
|
||||||
|
row_info->rowbytes = row_width * 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
|
||||||
return; /* bad bit depth */
|
|
||||||
|
|
||||||
row_info->channels = 3;
|
row_info->channels = 3;
|
||||||
|
}
|
||||||
|
|
||||||
/* Finally fix the color type if it records an alpha channel */
|
else if ((row_info->color_type == PNG_COLOR_TYPE_GRAY ||
|
||||||
if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
|
(row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA &&
|
||||||
row_info->color_type = PNG_COLOR_TYPE_RGB;
|
(flags & PNG_FLAG_STRIP_ALPHA))) &&
|
||||||
|
row_info->channels == 2)
|
||||||
|
{
|
||||||
|
if (row_info->bit_depth == 8)
|
||||||
|
{
|
||||||
|
if (flags & PNG_FLAG_FILLER_AFTER)
|
||||||
|
{
|
||||||
|
/* This converts from GX or GA to G */
|
||||||
|
for (i = 0; i < row_width; i++)
|
||||||
|
{
|
||||||
|
*dp++ = *sp++;
|
||||||
|
sp++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
return; /* The filler channel has gone already */
|
{
|
||||||
|
/* This converts from XG or AG to G */
|
||||||
|
for (i = 0; i < row_width; i++)
|
||||||
|
{
|
||||||
|
sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Fix the rowbytes value. */
|
row_info->pixel_depth = 8;
|
||||||
row_info->rowbytes = dp-row;
|
row_info->rowbytes = row_width;
|
||||||
|
}
|
||||||
|
|
||||||
|
else /* if (row_info->bit_depth == 16) */
|
||||||
|
{
|
||||||
|
if (flags & PNG_FLAG_FILLER_AFTER)
|
||||||
|
{
|
||||||
|
/* This converts from GGXX or GGAA to GG */
|
||||||
|
sp += 4; dp += 2;
|
||||||
|
for (i = 1; i < row_width; i++)
|
||||||
|
{
|
||||||
|
*dp++ = *sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
sp += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* This converts from XXGG or AAGG to GG */
|
||||||
|
for (i = 0; i < row_width; i++)
|
||||||
|
{
|
||||||
|
sp += 2;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
*dp++ = *sp++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
row_info->pixel_depth = 16;
|
||||||
|
row_info->rowbytes = row_width * 2;
|
||||||
|
}
|
||||||
|
row_info->channels = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flags & PNG_FLAG_STRIP_ALPHA)
|
||||||
|
row_info->color_type = (png_byte)(row_info->color_type &
|
||||||
|
~PNG_COLOR_MASK_ALPHA);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -648,16 +703,11 @@ png_get_user_transform_ptr(png_const_structp png_ptr)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED
|
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_current_row_number(png_const_structp png_ptr)
|
png_get_current_row_number(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
/* See the comments in png.h - this is the sub-image row when reading and
|
|
||||||
* interlaced image.
|
|
||||||
*/
|
|
||||||
if (png_ptr != NULL)
|
if (png_ptr != NULL)
|
||||||
return png_ptr->row_number;
|
return png_ptr->row_number;
|
||||||
|
|
||||||
return PNG_UINT_32_MAX; /* help the app not to fail silently */
|
return PNG_UINT_32_MAX; /* help the app not to fail silently */
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -668,7 +718,6 @@ png_get_current_pass_number(png_const_structp png_ptr)
|
|||||||
return png_ptr->pass;
|
return png_ptr->pass;
|
||||||
return 8; /* invalid */
|
return 8; /* invalid */
|
||||||
}
|
}
|
||||||
#endif /* PNG_USER_TRANSFORM_INFO_SUPPORTED */
|
|
||||||
#endif /* PNG_READ_USER_TRANSFORM_SUPPORTED ||
|
#endif /* PNG_READ_USER_TRANSFORM_SUPPORTED ||
|
||||||
PNG_WRITE_USER_TRANSFORM_SUPPORTED */
|
PNG_WRITE_USER_TRANSFORM_SUPPORTED */
|
||||||
#endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */
|
#endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */
|
||||||
|
|||||||
Vendored
+3
-54
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngvalid.c - validate libpng by constructing then reading png files.
|
/* pngvalid.c - validate libpng by constructing then reading png files.
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.5.2 [March 31, 2011]
|
* Last changed in libpng 1.5.1 [February 3, 2011]
|
||||||
* Copyright (c) 2011 Glenn Randers-Pehrson
|
* Copyright (c) 2011 Glenn Randers-Pehrson
|
||||||
* Written by John Cunningham Bowler
|
* Written by John Cunningham Bowler
|
||||||
*
|
*
|
||||||
@@ -979,7 +979,7 @@ store_pool_delete(png_store *ps, store_pool *pool)
|
|||||||
next->next = NULL;
|
next->next = NULL;
|
||||||
|
|
||||||
fprintf(stderr, "\t%lu bytes @ %p\n",
|
fprintf(stderr, "\t%lu bytes @ %p\n",
|
||||||
(unsigned long)next->size, (PNG_CONST void*)(next+1));
|
(unsigned long)next->size, next+1);
|
||||||
/* The NULL means this will always return, even if the memory is
|
/* The NULL means this will always return, even if the memory is
|
||||||
* corrupted.
|
* corrupted.
|
||||||
*/
|
*/
|
||||||
@@ -3072,16 +3072,7 @@ progressive_row(png_structp pp, png_bytep new_row, png_uint_32 y, int pass)
|
|||||||
* us the y in the sub-image:
|
* us the y in the sub-image:
|
||||||
*/
|
*/
|
||||||
if (dp->do_interlace && dp->interlace_type == PNG_INTERLACE_ADAM7)
|
if (dp->do_interlace && dp->interlace_type == PNG_INTERLACE_ADAM7)
|
||||||
{
|
|
||||||
/* Use this opportunity to validate the png 'current' APIs: */
|
|
||||||
if (y != png_get_current_row_number(pp))
|
|
||||||
png_error(pp, "png_get_current_row_number is broken");
|
|
||||||
|
|
||||||
if (pass != png_get_current_pass_number(pp))
|
|
||||||
png_error(pp, "png_get_current_pass_number is broken");
|
|
||||||
|
|
||||||
y = PNG_ROW_FROM_PASS_ROW(y, pass);
|
y = PNG_ROW_FROM_PASS_ROW(y, pass);
|
||||||
}
|
|
||||||
|
|
||||||
/* Validate this just in case. */
|
/* Validate this just in case. */
|
||||||
if (y >= dp->h)
|
if (y >= dp->h)
|
||||||
@@ -4468,48 +4459,6 @@ image_transform_png_set_expand_gray_1_2_4_to_8_add(image_transform *this,
|
|||||||
}
|
}
|
||||||
|
|
||||||
IT(expand_gray_1_2_4_to_8, expand);
|
IT(expand_gray_1_2_4_to_8, expand);
|
||||||
/* png_set_expand_16 */
|
|
||||||
static void
|
|
||||||
image_transform_png_set_expand_16_set(PNG_CONST image_transform *this,
|
|
||||||
transform_display *that, png_structp pp, png_infop pi)
|
|
||||||
{
|
|
||||||
png_set_expand_16(pp);
|
|
||||||
this->next->set(this->next, that, pp, pi);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
image_transform_png_set_expand_16_mod(PNG_CONST image_transform *this,
|
|
||||||
image_pixel *that, png_structp pp, PNG_CONST transform_display *display)
|
|
||||||
{
|
|
||||||
/* Expect expand_16 to expand everything to 16 bits as a result of also
|
|
||||||
* causing 'expand' to happen.
|
|
||||||
*/
|
|
||||||
if (that->colour_type == PNG_COLOR_TYPE_PALETTE)
|
|
||||||
image_pixel_convert_PLTE(that, &display->this);
|
|
||||||
|
|
||||||
if (that->have_tRNS)
|
|
||||||
image_pixel_add_alpha(that, &display->this);
|
|
||||||
|
|
||||||
if (that->bit_depth < 16)
|
|
||||||
that->sample_depth = that->bit_depth = 16;
|
|
||||||
|
|
||||||
this->next->mod(this->next, that, pp, display);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
image_transform_png_set_expand_16_add(image_transform *this,
|
|
||||||
PNG_CONST image_transform **that, png_byte colour_type, png_byte bit_depth)
|
|
||||||
{
|
|
||||||
UNUSED(colour_type)
|
|
||||||
|
|
||||||
this->next = *that;
|
|
||||||
*that = this;
|
|
||||||
|
|
||||||
/* expand_16 does something unless the bit depth is already 16. */
|
|
||||||
return bit_depth < 16;
|
|
||||||
}
|
|
||||||
|
|
||||||
IT(expand_16, expand_gray_1_2_4_to_8);
|
|
||||||
|
|
||||||
/* png_set_strip_16 */
|
/* png_set_strip_16 */
|
||||||
static void
|
static void
|
||||||
@@ -4561,7 +4510,7 @@ image_transform_png_set_strip_16_add(image_transform *this,
|
|||||||
return bit_depth > 8;
|
return bit_depth > 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
IT(strip_16, expand_16);
|
IT(strip_16, expand_gray_1_2_4_to_8);
|
||||||
|
|
||||||
/* png_set_strip_alpha */
|
/* png_set_strip_alpha */
|
||||||
static void
|
static void
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1177,7 +1177,7 @@ png_set_filter(png_structp png_ptr, int method, int filters)
|
|||||||
* better compression.
|
* better compression.
|
||||||
*/
|
*/
|
||||||
#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* GRR 970116 */
|
#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* GRR 970116 */
|
||||||
/* Convenience reset API. */
|
/* Conveneince reset API. */
|
||||||
static void
|
static void
|
||||||
png_reset_filter_heuristics(png_structp png_ptr)
|
png_reset_filter_heuristics(png_structp png_ptr)
|
||||||
{
|
{
|
||||||
|
|||||||
Vendored
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngwtran.c - transforms the data in a row for PNG writers
|
/* pngwtran.c - transforms the data in a row for PNG writers
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.5.2 [March 31, 2011]
|
* Last changed in libpng 1.5.0 [January 6, 2011]
|
||||||
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
@@ -44,8 +44,8 @@ png_do_write_transformations(png_structp png_ptr)
|
|||||||
|
|
||||||
#ifdef PNG_WRITE_FILLER_SUPPORTED
|
#ifdef PNG_WRITE_FILLER_SUPPORTED
|
||||||
if (png_ptr->transformations & PNG_FILLER)
|
if (png_ptr->transformations & PNG_FILLER)
|
||||||
png_do_strip_channel(&(png_ptr->row_info), png_ptr->row_buf + 1,
|
png_do_strip_filler(&(png_ptr->row_info), png_ptr->row_buf + 1,
|
||||||
!(png_ptr->flags & PNG_FILLER_AFTER));
|
png_ptr->flags);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_WRITE_PACKSWAP_SUPPORTED
|
#ifdef PNG_WRITE_PACKSWAP_SUPPORTED
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
VisualStudio instructions
|
VisualStudio instructions
|
||||||
|
|
||||||
libpng version 1.5.2 - March 31, 2011
|
libpng version 1.5.1 - February 3, 2011
|
||||||
|
|
||||||
Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* zlib.props - location of zlib source
|
* zlib.props - location of zlib source
|
||||||
*
|
*
|
||||||
* libpng version 1.5.2 - March 31, 2011
|
* libpng version 1.5.1 - February 3, 2011
|
||||||
*
|
*
|
||||||
* Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
||||||
*
|
*
|
||||||
|
|||||||
+6
-6
@@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
Makefiles for libpng version 1.5.2 - March 31, 2011
|
Makefiles for libpng version 1.5.1 - February 3, 2011
|
||||||
|
|
||||||
pnglibconf.h.prebuilt => Stores configuration settings
|
pnglibconf.h.prebuilt => Stores configuration settings
|
||||||
makefile.linux => Linux/ELF makefile
|
makefile.linux => Linux/ELF makefile
|
||||||
(gcc, creates libpng15.so.15.1.5.2)
|
(gcc, creates libpng15.so.15.1.5.1)
|
||||||
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
||||||
makefile.knr => Archaic UNIX Makefile that converts files with
|
makefile.knr => Archaic UNIX Makefile that converts files with
|
||||||
ansi2knr (Requires ansi2knr.c from
|
ansi2knr (Requires ansi2knr.c from
|
||||||
@@ -20,7 +20,7 @@ pnglibconf.h.prebuilt => Stores configuration settings
|
|||||||
makefile.dec => DEC Alpha UNIX makefile
|
makefile.dec => DEC Alpha UNIX makefile
|
||||||
makefile.dj2 => DJGPP 2 makefile
|
makefile.dj2 => DJGPP 2 makefile
|
||||||
makefile.elf => Linux/ELF makefile symbol versioning,
|
makefile.elf => Linux/ELF makefile symbol versioning,
|
||||||
(gcc, creates libpng15.so.15.1.5.2)
|
(gcc, creates libpng15.so.15.1.5.1)
|
||||||
makefile.freebsd => FreeBSD makefile
|
makefile.freebsd => FreeBSD makefile
|
||||||
makefile.gcc => Generic gcc makefile
|
makefile.gcc => Generic gcc makefile
|
||||||
makefile.hpgcc => HPUX makefile using gcc
|
makefile.hpgcc => HPUX makefile using gcc
|
||||||
@@ -35,12 +35,12 @@ pnglibconf.h.prebuilt => Stores configuration settings
|
|||||||
makefile.os2 => OS/2 Makefile (gcc and emx, requires libpng.def)
|
makefile.os2 => OS/2 Makefile (gcc and emx, requires libpng.def)
|
||||||
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
||||||
makefile.sggcc => Silicon Graphics (gcc,
|
makefile.sggcc => Silicon Graphics (gcc,
|
||||||
creates libpng15.so.15.1.5.2)
|
creates libpng15.so.15.1.5.1)
|
||||||
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
|
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
|
||||||
makefile.solaris => Solaris 2.X makefile (gcc,
|
makefile.solaris => Solaris 2.X makefile (gcc,
|
||||||
creates libpng15.so.15.1.5.2)
|
creates libpng15.so.15.1.5.1)
|
||||||
makefile.so9 => Solaris 9 makefile (gcc,
|
makefile.so9 => Solaris 9 makefile (gcc,
|
||||||
creates libpng15.so.15.1.5.2)
|
creates libpng15.so.15.1.5.1)
|
||||||
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
||||||
makefile.sunos => Sun makefile
|
makefile.sunos => Sun makefile
|
||||||
makefile.32sunu => Sun Ultra 32-bit makefile
|
makefile.32sunu => Sun Ultra 32-bit makefile
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
# Modeled after libxml-config.
|
# Modeled after libxml-config.
|
||||||
|
|
||||||
version=1.5.2
|
version=1.5.1
|
||||||
prefix=""
|
prefix=""
|
||||||
libdir=""
|
libdir=""
|
||||||
libs=""
|
libs=""
|
||||||
|
|||||||
+1
-1
@@ -5,6 +5,6 @@ includedir=@includedir@/libpng15
|
|||||||
|
|
||||||
Name: libpng
|
Name: libpng
|
||||||
Description: Loads and saves PNG files
|
Description: Loads and saves PNG files
|
||||||
Version: 1.5.2
|
Version: 1.5.1
|
||||||
Libs: -L${libdir} -lpng15
|
Libs: -L${libdir} -lpng15
|
||||||
Cflags: -I${includedir}
|
Cflags: -I${includedir}
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
VERMAJ = 1
|
VERMAJ = 1
|
||||||
VERMIN = 5
|
VERMIN = 5
|
||||||
VERMIC = 2
|
VERMIC = 1
|
||||||
VER = $(VERMAJ).$(VERMIN).$(VERMIC)
|
VER = $(VERMAJ).$(VERMIN).$(VERMIC)
|
||||||
NAME = libpng
|
NAME = libpng
|
||||||
PACKAGE = $(NAME)-$(VER)
|
PACKAGE = $(NAME)-$(VER)
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@
|
|||||||
# Library name:
|
# Library name:
|
||||||
LIBNAME = libpng15
|
LIBNAME = libpng15
|
||||||
PNGMAJ = 15
|
PNGMAJ = 15
|
||||||
RELEASE = 2
|
RELEASE = 1
|
||||||
|
|
||||||
# Shared library names:
|
# Shared library names:
|
||||||
LIBSO=$(LIBNAME).so
|
LIBSO=$(LIBNAME).so
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include/libpng15
|
|||||||
|
|
||||||
LIB= png15
|
LIB= png15
|
||||||
SHLIB_MAJOR= 0
|
SHLIB_MAJOR= 0
|
||||||
SHLIB_MINOR= 1.5.2
|
SHLIB_MINOR= 1.5.1
|
||||||
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
||||||
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
||||||
pngwtran.c pngmem.c pngerror.c pngpread.c
|
pngwtran.c pngmem.c pngerror.c pngpread.c
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include
|
|||||||
|
|
||||||
LIB= png
|
LIB= png
|
||||||
SHLIB_MAJOR= 15
|
SHLIB_MAJOR= 15
|
||||||
SHLIB_MINOR= 1.5.2
|
SHLIB_MINOR= 1.5.1
|
||||||
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
||||||
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
||||||
pngwtran.c pngmem.c pngerror.c pngpread.c
|
pngwtran.c pngmem.c pngerror.c pngpread.c
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ LIBDIR= ${PREFIX}/lib
|
|||||||
MANDIR= ${PREFIX}/man/cat
|
MANDIR= ${PREFIX}/man/cat
|
||||||
|
|
||||||
SHLIB_MAJOR= 15
|
SHLIB_MAJOR= 15
|
||||||
SHLIB_MINOR= 1.5.2
|
SHLIB_MINOR= 1.5.1
|
||||||
|
|
||||||
LIB= png
|
LIB= png
|
||||||
SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \
|
SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \
|
||||||
|
|||||||
+4
-4
@@ -1,6 +1,6 @@
|
|||||||
# makefile for libpng
|
# makefile for libpng
|
||||||
# Copyright (C) 1998 Tim Wegner
|
# Copyright (C) 1998 Tim Wegner
|
||||||
# Copyright (C) 2006,2009,2011 Glenn Randers-Pehrson
|
# Copyright (C) 2006,2009 Glenn Randers-Pehrson
|
||||||
#
|
#
|
||||||
# This code is released under the libpng license.
|
# This code is released under the libpng license.
|
||||||
# For conditions of distribution and use, see the disclaimer
|
# For conditions of distribution and use, see the disclaimer
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
CC = cl
|
CC = cl
|
||||||
LD = link
|
LD = link
|
||||||
AR = lib
|
AR = lib
|
||||||
CFLAGS = -nologo -D_CRT_SECURE_NO_DEPRECATE -MD -O2 -W3 -I..\zlib
|
CFLAGS = -nologo -MD -O2 -W3 -I..\zlib
|
||||||
LDFLAGS = -nologo
|
LDFLAGS = -nologo
|
||||||
ARFLAGS = -nologo
|
ARFLAGS = -nologo
|
||||||
RM = del
|
RM = del
|
||||||
@@ -36,8 +36,8 @@ OBJS = $(OBJS1) $(OBJS2) $(OBJS3)
|
|||||||
all: libpng.lib
|
all: libpng.lib
|
||||||
|
|
||||||
# see scripts/pnglibconf.mak for more options
|
# see scripts/pnglibconf.mak for more options
|
||||||
pnglibconf.h: scripts\pnglibconf.h.prebuilt
|
pnglibconf.h: scripts/pnglibconf.h.prebuilt
|
||||||
copy scripts\pnglibconf.h.prebuilt $@
|
cp scripts/pnglibconf.h.prebuilt $@
|
||||||
|
|
||||||
png$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
png$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
|
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
|
||||||
|
|||||||
@@ -304,7 +304,6 @@ option READ_TRANSFORMS requires READ
|
|||||||
= NO_READ_TRANSFORMS READ_TRANSFORMS_NOT_SUPPORTED
|
= NO_READ_TRANSFORMS READ_TRANSFORMS_NOT_SUPPORTED
|
||||||
|
|
||||||
option READ_EXPAND requires READ_TRANSFORMS
|
option READ_EXPAND requires READ_TRANSFORMS
|
||||||
option READ_EXPAND_16 requires READ_TRANSFORMS READ_16BIT enables READ_EXPAND
|
|
||||||
option READ_SHIFT requires READ_TRANSFORMS
|
option READ_SHIFT requires READ_TRANSFORMS
|
||||||
option READ_PACK requires READ_TRANSFORMS
|
option READ_PACK requires READ_TRANSFORMS
|
||||||
option READ_BGR requires READ_TRANSFORMS
|
option READ_BGR requires READ_TRANSFORMS
|
||||||
|
|||||||
+144
-149
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
/* pnglibconf.h - library build configuration */
|
/* pnglibconf.h - library build configuration */
|
||||||
|
|
||||||
/* libpng version 1.5.0 - last changed on February 11, 2011 */
|
/* libpng version 1.5.0 - last changed on January 6, 2011 */
|
||||||
|
|
||||||
/* Copyright (c) 1998-2011 Glenn Randers-Pehrson */
|
/* Copyright (c) 1998-2011 Glenn Randers-Pehrson */
|
||||||
|
|
||||||
@@ -12,170 +12,165 @@
|
|||||||
/* and license in png.h */
|
/* and license in png.h */
|
||||||
|
|
||||||
/* pnglibconf.h */
|
/* pnglibconf.h */
|
||||||
|
/* Machine generated file: DO NOT EDIT */
|
||||||
/* Derived from: scripts/pnglibconf.dfa */
|
/* Derived from: scripts/pnglibconf.dfa */
|
||||||
/* If you edit this file by hand you must obey the rules expressed in */
|
|
||||||
/* pnglibconf.dfa with respect to the dependencies between the following */
|
|
||||||
/* symbols. It is much better to generate a new file using */
|
|
||||||
/* scripts/libpngconf.mak */
|
|
||||||
|
|
||||||
#ifndef PNGLCONF_H
|
#ifndef PNGLCONF_H
|
||||||
#define PNGLCONF_H
|
#define PNGLCONF_H
|
||||||
/* settings */
|
/* settings */
|
||||||
#define PNG_API_RULE 0
|
|
||||||
#define PNG_CALLOC_SUPPORTED
|
|
||||||
#define PNG_COST_SHIFT 3
|
|
||||||
#define PNG_DEFAULT_READ_MACROS 1
|
|
||||||
#define PNG_GAMMA_THRESHOLD_FIXED 5000
|
|
||||||
#define PNG_MAX_GAMMA_8 11
|
#define PNG_MAX_GAMMA_8 11
|
||||||
#define PNG_QUANTIZE_BLUE_BITS 5
|
#define PNG_CALLOC_SUPPORTED
|
||||||
#define PNG_QUANTIZE_GREEN_BITS 5
|
|
||||||
#define PNG_QUANTIZE_RED_BITS 5
|
#define PNG_QUANTIZE_RED_BITS 5
|
||||||
#define PNG_sCAL_PRECISION 5
|
|
||||||
#define PNG_USER_CHUNK_CACHE_MAX 0
|
|
||||||
#define PNG_USER_CHUNK_MALLOC_MAX 0
|
|
||||||
#define PNG_USER_HEIGHT_MAX 1000000L
|
|
||||||
#define PNG_USER_WIDTH_MAX 1000000L
|
#define PNG_USER_WIDTH_MAX 1000000L
|
||||||
|
#define PNG_QUANTIZE_GREEN_BITS 5
|
||||||
|
#define PNG_API_RULE 0
|
||||||
|
#define PNG_QUANTIZE_BLUE_BITS 5
|
||||||
|
#define PNG_USER_CHUNK_CACHE_MAX 0
|
||||||
|
#define PNG_USER_HEIGHT_MAX 1000000L
|
||||||
|
#define PNG_sCAL_PRECISION 5
|
||||||
|
#define PNG_COST_SHIFT 3
|
||||||
#define PNG_WEIGHT_SHIFT 8
|
#define PNG_WEIGHT_SHIFT 8
|
||||||
|
#define PNG_USER_CHUNK_MALLOC_MAX 0
|
||||||
|
#define PNG_DEFAULT_READ_MACROS 1
|
||||||
#define PNG_ZBUF_SIZE 8192
|
#define PNG_ZBUF_SIZE 8192
|
||||||
|
#define PNG_GAMMA_THRESHOLD_FIXED 5000
|
||||||
/* end of settings */
|
/* end of settings */
|
||||||
/* options */
|
/* options */
|
||||||
#define PNG_16BIT_SUPPORTED
|
#define PNG_INFO_IMAGE_SUPPORTED
|
||||||
#define PNG_ALIGN_MEMORY_SUPPORTED
|
|
||||||
#define PNG_BENIGN_ERRORS_SUPPORTED
|
|
||||||
#define PNG_bKGD_SUPPORTED
|
|
||||||
#define PNG_CHECK_cHRM_SUPPORTED
|
|
||||||
#define PNG_cHRM_SUPPORTED
|
|
||||||
#define PNG_CONSOLE_IO_SUPPORTED
|
|
||||||
#define PNG_CONVERT_tIME_SUPPORTED
|
|
||||||
#define PNG_EASY_ACCESS_SUPPORTED
|
|
||||||
#define PNG_ERROR_TEXT_SUPPORTED
|
|
||||||
#define PNG_FIXED_POINT_SUPPORTED
|
|
||||||
#define PNG_FLOATING_ARITHMETIC_SUPPORTED
|
|
||||||
#define PNG_FLOATING_POINT_SUPPORTED
|
|
||||||
#define PNG_gAMA_SUPPORTED
|
|
||||||
#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||||
|
#define PNG_POINTER_INDEXING_SUPPORTED
|
||||||
|
#define PNG_WARNINGS_SUPPORTED
|
||||||
|
#define PNG_FLOATING_ARITHMETIC_SUPPORTED
|
||||||
|
#define PNG_WRITE_SUPPORTED
|
||||||
|
#define PNG_WRITE_INTERLACING_SUPPORTED
|
||||||
|
#define PNG_WRITE_16BIT_SUPPORTED
|
||||||
|
#define PNG_EASY_ACCESS_SUPPORTED
|
||||||
|
#define PNG_ALIGN_MEMORY_SUPPORTED
|
||||||
|
#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
|
||||||
|
#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
|
#define PNG_USER_LIMITS_SUPPORTED
|
||||||
|
#define PNG_FIXED_POINT_SUPPORTED
|
||||||
|
/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/
|
||||||
|
#define PNG_ERROR_TEXT_SUPPORTED
|
||||||
|
#define PNG_READ_SUPPORTED
|
||||||
|
/*#undef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED*/
|
||||||
|
#define PNG_BENIGN_ERRORS_SUPPORTED
|
||||||
|
#define PNG_SETJMP_SUPPORTED
|
||||||
|
#define PNG_WRITE_FLUSH_SUPPORTED
|
||||||
|
#define PNG_MNG_FEATURES_SUPPORTED
|
||||||
|
#define PNG_FLOATING_POINT_SUPPORTED
|
||||||
|
#define PNG_INCH_CONVERSIONS_SUPPORTED
|
||||||
|
#define PNG_STDIO_SUPPORTED
|
||||||
|
#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
|
#define PNG_USER_MEM_SUPPORTED
|
||||||
|
#define PNG_IO_STATE_SUPPORTED
|
||||||
|
#define PNG_SET_USER_LIMITS_SUPPORTED
|
||||||
|
#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
|
||||||
|
#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED
|
||||||
|
#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
|
||||||
|
#define PNG_WRITE_FILTER_SUPPORTED
|
||||||
|
#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED
|
||||||
|
#define PNG_WRITE_iCCP_SUPPORTED
|
||||||
|
#define PNG_READ_TRANSFORMS_SUPPORTED
|
||||||
|
#define PNG_READ_GAMMA_SUPPORTED
|
||||||
|
#define PNG_READ_bKGD_SUPPORTED
|
||||||
|
#define PNG_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
|
#define PNG_READ_sCAL_SUPPORTED
|
||||||
|
#define PNG_WRITE_hIST_SUPPORTED
|
||||||
|
#define PNG_READ_OPT_PLTE_SUPPORTED
|
||||||
|
#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
|
||||||
|
#define PNG_WRITE_gAMA_SUPPORTED
|
||||||
|
#define PNG_READ_GRAY_TO_RGB_SUPPORTED
|
||||||
|
#define PNG_WRITE_pCAL_SUPPORTED
|
||||||
|
#define PNG_READ_INVERT_ALPHA_SUPPORTED
|
||||||
|
#define PNG_WRITE_TRANSFORMS_SUPPORTED
|
||||||
|
#define PNG_READ_sBIT_SUPPORTED
|
||||||
|
#define PNG_READ_PACK_SUPPORTED
|
||||||
|
#define PNG_WRITE_SWAP_SUPPORTED
|
||||||
|
#define PNG_READ_cHRM_SUPPORTED
|
||||||
|
#define PNG_WRITE_tIME_SUPPORTED
|
||||||
|
#define PNG_READ_INTERLACING_SUPPORTED
|
||||||
|
#define PNG_READ_tRNS_SUPPORTED
|
||||||
|
#define PNG_WRITE_pHYs_SUPPORTED
|
||||||
|
#define PNG_WRITE_INVERT_SUPPORTED
|
||||||
|
#define PNG_READ_RGB_TO_GRAY_SUPPORTED
|
||||||
|
#define PNG_WRITE_sRGB_SUPPORTED
|
||||||
|
#define PNG_READ_oFFs_SUPPORTED
|
||||||
|
#define PNG_WRITE_FILLER_SUPPORTED
|
||||||
|
#define PNG_WRITE_TEXT_SUPPORTED
|
||||||
|
#define PNG_WRITE_SHIFT_SUPPORTED
|
||||||
|
#define PNG_PROGRESSIVE_READ_SUPPORTED
|
||||||
|
#define PNG_READ_SHIFT_SUPPORTED
|
||||||
|
#define PNG_CONVERT_tIME_SUPPORTED
|
||||||
|
#define PNG_READ_USER_TRANSFORM_SUPPORTED
|
||||||
|
#define PNG_READ_INT_FUNCTIONS_SUPPORTED
|
||||||
|
#define PNG_READ_USER_CHUNKS_SUPPORTED
|
||||||
|
#define PNG_READ_hIST_SUPPORTED
|
||||||
|
#define PNG_READ_16BIT_SUPPORTED
|
||||||
|
#define PNG_READ_SWAP_ALPHA_SUPPORTED
|
||||||
|
#define PNG_READ_COMPOSITE_NODIV_SUPPORTED
|
||||||
|
#define PNG_SEQUENTIAL_READ_SUPPORTED
|
||||||
|
#define PNG_READ_BACKGROUND_SUPPORTED
|
||||||
|
#define PNG_READ_QUANTIZE_SUPPORTED
|
||||||
|
#define PNG_READ_iCCP_SUPPORTED
|
||||||
|
#define PNG_READ_STRIP_ALPHA_SUPPORTED
|
||||||
|
#define PNG_READ_PACKSWAP_SUPPORTED
|
||||||
|
#define PNG_READ_sRGB_SUPPORTED
|
||||||
|
#define PNG_WRITE_tEXt_SUPPORTED
|
||||||
|
#define PNG_READ_gAMA_SUPPORTED
|
||||||
|
#define PNG_READ_pCAL_SUPPORTED
|
||||||
|
#define PNG_READ_EXPAND_SUPPORTED
|
||||||
|
#define PNG_WRITE_sPLT_SUPPORTED
|
||||||
|
#define PNG_READ_SWAP_SUPPORTED
|
||||||
|
#define PNG_READ_tIME_SUPPORTED
|
||||||
|
#define PNG_READ_pHYs_SUPPORTED
|
||||||
|
#define PNG_WRITE_SWAP_ALPHA_SUPPORTED
|
||||||
|
#define PNG_TIME_RFC1123_SUPPORTED
|
||||||
|
#define PNG_READ_TEXT_SUPPORTED
|
||||||
|
#define PNG_WRITE_BGR_SUPPORTED
|
||||||
|
#define PNG_USER_CHUNKS_SUPPORTED
|
||||||
|
#define PNG_CONSOLE_IO_SUPPORTED
|
||||||
|
#define PNG_WRITE_PACK_SUPPORTED
|
||||||
|
#define PNG_READ_FILLER_SUPPORTED
|
||||||
|
#define PNG_WRITE_bKGD_SUPPORTED
|
||||||
|
#define PNG_WRITE_tRNS_SUPPORTED
|
||||||
|
#define PNG_READ_sPLT_SUPPORTED
|
||||||
|
#define PNG_WRITE_sCAL_SUPPORTED
|
||||||
|
#define PNG_WRITE_oFFs_SUPPORTED
|
||||||
|
#define PNG_READ_tEXt_SUPPORTED
|
||||||
|
#define PNG_WRITE_sBIT_SUPPORTED
|
||||||
|
#define PNG_READ_INVERT_SUPPORTED
|
||||||
|
#define PNG_READ_16_TO_8_SUPPORTED
|
||||||
|
#define PNG_WRITE_cHRM_SUPPORTED
|
||||||
|
#define PNG_16BIT_SUPPORTED
|
||||||
|
#define PNG_WRITE_USER_TRANSFORM_SUPPORTED
|
||||||
|
#define PNG_READ_BGR_SUPPORTED
|
||||||
|
#define PNG_WRITE_PACKSWAP_SUPPORTED
|
||||||
|
#define PNG_WRITE_INVERT_ALPHA_SUPPORTED
|
||||||
|
#define PNG_sCAL_SUPPORTED
|
||||||
|
#define PNG_WRITE_zTXt_SUPPORTED
|
||||||
|
#define PNG_sBIT_SUPPORTED
|
||||||
|
#define PNG_cHRM_SUPPORTED
|
||||||
|
#define PNG_bKGD_SUPPORTED
|
||||||
|
#define PNG_tRNS_SUPPORTED
|
||||||
|
#define PNG_WRITE_iTXt_SUPPORTED
|
||||||
|
#define PNG_oFFs_SUPPORTED
|
||||||
|
#define PNG_USER_TRANSFORM_PTR_SUPPORTED
|
||||||
|
#define PNG_USER_TRANSFORM_INFO_SUPPORTED
|
||||||
#define PNG_hIST_SUPPORTED
|
#define PNG_hIST_SUPPORTED
|
||||||
#define PNG_iCCP_SUPPORTED
|
#define PNG_iCCP_SUPPORTED
|
||||||
#define PNG_INCH_CONVERSIONS_SUPPORTED
|
|
||||||
#define PNG_INFO_IMAGE_SUPPORTED
|
|
||||||
#define PNG_IO_STATE_SUPPORTED
|
|
||||||
#define PNG_iTXt_SUPPORTED
|
|
||||||
#define PNG_MNG_FEATURES_SUPPORTED
|
|
||||||
#define PNG_oFFs_SUPPORTED
|
|
||||||
#define PNG_pCAL_SUPPORTED
|
|
||||||
#define PNG_pHYs_SUPPORTED
|
|
||||||
#define PNG_POINTER_INDEXING_SUPPORTED
|
|
||||||
#define PNG_PROGRESSIVE_READ_SUPPORTED
|
|
||||||
#define PNG_READ_16BIT_SUPPORTED
|
|
||||||
#define PNG_READ_16_TO_8_SUPPORTED
|
|
||||||
#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
|
|
||||||
#define PNG_READ_BACKGROUND_SUPPORTED
|
|
||||||
#define PNG_READ_BGR_SUPPORTED
|
|
||||||
#define PNG_READ_bKGD_SUPPORTED
|
|
||||||
#define PNG_READ_cHRM_SUPPORTED
|
|
||||||
#define PNG_READ_COMPOSITE_NODIV_SUPPORTED
|
|
||||||
#define PNG_READ_EXPAND_16_SUPPORTED
|
|
||||||
#define PNG_READ_EXPAND_SUPPORTED
|
|
||||||
#define PNG_READ_FILLER_SUPPORTED
|
|
||||||
#define PNG_READ_gAMA_SUPPORTED
|
|
||||||
#define PNG_READ_GAMMA_SUPPORTED
|
|
||||||
#define PNG_READ_GRAY_TO_RGB_SUPPORTED
|
|
||||||
#define PNG_READ_hIST_SUPPORTED
|
|
||||||
#define PNG_READ_iCCP_SUPPORTED
|
|
||||||
#define PNG_READ_INTERLACING_SUPPORTED
|
|
||||||
#define PNG_READ_INT_FUNCTIONS_SUPPORTED
|
|
||||||
#define PNG_READ_INVERT_ALPHA_SUPPORTED
|
|
||||||
#define PNG_READ_INVERT_SUPPORTED
|
|
||||||
#define PNG_READ_iTXt_SUPPORTED
|
|
||||||
#define PNG_READ_oFFs_SUPPORTED
|
|
||||||
#define PNG_READ_OPT_PLTE_SUPPORTED
|
|
||||||
#define PNG_READ_PACK_SUPPORTED
|
|
||||||
#define PNG_READ_PACKSWAP_SUPPORTED
|
|
||||||
#define PNG_READ_pCAL_SUPPORTED
|
|
||||||
#define PNG_READ_pHYs_SUPPORTED
|
|
||||||
#define PNG_READ_QUANTIZE_SUPPORTED
|
|
||||||
#define PNG_READ_RGB_TO_GRAY_SUPPORTED
|
|
||||||
#define PNG_READ_sBIT_SUPPORTED
|
|
||||||
#define PNG_READ_sCAL_SUPPORTED
|
|
||||||
#define PNG_READ_SHIFT_SUPPORTED
|
|
||||||
#define PNG_READ_sPLT_SUPPORTED
|
|
||||||
#define PNG_READ_sRGB_SUPPORTED
|
|
||||||
#define PNG_READ_STRIP_ALPHA_SUPPORTED
|
|
||||||
#define PNG_READ_SUPPORTED
|
|
||||||
#define PNG_READ_SWAP_ALPHA_SUPPORTED
|
|
||||||
#define PNG_READ_SWAP_SUPPORTED
|
|
||||||
#define PNG_READ_tEXt_SUPPORTED
|
|
||||||
#define PNG_READ_TEXT_SUPPORTED
|
|
||||||
#define PNG_READ_tIME_SUPPORTED
|
|
||||||
#define PNG_READ_TRANSFORMS_SUPPORTED
|
|
||||||
#define PNG_READ_tRNS_SUPPORTED
|
|
||||||
#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
|
|
||||||
#define PNG_READ_USER_CHUNKS_SUPPORTED
|
|
||||||
#define PNG_READ_USER_TRANSFORM_SUPPORTED
|
|
||||||
#define PNG_READ_zTXt_SUPPORTED
|
|
||||||
#define PNG_SAVE_INT_32_SUPPORTED
|
|
||||||
#define PNG_sBIT_SUPPORTED
|
|
||||||
#define PNG_sCAL_SUPPORTED
|
|
||||||
#define PNG_SEQUENTIAL_READ_SUPPORTED
|
|
||||||
#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED
|
|
||||||
#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
|
|
||||||
#define PNG_SETJMP_SUPPORTED
|
|
||||||
#define PNG_SET_USER_LIMITS_SUPPORTED
|
|
||||||
#define PNG_sPLT_SUPPORTED
|
|
||||||
#define PNG_sRGB_SUPPORTED
|
#define PNG_sRGB_SUPPORTED
|
||||||
#define PNG_STDIO_SUPPORTED
|
#define PNG_READ_zTXt_SUPPORTED
|
||||||
#define PNG_tEXt_SUPPORTED
|
#define PNG_gAMA_SUPPORTED
|
||||||
#define PNG_TEXT_SUPPORTED
|
#define PNG_pCAL_SUPPORTED
|
||||||
#define PNG_TIME_RFC1123_SUPPORTED
|
#define PNG_CHECK_cHRM_SUPPORTED
|
||||||
#define PNG_tIME_SUPPORTED
|
#define PNG_tIME_SUPPORTED
|
||||||
#define PNG_tRNS_SUPPORTED
|
#define PNG_pHYs_SUPPORTED
|
||||||
#define PNG_UNKNOWN_CHUNKS_SUPPORTED
|
#define PNG_READ_iTXt_SUPPORTED
|
||||||
#define PNG_USER_CHUNKS_SUPPORTED
|
#define PNG_TEXT_SUPPORTED
|
||||||
#define PNG_USER_LIMITS_SUPPORTED
|
#define PNG_SAVE_INT_32_SUPPORTED
|
||||||
#define PNG_USER_MEM_SUPPORTED
|
#define PNG_sPLT_SUPPORTED
|
||||||
#define PNG_USER_TRANSFORM_INFO_SUPPORTED
|
#define PNG_tEXt_SUPPORTED
|
||||||
#define PNG_USER_TRANSFORM_PTR_SUPPORTED
|
|
||||||
#define PNG_WARNINGS_SUPPORTED
|
|
||||||
#define PNG_WRITE_16BIT_SUPPORTED
|
|
||||||
#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
|
|
||||||
#define PNG_WRITE_BGR_SUPPORTED
|
|
||||||
#define PNG_WRITE_bKGD_SUPPORTED
|
|
||||||
#define PNG_WRITE_cHRM_SUPPORTED
|
|
||||||
#define PNG_WRITE_FILLER_SUPPORTED
|
|
||||||
#define PNG_WRITE_FILTER_SUPPORTED
|
|
||||||
#define PNG_WRITE_FLUSH_SUPPORTED
|
|
||||||
#define PNG_WRITE_gAMA_SUPPORTED
|
|
||||||
#define PNG_WRITE_hIST_SUPPORTED
|
|
||||||
#define PNG_WRITE_iCCP_SUPPORTED
|
|
||||||
#define PNG_WRITE_INTERLACING_SUPPORTED
|
|
||||||
#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED
|
|
||||||
#define PNG_WRITE_INVERT_ALPHA_SUPPORTED
|
|
||||||
#define PNG_WRITE_INVERT_SUPPORTED
|
|
||||||
#define PNG_WRITE_iTXt_SUPPORTED
|
|
||||||
#define PNG_WRITE_oFFs_SUPPORTED
|
|
||||||
#define PNG_WRITE_PACK_SUPPORTED
|
|
||||||
#define PNG_WRITE_PACKSWAP_SUPPORTED
|
|
||||||
#define PNG_WRITE_pCAL_SUPPORTED
|
|
||||||
#define PNG_WRITE_pHYs_SUPPORTED
|
|
||||||
#define PNG_WRITE_sBIT_SUPPORTED
|
|
||||||
#define PNG_WRITE_sCAL_SUPPORTED
|
|
||||||
#define PNG_WRITE_SHIFT_SUPPORTED
|
|
||||||
#define PNG_WRITE_sPLT_SUPPORTED
|
|
||||||
#define PNG_WRITE_sRGB_SUPPORTED
|
|
||||||
#define PNG_WRITE_SUPPORTED
|
|
||||||
#define PNG_WRITE_SWAP_ALPHA_SUPPORTED
|
|
||||||
#define PNG_WRITE_SWAP_SUPPORTED
|
|
||||||
#define PNG_WRITE_tEXt_SUPPORTED
|
|
||||||
#define PNG_WRITE_TEXT_SUPPORTED
|
|
||||||
#define PNG_WRITE_tIME_SUPPORTED
|
|
||||||
#define PNG_WRITE_TRANSFORMS_SUPPORTED
|
|
||||||
#define PNG_WRITE_tRNS_SUPPORTED
|
|
||||||
#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
|
|
||||||
#define PNG_WRITE_USER_TRANSFORM_SUPPORTED
|
|
||||||
#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
|
|
||||||
#define PNG_WRITE_zTXt_SUPPORTED
|
|
||||||
#define PNG_zTXt_SUPPORTED
|
#define PNG_zTXt_SUPPORTED
|
||||||
/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/
|
#define PNG_iTXt_SUPPORTED
|
||||||
/*#undef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED*/
|
|
||||||
/* end of options */
|
/* end of options */
|
||||||
#endif /* PNGLCONF_H */
|
#endif /* PNGLCONF_H */
|
||||||
|
|||||||
+1
-3
@@ -12,9 +12,8 @@ AWK = mawk
|
|||||||
AWK = nawk
|
AWK = nawk
|
||||||
AWK = one-true-awk
|
AWK = one-true-awk
|
||||||
AWK = awk # Crashes on SunOS 5.10 - use 'nawk'
|
AWK = awk # Crashes on SunOS 5.10 - use 'nawk'
|
||||||
CPP = $(CC) -E # Does not work on SUN OS 5.10 - use /lib/cpp
|
|
||||||
SED = sed
|
SED = sed
|
||||||
|
CPP = $(CC) -E
|
||||||
COPY = cp
|
COPY = cp
|
||||||
DELETE = rm -f
|
DELETE = rm -f
|
||||||
ECHO = echo
|
ECHO = echo
|
||||||
@@ -34,7 +33,6 @@ pnglibconf.h: pnglibconf.dfn
|
|||||||
$(DELETE) $@ dfn.c dfn1.out dfn2.out dfn3.out
|
$(DELETE) $@ dfn.c dfn1.out dfn2.out dfn3.out
|
||||||
$(ECHO) '#include "pnglibconf.dfn"' >dfn.c
|
$(ECHO) '#include "pnglibconf.dfn"' >dfn.c
|
||||||
$(CPP) $(DFNFLAGS) dfn.c >dfn1.out
|
$(CPP) $(DFNFLAGS) dfn.c >dfn1.out
|
||||||
$(ECHO) "If 'cpp -e' crashes try /lib/cpp (e.g. CPP='/lib/cpp')" >&2
|
|
||||||
$(SED) -n -e 's|^.*PNG_DEFN_MAGIC-\(.*\)-PNG_DEFN_END.*$$|\1|p'\
|
$(SED) -n -e 's|^.*PNG_DEFN_MAGIC-\(.*\)-PNG_DEFN_END.*$$|\1|p'\
|
||||||
dfn1.out >dfn2.out
|
dfn1.out >dfn2.out
|
||||||
$(SED) -e 's| *@@@ *||g' -e 's| *$$||' dfn2.out >dfn3.out
|
$(SED) -e 's| *@@@ *||g' -e 's| *$$||' dfn2.out >dfn3.out
|
||||||
|
|||||||
+1
-2
@@ -5,7 +5,7 @@
|
|||||||
LIBRARY
|
LIBRARY
|
||||||
|
|
||||||
EXPORTS
|
EXPORTS
|
||||||
;Version 1.5.2
|
;Version 1.5.1
|
||||||
png_access_version_number @1
|
png_access_version_number @1
|
||||||
png_set_sig_bytes @2
|
png_set_sig_bytes @2
|
||||||
png_sig_cmp @3
|
png_sig_cmp @3
|
||||||
@@ -226,4 +226,3 @@ EXPORTS
|
|||||||
png_get_current_pass_number @218
|
png_get_current_pass_number @218
|
||||||
png_process_data_pause @219
|
png_process_data_pause @219
|
||||||
png_process_data_skip @220
|
png_process_data_skip @220
|
||||||
png_set_expand_16 @221
|
|
||||||
|
|||||||
Reference in New Issue
Block a user