Compare commits
300 Commits
v1.4.0
...
libpng-1.4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
49284edeff | ||
|
|
e4b7563805 | ||
|
|
aa64daaf71 | ||
|
|
b157898378 | ||
|
|
7d76ba7393 | ||
|
|
8f23c92642 | ||
|
|
9f3a6671b2 | ||
|
|
3c44261b44 | ||
|
|
9bae3aa102 | ||
|
|
7d1e150596 | ||
|
|
a8c319a2b2 | ||
|
|
13f1247654 | ||
|
|
53060e0c54 | ||
|
|
0d95b3d8dc | ||
|
|
8beb593bc2 | ||
|
|
2b359bd2fd | ||
|
|
a22646a5df | ||
|
|
3ef6c2439c | ||
|
|
59d3ef11ed | ||
|
|
6bc7fc80da | ||
|
|
5b03469a93 | ||
|
|
f5b9abde98 | ||
|
|
340c9b237b | ||
|
|
fb2bd00859 | ||
|
|
5109688803 | ||
|
|
8fdd2fcef6 | ||
|
|
e7625063dc | ||
|
|
24f40e321c | ||
|
|
0bb898a885 | ||
|
|
61a2d8a2a7 | ||
|
|
af96543688 | ||
|
|
34f5449736 | ||
|
|
484a48e221 | ||
|
|
cc5226bf2a | ||
|
|
8fbb563f4e | ||
|
|
65e6d5a34f | ||
|
|
47be2e7c3a | ||
|
|
4d694dadd8 | ||
|
|
59397f985e | ||
|
|
cc1d4d0dbc | ||
|
|
070434c045 | ||
|
|
0dc882d7c3 | ||
|
|
c3ac9a507a | ||
|
|
a6afebc718 | ||
|
|
d41915dc2a | ||
|
|
5a5ad7a5fa | ||
|
|
9dad5e37ae | ||
|
|
adde7b5c1e | ||
|
|
3bdde42e40 | ||
|
|
6b4dee12f5 | ||
|
|
355b90387b | ||
|
|
f512ca7625 | ||
|
|
16ee3e9870 | ||
|
|
c8444775b1 | ||
|
|
784d80b509 | ||
|
|
98aacb16c3 | ||
|
|
8a35e25852 | ||
|
|
97eb073189 | ||
|
|
28534bd47a | ||
|
|
2053a26873 | ||
|
|
736a230890 | ||
|
|
3926448598 | ||
|
|
11130874d4 | ||
|
|
ef5a57119a | ||
|
|
31f4e52842 | ||
|
|
0e1aad158a | ||
|
|
5f5d6d637b | ||
|
|
a2336bcf05 | ||
|
|
20e6003290 | ||
|
|
54c633b810 | ||
|
|
f0c2cc32b1 | ||
|
|
8709982e22 | ||
|
|
686d45dcfd | ||
|
|
8502e1ff25 | ||
|
|
603c9fd959 | ||
|
|
86946fdc03 | ||
|
|
af4c99b21a | ||
|
|
97d2d68428 | ||
|
|
ce5d7cb7aa | ||
|
|
c4ff4e7167 | ||
|
|
b94d24eb25 | ||
|
|
379d0160ea | ||
|
|
23c2ea38a6 | ||
|
|
d486eb18c5 | ||
|
|
a10d488a32 | ||
|
|
25d754e86d | ||
|
|
bba85637d7 | ||
|
|
94c3a45f4c | ||
|
|
221be3def1 | ||
|
|
1daf8980dd | ||
|
|
5945408a93 | ||
|
|
9a8c568e3c | ||
|
|
fb05477e11 | ||
|
|
df68ef4d5e | ||
|
|
d857ed275e | ||
|
|
14181b7f48 | ||
|
|
6916ec5fa9 | ||
|
|
acb4822f6b | ||
|
|
79fb836d66 | ||
|
|
010110a0be | ||
|
|
756f873a25 | ||
|
|
e2d740ae04 | ||
|
|
ff244b6181 | ||
|
|
d3494d172c | ||
|
|
2922c07e67 | ||
|
|
c03a949a0d | ||
|
|
377e3ca5e6 | ||
|
|
f320728911 | ||
|
|
b4a5d88e0a | ||
|
|
7ea0b3b9e2 | ||
|
|
aa3725c860 | ||
|
|
8aa84c7fce | ||
|
|
453ceae85f | ||
|
|
1f5a0b9fa6 | ||
|
|
820a8d1de9 | ||
|
|
6bb02b28a1 | ||
|
|
60ba227d57 | ||
|
|
175e21f5e1 | ||
|
|
97db6709e4 | ||
|
|
c0fc0dfc45 | ||
|
|
f3eadd1737 | ||
|
|
c4ec48281c | ||
|
|
1a006390d9 | ||
|
|
953f265513 | ||
|
|
468877578a | ||
|
|
ff14eeb4f2 | ||
|
|
5f3eabf4cd | ||
|
|
bbc70d2471 | ||
|
|
a0cafa3d0b | ||
|
|
58219ca22f | ||
|
|
50b28f3bf2 | ||
|
|
0f8345abf7 | ||
|
|
4f213e08aa | ||
|
|
8493de3cee | ||
|
|
fee6e7428f | ||
|
|
d10616d364 | ||
|
|
85d143a273 | ||
|
|
6e72bc46d3 | ||
|
|
b8eed1d830 | ||
|
|
a64ecdfa5b | ||
|
|
bcfc0ce5f6 | ||
|
|
8bc0719dde | ||
|
|
185cd6c058 | ||
|
|
afb77541b4 | ||
|
|
c4a5c2de26 | ||
|
|
87bc4b08ff | ||
|
|
65cdb3dfa8 | ||
|
|
cc411ae004 | ||
|
|
f521b99b09 | ||
|
|
b08f330d62 | ||
|
|
41ffb1c950 | ||
|
|
ebe3ea3204 | ||
|
|
d94c4516c6 | ||
|
|
b0f8d9bb97 | ||
|
|
04dfe7b3f6 | ||
|
|
547afcfc74 | ||
|
|
48afdb4eef | ||
|
|
9ee96e3ba9 | ||
|
|
0311f5412e | ||
|
|
e734eba51e | ||
|
|
7ed40716cb | ||
|
|
155889b318 | ||
|
|
4dd011f6d0 | ||
|
|
e45a5d3a32 | ||
|
|
80a1050237 | ||
|
|
54592bba4d | ||
|
|
902d4d109a | ||
|
|
d8daacf157 | ||
|
|
0da5bcb414 | ||
|
|
ac6555fa3c | ||
|
|
2af7ef63c3 | ||
|
|
6da5b35fca | ||
|
|
abd68eb92b | ||
|
|
bf451ffc9a | ||
|
|
be734f5592 | ||
|
|
9f0c080847 | ||
|
|
3a1ba773b0 | ||
|
|
849a1ab845 | ||
|
|
940de5ab02 | ||
|
|
dd9578f379 | ||
|
|
0ce807691b | ||
|
|
4f8ea5eede | ||
|
|
7869e676af | ||
|
|
af0a726689 | ||
|
|
8d9263fca6 | ||
|
|
d6a0cbaade | ||
|
|
2302a4d04f | ||
|
|
8f9a2d08ea | ||
|
|
30c73195b5 | ||
|
|
097485195c | ||
|
|
c5f6fa110a | ||
|
|
90cfcecc09 | ||
|
|
dee0e2ed0f | ||
|
|
5ad9884ff1 | ||
|
|
188eb6b426 | ||
|
|
8361f64dbf | ||
|
|
2a6227941e | ||
|
|
a582b8f840 | ||
|
|
5316f66005 | ||
|
|
f86905457a | ||
|
|
abb211c4e8 | ||
|
|
bb56c39d16 | ||
|
|
77237196c7 | ||
|
|
a310a3b398 | ||
|
|
e0f6c7d90b | ||
|
|
a1587302aa | ||
|
|
cc0bff446b | ||
|
|
9b8ddff5b7 | ||
|
|
ac4942e26b | ||
|
|
2c55e3e917 | ||
|
|
db082802c6 | ||
|
|
b367fb5ac6 | ||
|
|
e9ab2f8d94 | ||
|
|
a845cca037 | ||
|
|
3ab6ef0aa1 | ||
|
|
198ed18b9e | ||
|
|
9110473f93 | ||
|
|
97313e0aab | ||
|
|
8876e74e43 | ||
|
|
510227e39e | ||
|
|
7a1f214166 | ||
|
|
5913dd10f1 | ||
|
|
087ebd80da | ||
|
|
bc9267e3a6 | ||
|
|
a019c335c9 | ||
|
|
ed49c8c1b6 | ||
|
|
2a243fc074 | ||
|
|
47045ce402 | ||
|
|
d6e67586bf | ||
|
|
6e9783bd25 | ||
|
|
8dc3729522 | ||
|
|
7aad4e7fb4 | ||
|
|
930af7d50b | ||
|
|
0f544f62d6 | ||
|
|
398c212955 | ||
|
|
2ec1fc60c3 | ||
|
|
c01ee053b1 | ||
|
|
b0baee5e36 | ||
|
|
b55295cb12 | ||
|
|
5928ee97ca | ||
|
|
2445ad4331 | ||
|
|
93d6d9d835 | ||
|
|
d207e6a6ad | ||
|
|
df6f3f404a | ||
|
|
357c1c8c53 | ||
|
|
44827ccad8 | ||
|
|
0d1a2dd7a9 | ||
|
|
471c9b47fe | ||
|
|
23b9a2fda0 | ||
|
|
7d6103ad6c | ||
|
|
ec39f8f8d7 | ||
|
|
a2cde53c87 | ||
|
|
13714e87f2 | ||
|
|
9101d75316 | ||
|
|
233edbf415 | ||
|
|
bd209f75fa | ||
|
|
27854a478e | ||
|
|
f12a87a96c | ||
|
|
cb4358ddbb | ||
|
|
c4819d78ba | ||
|
|
0b721cd4c4 | ||
|
|
b025757328 | ||
|
|
4bd73b6947 | ||
|
|
f3c42680db | ||
|
|
c10066205d | ||
|
|
21b7aaa428 | ||
|
|
d7225fdfce | ||
|
|
deb870c77d | ||
|
|
c05538959b | ||
|
|
f6c761dda1 | ||
|
|
877b08d6d2 | ||
|
|
a69064328b | ||
|
|
01b9566e50 | ||
|
|
ca3a100be6 | ||
|
|
1655e4ddb0 | ||
|
|
526f839764 | ||
|
|
1a86bd2a09 | ||
|
|
610e7b5bd6 | ||
|
|
86f6c04d84 | ||
|
|
fb3a1da4bb | ||
|
|
525efcbb7b | ||
|
|
ea4340e1ec | ||
|
|
91f3864fbd | ||
|
|
14fa704caf | ||
|
|
ad1f8180a5 | ||
|
|
e364f899af | ||
|
|
40683870ea | ||
|
|
7569d7c069 | ||
|
|
c87ddbb3ce | ||
|
|
793fedcf57 | ||
|
|
74fd86a69e | ||
|
|
f234091207 | ||
|
|
772b72139a | ||
|
|
6e6a844baf | ||
|
|
2f2f80273b | ||
|
|
353d8860ac | ||
|
|
fab96cb72a | ||
|
|
2203e41900 | ||
|
|
e16f2bc5f7 | ||
|
|
2381cf3269 |
356
ANNOUNCE
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Libpng 1.4.0 - January 3, 2010
|
Libpng 1.4.12 - July 10, 2012
|
||||||
|
|
||||||
This is a public release of libpng, intended for use in production codes.
|
This is a public release of libpng, intended for use in production codes.
|
||||||
|
|
||||||
@@ -8,353 +8,29 @@ Files available for download:
|
|||||||
Source files with LF line endings (for Unix/Linux) and with a
|
Source files with LF line endings (for Unix/Linux) and with a
|
||||||
"configure" script
|
"configure" script
|
||||||
|
|
||||||
libpng-1.4.0.tar.xz (LZMA-compressed, recommended)
|
libpng-1.4.12.tar.xz (LZMA-compressed, recommended)
|
||||||
libpng-1.4.0.tar.gz
|
libpng-1.4.12.tar.gz
|
||||||
libpng-1.4.0.tar.bz2
|
libpng-1.4.12.tar.bz2
|
||||||
|
|
||||||
Source files with CRLF line endings (for Windows), without the
|
Source files with CRLF line endings (for Windows), without the
|
||||||
"configure" script
|
"configure" script
|
||||||
|
|
||||||
lpng140.zip
|
lpng1412.7z (LZMA-compressed, recommended)
|
||||||
lpng140.7z
|
lpng1412.zip
|
||||||
|
|
||||||
Other information:
|
Other information:
|
||||||
|
|
||||||
libpng-1.4.0-README.txt
|
libpng-1.4.12-README.txt
|
||||||
libpng-1.4.0-LICENSE.txt
|
libpng-1.4.12-LICENSE.txt
|
||||||
|
|
||||||
Changes since the last public release (1.2.10):
|
Changes since the last public release (1.4.11):
|
||||||
|
Added two images to contrib/pngsuite (1-bit and 2-bit transparent grayscale),
|
||||||
|
and renamed three whose names were inconsistent with those in
|
||||||
|
pngsuite/README.txt.
|
||||||
|
Changed "a+w" to "u+w" in Makefile.in to fix CVE-2012-3386.
|
||||||
|
|
||||||
version 1.4.0 [January 3, 2010]
|
Send comments/corrections/commendations to glennrp at users.sourceforge.net
|
||||||
|
or to png-mng-implement at lists.sf.net (subscription required; visit
|
||||||
Enabled iTXt support (changes png_struct, thus requires so-number change).
|
https://lists.sourceforge.net/lists/listinfo/png-mng-implement).
|
||||||
Cleaned up PNG_ASSEMBLER_CODE_SUPPORTED vs PNG_MMX_CODE_SUPPORTED
|
|
||||||
Eliminated PNG_1_0_X and PNG_1_2_X macros.
|
|
||||||
Removed deprecated functions png_read_init, png_write_init, png_info_init,
|
|
||||||
png_permit_empty_plte, png_set_gray_1_2_4_to_8, and removed the
|
|
||||||
deprecated macro PNG_MAX_UINT.
|
|
||||||
Moved "PNG_INTERNAL" parts of png.h and pngconf.h into pngintrn.h
|
|
||||||
Removed all WIN32_WCE #ifdefs except those involving the
|
|
||||||
time.h "tm" structure (Cosmin)
|
|
||||||
Reduced dependency on C-runtime library when on Windows (Simon-Pierre)
|
|
||||||
Replaced sprintf() with png_sprintf() (Simon-Pierre)
|
|
||||||
Revised makefiles to avoid making links to libpng.so.*
|
|
||||||
Added a note in libpng.txt that png_set_sig_bytes(8) can be used when
|
|
||||||
writing an embedded PNG without the 8-byte signature.
|
|
||||||
Updated scripts/pngos2.def, pngw32.def, and projects/wince/png32ce.def
|
|
||||||
Added PNG_NO_GET_INT_32 and PNG_NO_SAVE_INT_32 macros.
|
|
||||||
Scripts/libpng.pc.in contained "configure" style version info and would
|
|
||||||
not work with makefiles.
|
|
||||||
Increased sprintf buffer from 50 to 52 chars in pngrutil.c to avoid
|
|
||||||
buffer overflow.
|
|
||||||
Fixed bug in example.c (png_set_palette_rgb -> png_set_palette_to_rgb))
|
|
||||||
Changed sonum from 0 to 1.
|
|
||||||
Removed unused prototype for png_check_sig() from png.h
|
|
||||||
Prepended "#! /bin/sh" to ltmail.sh and contrib/pngminus/*.sh (Cosmin).
|
|
||||||
Avoided potential buffer overflow and optimized buffer in
|
|
||||||
png_write_sCAL(), png_write_sCAL_s() (Cosmin).
|
|
||||||
Removed the include directories and libraries from CFLAGS and LDFLAGS
|
|
||||||
in scripts/makefile.gcc (Nelson A. de Oliveira, Cosmin).
|
|
||||||
Exported png_write_sig (Cosmin).
|
|
||||||
Optimized buffer in png_handle_cHRM() (Cosmin).
|
|
||||||
Allow zero-length IDAT chunks after the entire zlib datastream, but not
|
|
||||||
after another intervening chunk type.
|
|
||||||
Set pHYs = 2835 x 2835 pixels per meter, and added
|
|
||||||
pngtest now produces, and made some cosmetic changes to pngtest output.
|
|
||||||
sCAL = 0.352778e-3 x 0.352778e-3 meters, in pngtest.png (Cosmin).
|
|
||||||
Added png_set_benign_errors(), png_benign_error(), png_chunk_benign_error().
|
|
||||||
Revised INSTALL and autogen.sh
|
|
||||||
Fixed typo in several makefiles (-W1 should be -Wl)
|
|
||||||
Added typedef for png_int_32 and png_uint_32 on 64-bit systems.
|
|
||||||
Added one zero element to png_gamma_shift[] array in pngrtran.c to avoid
|
|
||||||
reading out of bounds.
|
|
||||||
Added demonstration of user chunk support in pngtest.c, to support the
|
|
||||||
public sTER chunk and a private vpAg chunk.
|
|
||||||
Removed ordinals from scripts/pngw32.def and removed png_info_int and
|
|
||||||
png_set_gray_1_2_4_to_8 entries.
|
|
||||||
Inline call of png_get_uint_32() in png_get_uint_31().
|
|
||||||
Removed WINCE and Netware projects.
|
|
||||||
Removed standalone Y2KINFO file.
|
|
||||||
Removed AC_FUNC_MALLOC from configure.ac.
|
|
||||||
Added a warning when writing iCCP profile with mismatched profile length.
|
|
||||||
Patched pnggccrd.c to assemble on x86_64 platforms.
|
|
||||||
Moved chunk header reading into a separate function png_read_chunk_header()
|
|
||||||
in pngrutil.c. The chunk header (len+sig) is now serialized in a single
|
|
||||||
operation (Cosmin).
|
|
||||||
Implemented support for I/O states. Added png_ptr member io_state, and
|
|
||||||
functions png_get_io_chunk_name() and png_get_io_state() in pngget.c
|
|
||||||
(Cosmin).
|
|
||||||
Added png_get_io_chunk_name and png_get_io_state to scripts/*.def (Cosmin).
|
|
||||||
Renamed scripts/pngw32.* to scripts/pngwin.* (Cosmin).
|
|
||||||
Removed the include directories and libraries from CFLAGS and LDFLAGS
|
|
||||||
in scripts/makefile.gcc (Cosmin).
|
|
||||||
Used png_save_uint_32() to set vpAg width and height in pngtest.c (Cosmin).
|
|
||||||
Cast to proper type when getting/setting vpAg units in pngtest.c (Cosmin).
|
|
||||||
Added pngintrn.h to the Visual C++ projects (Cosmin).
|
|
||||||
Removed scripts/list (Cosmin).
|
|
||||||
Updated copyright year in scripts/pngwin.def (Cosmin).
|
|
||||||
Removed PNG_TYPECAST_NULL and used standard NULL consistently (Cosmin).
|
|
||||||
Disallowed the user to redefine png_size_t, and enforced a consistent use
|
|
||||||
of png_size_t across libpng (Cosmin).
|
|
||||||
Changed the type of png_ptr->rowbytes, PNG_ROWBYTES() and friends
|
|
||||||
to png_size_t (Cosmin).
|
|
||||||
Removed png_convert_size() and replaced png_sizeof with sizeof (Cosmin).
|
|
||||||
Removed some unnecessary type casts (Cosmin).
|
|
||||||
Changed prototype of png_get_compression_buffer_size() and
|
|
||||||
png_set_compression_buffer_size() to work with png_size_t instead of
|
|
||||||
png_uint_32 (Cosmin).
|
|
||||||
Removed png_memcpy_check() and png_memset_check() (Cosmin).
|
|
||||||
Fixed a typo (png_byte --> png_bytep) in libpng.3 and libpng.txt (Cosmin).
|
|
||||||
Clarified that png_zalloc() does not clear the allocated memory,
|
|
||||||
and png_zalloc() and png_zfree() cannot be PNGAPI (Cosmin).
|
|
||||||
Renamed png_mem_size_t to png_alloc_size_t, fixed its definition in
|
|
||||||
pngconf.h, and used it in all memory allocation functions (Cosmin).
|
|
||||||
Renamed pngintrn.h to pngpriv.h, added a comment at the top of the file
|
|
||||||
mentioning that the symbols declared in that file are private, and
|
|
||||||
updated the scripts and the Visual C++ projects accordingly (Cosmin).
|
|
||||||
Removing trailing '.' from the warning and error messages (Cosmin).
|
|
||||||
Revised many of the makefiles to write their defines in pngdefs.h.
|
|
||||||
Changed "logical" to "bitwise" in the documentation.
|
|
||||||
Work around Intel-Mac compiler bug by setting PNG_NO_MMX_CODE in pngconf.h
|
|
||||||
Add a typecast to stifle compiler warning in pngrutil.c
|
|
||||||
Detect and fix attempt to write wrong iCCP profile length.
|
|
||||||
Fix potential buffer overflow in sPLT chunk handler.
|
|
||||||
Fix Makefile.am to not try to link to noexistent files.
|
|
||||||
Check all exported functions for NULL png_ptr.
|
|
||||||
Built Makefile.in with automake-1.9.6 instead of 1.9.2.
|
|
||||||
Add "install: all" in Makefile.am so "configure; make install" will work.
|
|
||||||
Added a typecast in png_zalloc().
|
|
||||||
Changed "new_key[79] = '\0';" to "(*new_key)[79] = '\0';" in pngwutil.c
|
|
||||||
Add "png_bytep" typecast to profile while calculating length in pngwutil.c
|
|
||||||
Added scripts/CMakeLists.txt
|
|
||||||
Added "png_ptr->num_trans=0" before error return in png_handle_tRNS,
|
|
||||||
to eliminate a vulnerability (CVE-2007-2554, CERT VU#684664)
|
|
||||||
Added png_ptr->unknown_chunk to hold working unknown chunk data, so it
|
|
||||||
can be free'ed in case of error. Revised unknown chunk handling in
|
|
||||||
pngrutil.c and pngpread.c to use this structure.
|
|
||||||
Prefer PNG_USE_PNGVCRD when _MSC_VER is defined in pngconf.h
|
|
||||||
Revised pngvcrd.c for improved efficiency.
|
|
||||||
Moved local array "chunkdata" from pngrutil.c to the png_struct, so
|
|
||||||
it will be freed by png_read_destroy() in case of a read error (Kurt
|
|
||||||
Christensen).
|
|
||||||
Change "purpose" and "buffer" to png_ptr->chunkdata to avoid memory leaking.
|
|
||||||
Change all "chunkdata" to "png_ptr->chunkdata" in png_decompress_chunk(),
|
|
||||||
and remove "chunkdata" from parameter list.
|
|
||||||
Put a call to png_check_chunk_name() in png_read_chunk_header().
|
|
||||||
Removed two calls to png_check_chunk_name() occuring later in the process.
|
|
||||||
Define PNG_NO_ERROR_NUMBERS by default in pngconf.h
|
|
||||||
Added png_push_have_buffer() function to pngpread.c
|
|
||||||
Eliminated PNG_BIG_ENDIAN_SUPPORTED and associated png_get_* macros.
|
|
||||||
Made inline expansion of png_get_*() optional with PNG_USE_READ_MACROS.
|
|
||||||
Eliminated all PNG_USELESS_TESTS and PNG_CORRECT_PALETTE_SUPPORTED code.
|
|
||||||
Synced contrib directory and configure files with libpng-1.2.30beta06.
|
|
||||||
Changed "-Wall" to "-W -Wall" in the CFLAGS in all makefiles (Cosmin Truta)
|
|
||||||
Declared png_ptr "volatile" in pngread.c and pngwrite.c to avoid warnings.
|
|
||||||
Updated contrib/visupng/cexcept.h to version 2.0.1
|
|
||||||
Added PNG_LITERAL_CHARACTER macros for #, [, and ].
|
|
||||||
Moved newline character from individual png_debug messages into the
|
|
||||||
png_debug macros.
|
|
||||||
Allow user to #define their own png_debug, png_debug1, and png_debug2.
|
|
||||||
Added PNG_STRING_NEWLINE macro
|
|
||||||
Added PNG_STRING_COPYRIGHT macro.
|
|
||||||
Added non-ISO versions of png_debug macros.
|
|
||||||
Added PNG_WRITE_FLUSH_SUPPORTED and PNG_WRITE_FLUSH_AFTER_IEND_SUPPORTED
|
|
||||||
blocks around new png_flush() call.
|
|
||||||
Revised PNG_NO_STDIO version of png_write_flush()
|
|
||||||
Added png_get|set_chunk_cache_max() to limit the total number of sPLT,
|
|
||||||
text, and unknown chunks that can be stored.
|
|
||||||
Shortened tIME_string to 29 bytes in pngtest.c
|
|
||||||
Revised makefile.darwin to fix shared library numbering.
|
|
||||||
Change png_set_gray_1_2_4_to_8() to png_set_expand_gray_1_2_4_to_8()
|
|
||||||
in example.c (debian bug report)
|
|
||||||
Sync with tEXt vulnerability fix in libpng-1.2.33rc02.
|
|
||||||
Added png_check_cHRM in png.c and moved checking from pngget.c, pngrutil.c,
|
|
||||||
and pngwrite.c
|
|
||||||
Added check for zero-area RGB cHRM triange in png_check_cHRM() and
|
|
||||||
png_check_cHRM_fixed().
|
|
||||||
Revised png_warning() to write its message on standard output by default
|
|
||||||
when warning_fn is NULL.
|
|
||||||
Eliminated png_check_cHRM(). Instead, always use png_check_cHRM_fixed().
|
|
||||||
In png_check_cHRM_fixed(), ensure white_y is > 0, and removed redundant
|
|
||||||
check for all-zero coordinates that is detected by the triangle check.
|
|
||||||
Rearranged test expressions in png_check_cHRM_fixed() to avoid internal
|
|
||||||
overflows.
|
|
||||||
Added PNG_NO_CHECK_cHRM conditional.
|
|
||||||
Fixed string vs pointer-to-string error in png_check_keyword().
|
|
||||||
Added PNG_NO_CHECK_cHRM conditional.
|
|
||||||
Merge png_debug with version 1.2.34beta04.
|
|
||||||
Removed redundant check for key==NULL before calling png_check_keyword()
|
|
||||||
to ensure that new_key gets initialized and removed extra warning
|
|
||||||
(Merge with version 1.2.34beta05 -- Arvan Pritchard).
|
|
||||||
Added PNG_TRANSFORM_STRIP_FILLER_BEFORE and PNG_TRANSFORM_STRIP_FILLER_AFTER
|
|
||||||
conditionals and deprecated PNG_TRANSFORM_STRIP_FILLER (Jim Barry).
|
|
||||||
Turned off PNG_READ_DITHER_SUPPORTED by default.
|
|
||||||
Combined several instances of png_malloc(); png_memset() into png_calloc().
|
|
||||||
Fixed order of #ifdef directives in the png_debug defines in png.h
|
|
||||||
(bug introduced in libpng-1.2.34).
|
|
||||||
Revised comments in png_set_read_fn() and png_set_write_fn().
|
|
||||||
Use png_calloc() instead of png_malloc() to allocate big_row_buf when
|
|
||||||
reading an interlaced file, to avoid a possible UMR.
|
|
||||||
Revised libpng*.txt and png.h documentation about use of png_write_flush()
|
|
||||||
and png_set_write_fn().
|
|
||||||
Removed fflush() from pngtest.c.
|
|
||||||
Added "#define PNG_NO_WRITE_FLUSH" to contrib/pngminim/encoder/pngusr.h
|
|
||||||
Removed fflush() from pngtest.c.
|
|
||||||
Added "#define PNG_NO_WRITE_FLUSH" to contrib/pngminim/encoder/pngusr.h
|
|
||||||
Added a section on differences between 1.0.x and 1.2.x to libpng.3/libpng.txt
|
|
||||||
Fixed potential memory leak of "new_name" in png_write_iCCP() (Ralph Giles)
|
|
||||||
Added "ifndef PNG_SKIP_SETJMP_CHECK" block in pngconf.h to allow
|
|
||||||
application code writers to bypass the check for multiple inclusion
|
|
||||||
of setjmp.h when they know that it is safe to ignore the situation.
|
|
||||||
Eliminated internal use of setjmp() in pngread.c and pngwrite.c
|
|
||||||
Eliminated deprecated png_read_init_3() and png_write_init_3() functions.
|
|
||||||
Renamed "user_chunk_data" to "my_user_chunk_data" in pngtest.c to suppress
|
|
||||||
"shadowed declaration" warning from gcc-4.3.3.
|
|
||||||
Renamed "gamma" to "png_gamma" in pngset.c to avoid "shadowed declaration"
|
|
||||||
warning about a global "gamma" variable in math.h on some platforms.
|
|
||||||
Removed pngprefs.h and MMX from makefiles
|
|
||||||
Rebuilt configure scripts with autoconf-2.63 instead of 2.62
|
|
||||||
Clarified usage of sig_bit versus sig_bit_p in example.c (Vincent Torri)
|
|
||||||
Reformated sources in libpng style (3-space intentation, comment format)
|
|
||||||
Fixed typo in libpng docs (PNG_FILTER_AVE should be PNG_FILTER_AVG)
|
|
||||||
Added sections about the git repository and our coding style to the
|
|
||||||
documentation
|
|
||||||
Relocated misplaced #endif in pngwrite.c, sCAL chunk handler.
|
|
||||||
Conditionally compile png_read_finish_row() which is not used by
|
|
||||||
progressive readers.
|
|
||||||
Added contrib/pngminim/preader to demonstrate building minimal progressive
|
|
||||||
decoder, based on contrib/gregbook with embedded libpng and zlib.
|
|
||||||
In contrib/pngminim/*, renamed "makefile.std" to "makefile", since there
|
|
||||||
is only one makefile in those directories, and revised the README files
|
|
||||||
accordingly.
|
|
||||||
Added "#define PNG_NO_WRITE_SWAP" to contrib/pngminim/encoder/pngusr.h
|
|
||||||
and "define PNG_NO_READ_SWAP" to decoder/pngusr.h and preader/pngusr.h
|
|
||||||
Added a section in the documentation about using png_get_io_ptr() in
|
|
||||||
configure scripts to detect the presence of libpng.
|
|
||||||
Revised libpng*.txt and libpng.3 to mention calling png_set_IHDR()
|
|
||||||
multiple times and to specify the sample order in the tRNS chunk,
|
|
||||||
because the ISO PNG specification has a typo in the tRNS table.
|
|
||||||
Changed several PNG_UNKNOWN_CHUNK_SUPPORTED to
|
|
||||||
PNG_HANDLE_AS_UNKNOWN_SUPPORTED, to make the png_set_keep mechanism
|
|
||||||
available for ignoring known chunks even when not saving unknown chunks.
|
|
||||||
Adopted preference for consistent use of "#ifdef" and "#ifndef" versus
|
|
||||||
"#if defined()" and "if !defined()" where possible.
|
|
||||||
Eliminated PNG_LEGACY_SUPPORTED code.
|
|
||||||
Moved the various unknown chunk macro definitions outside of the
|
|
||||||
PNG_READ|WRITE_ANCILLARY_CHUNK_SUPPORTED blocks.
|
|
||||||
Added a reference to the libpng license in each file.
|
|
||||||
Relocated INVERT_ALPHA within png_read_png() and png_write_png().
|
|
||||||
Added high-level API transform PNG_TRANSFORM_GRAY_TO_RGB.
|
|
||||||
Added an "xcode" project to the projects directory (Alam Arias).
|
|
||||||
Avoid some tests in filter selection in pngwutil.c
|
|
||||||
Avoid a possible NULL dereference in debug build, in png_set_text_2().
|
|
||||||
(bug introduced in libpng-0.95, discovered by Evan Rouault)
|
|
||||||
Rebuilt configure scripts with autoconf-2.65
|
|
||||||
Replaced *.tar.lzma with *.tar.xz in distribution. Get the xz codec
|
|
||||||
from <http://tukaani.org/xz>.
|
|
||||||
Reject attempt to write iCCP chunk with negative embedded profile length
|
|
||||||
(JD Chen)
|
|
||||||
Changed "trans" to "trans_alpha" and changed "trans_values" to "trans_color".
|
|
||||||
Removed lpXYZ.tar.bz2 (with CRLF), KNOWNBUG, libpng-x.y.z-KNOWNBUG.txt,
|
|
||||||
and the "noconfig" files from the distribution.
|
|
||||||
Moved CMakeLists.txt from scripts into the main libpng directory.
|
|
||||||
Various bugfixes and improvements to CMakeLists.txt (Philip Lowman)
|
|
||||||
Converted all PNG_NO_* tests to PNG_*_SUPPORTED everywhere except pngconf.h
|
|
||||||
Eliminated PNG_NO_FREE_ME and PNG_FREE_ME_SUPPORTED macros.
|
|
||||||
Use png_malloc plus a loop instead of png_calloc() to initialize
|
|
||||||
row_pointers in png_read_png().
|
|
||||||
Eliminated PNG_GLOBAL_ARRAYS and PNG_LOCAL_ARRAYS; always use local arrays.
|
|
||||||
Eliminated PNG_CALLOC_SUPPORTED macro and always provide png_calloc().
|
|
||||||
Removed scripts/libpng.icc
|
|
||||||
Changed typecast of filler from png_byte to png_uint_16 in png_set_filler().
|
|
||||||
(Dennis Gustafsson)
|
|
||||||
Eliminated unused PNG_FLAG_FREE_* defines from pngpriv.h
|
|
||||||
Expanded TAB characters in pngrtran.c
|
|
||||||
Removed PNG_CONST from all "PNG_CONST PNG_CHNK" declarations to avoid
|
|
||||||
compiler complaints about doubly declaring things "const".
|
|
||||||
Eliminated unused png_ptr->row_buf_size
|
|
||||||
Changed all "#if [!]defined(X)" to "if[n]def X" where possible.
|
|
||||||
Moved redundant IHDR checking into new png_check_IHDR() in png.c
|
|
||||||
and report all errors found in the IHDR data.
|
|
||||||
Eliminated useless call to png_check_cHRM() from pngset.c
|
|
||||||
Eliminated a shadowed declaration of "pp" in png_handle_sPLT().
|
|
||||||
Patched ltmain.sh for wince support.
|
|
||||||
Added PNG_CONVERT_tIME_SUPPORTED macro.
|
|
||||||
Make inclusion of time.h in pngconf.h depend on PNG_CONVERT_tIME_SUPPORTED
|
|
||||||
Make #define PNG_CONVERT_tIME_SUPPORTED depend on PNG_WRITE_tIME_SUPPORTED
|
|
||||||
Updated scripts/pngw32.def and projects/wince/png32ce.def
|
|
||||||
Copied projects/wince/png32ce.def to the scripts directory.
|
|
||||||
Added scripts/makefile.cegcc
|
|
||||||
Revised libpng*.txt to describe differences from 1.2.40 to 1.4.0
|
|
||||||
Added PNG_DEPSTRUCT, PNG_DEPRECATED, PNG_USE_RESULT, PNG_NORETURN, and
|
|
||||||
PNG_ALLOCATED macros to detect deprecated direct access to the
|
|
||||||
png_struct or info_struct members and other deprecated usage in
|
|
||||||
applications (John Bowler).
|
|
||||||
Updated scripts/makefile* to add "-DPNG_CONFIGURE_LIBPNG" to CFLAGS,
|
|
||||||
to prevent warnings about direct access to png structs by libpng
|
|
||||||
functions while building libpng. They need to be tested, especially
|
|
||||||
those using compilers other than gcc.
|
|
||||||
Updated CMakeLists.txt to add "-DPNG_CONFIGURE_LIBPNG" to the definitions.
|
|
||||||
Updated projects/visualc6 and visualc71 with "/d PNG_CONFIGURE_LIBPNG".
|
|
||||||
They should work but still need to be updated to remove
|
|
||||||
references to pnggccrd.c or pngvcrd.c and ASM building.
|
|
||||||
Added README.txt to the beos, cbuilder5, netware, and xcode projects warning
|
|
||||||
that they need to be updated, to remove references to pnggccrd.c and
|
|
||||||
pngvcrd.c and to depend on pngpriv.h
|
|
||||||
Removed three direct references to read_info_ptr members in pngtest.c
|
|
||||||
that were detected by the new PNG_DEPSTRUCT macro.
|
|
||||||
Moved the png_debug macro definitions and the png_read_destroy(),
|
|
||||||
png_write_destroy() and png_far_to_near() prototypes from png.h
|
|
||||||
to pngpriv.h (John Bowler)
|
|
||||||
Moved the synopsis lines for png_read_destroy(), png_write_destroy()
|
|
||||||
png_debug(), png_debug1(), and png_debug2() from libpng.3 to libpngpf.3.
|
|
||||||
Removed the obsolete, unused pnggccrd.c and pngvcrd.c files.
|
|
||||||
Removed dependency of pngtest.o on pngpriv.h in the makefiles.
|
|
||||||
Added -DPNG_CONFIGURE_LIBPNG to contrib/pngminm/*/makefile
|
|
||||||
Changed png_check_sig() to !png_sig_cmp() in contrib programs.
|
|
||||||
Corrected the png_get_IHDR() call in contrib/gregbook/readpng2.c
|
|
||||||
Changed pngminim/*/gather.sh to stop trying to remove pnggccrd.c and pngvcrd.c
|
|
||||||
Added dependency on pngpriv.h in contrib/pngminim/*/makefile
|
|
||||||
Revised Makefile.am to use libpng.sys while building libpng.so
|
|
||||||
so that only PNG_EXPORT functions are exported.
|
|
||||||
Removed the deprecated png_check_sig() function/macro.
|
|
||||||
Removed recently removed function names from scripts/*.def
|
|
||||||
Added PNG_PRIVATE macro definition in pngconf.h for possible future use.
|
|
||||||
Removed projects/beos and netware.txt; no one seems to be supporting them.
|
|
||||||
Moved libpng-config.in and libpng.pc-configure.in out of the scripts
|
|
||||||
directory, to libpng-config.in and libpng.pc.in, respectively, and
|
|
||||||
modified Makefile.am and configure.ac accordingly. Now "configure"
|
|
||||||
needs nothing from the "scripts" directory.
|
|
||||||
Removed ASM builds from projects/visualc6 and projects/visualc71
|
|
||||||
Removed scripts/makefile.nommx and makefile.vcawin32
|
|
||||||
Revised CMakeLists.txt to account for new location of libpng-config.in
|
|
||||||
and libpng.pc.in
|
|
||||||
Updated INSTALL to reflect removal and relocation of files.
|
|
||||||
Moved descriptions of makefiles and other scripts out of INSTALL into
|
|
||||||
scripts/README.txt
|
|
||||||
Updated the copyright year in scripts/pngwin.rc from 2006 to 2009.
|
|
||||||
Removed obsolete comments about ASM from projects/visualc71/README_zlib.txt
|
|
||||||
Align row_buf on 16-byte boundary in memory.
|
|
||||||
Make the 'png_jmpbuf' macro expand to a call that records the correct
|
|
||||||
longjmp function as well as returning a pointer to the setjmp
|
|
||||||
jmp_buf buffer, and marked direct access to jmpbuf 'deprecated'.
|
|
||||||
(John Bowler)
|
|
||||||
Changed "/255" to "/255.0" in background calculations to make it clear
|
|
||||||
that the 255 is used as a double.
|
|
||||||
Added "#define PNG_NO_PEDANTIC_WARNINGS" in the libpng source files.
|
|
||||||
Revised scripts/makefile.netbsd, makefile.openbsd, and makefile.sco
|
|
||||||
to put png.h and pngconf.h in $prefix/include, like the other scripts,
|
|
||||||
instead of in $prefix/include/libpng. Also revised makefile.sco
|
|
||||||
to put them in $prefix/include/libpng14 instead of in
|
|
||||||
$prefix/include/libpng/libpng14.
|
|
||||||
Added "bit_depth" parameter to the private png_build_gamma_table() function.
|
|
||||||
Use png_calloc() instead of png_malloc(); png_memset() in pngrutil.c
|
|
||||||
Avoid deprecated references to png_ptr-io_ptr and png_ptr->error_ptr
|
|
||||||
in pngtest.c
|
|
||||||
|
|
||||||
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
|
Glenn R-P
|
||||||
|
|||||||
435
CHANGES
@@ -1,5 +1,4 @@
|
|||||||
#if 0
|
#if 0
|
||||||
libpng_changes(){ /*
|
|
||||||
CHANGES - changes for libpng
|
CHANGES - changes for libpng
|
||||||
|
|
||||||
version 0.2
|
version 0.2
|
||||||
@@ -1479,7 +1478,7 @@ version 1.2.9beta5 [March 4, 2006]
|
|||||||
Removed trailing blanks from source files.
|
Removed trailing blanks from source files.
|
||||||
Put version and date of latest change in each source file, and changed
|
Put version and date of latest change in each source file, and changed
|
||||||
copyright year accordingly.
|
copyright year accordingly.
|
||||||
More cleanup of configure.ac, Makefile.ac, and associated scripts.
|
More cleanup of configure.ac, Makefile.am, and associated scripts.
|
||||||
Restored scripts/makefile.elf which was inadvertently deleted.
|
Restored scripts/makefile.elf which was inadvertently deleted.
|
||||||
|
|
||||||
version 1.2.9beta6 [March 6, 2006]
|
version 1.2.9beta6 [March 6, 2006]
|
||||||
@@ -1672,7 +1671,7 @@ version 1.2.15rc2 [December 21, 2006]
|
|||||||
Added scripts/makefile.nommx
|
Added scripts/makefile.nommx
|
||||||
|
|
||||||
version 1.2.15rc3 [December 25, 2006]
|
version 1.2.15rc3 [December 25, 2006]
|
||||||
Fixed shared library numbering error that was intruduced in 1.2.15beta6.
|
Fixed shared library numbering error that was introduced in 1.2.15beta6.
|
||||||
|
|
||||||
version 1.2.15rc4 [December 27, 2006]
|
version 1.2.15rc4 [December 27, 2006]
|
||||||
Fixed handling of rgb_to_gray when png_ptr->color.gray isn't set.
|
Fixed handling of rgb_to_gray when png_ptr->color.gray isn't set.
|
||||||
@@ -2054,7 +2053,10 @@ version 1.4.0beta46 [December 10, 2008]
|
|||||||
PNG_TRANSFORM_STRIP_FILLER (Jim Barry).
|
PNG_TRANSFORM_STRIP_FILLER (Jim Barry).
|
||||||
|
|
||||||
version 1.4.0beta47 [December 15, 2008]
|
version 1.4.0beta47 [December 15, 2008]
|
||||||
Turned off PNG_READ_DITHER_SUPPORTED by default.
|
Support for dithering was disabled by default, because it has never
|
||||||
|
been well tested and doesn't work very well. The code has not
|
||||||
|
been removed, however, and can be enabled by building libpng with
|
||||||
|
PNG_READ_DITHER_SUPPORTED defined.
|
||||||
|
|
||||||
version 1.4.0beta48 [February 14, 2009]
|
version 1.4.0beta48 [February 14, 2009]
|
||||||
Added new exported function png_calloc().
|
Added new exported function png_calloc().
|
||||||
@@ -2122,7 +2124,7 @@ version 1.4.0beta57 [May 2, 2009]
|
|||||||
Removed pngprefs.h and MMX from makefiles
|
Removed pngprefs.h and MMX from makefiles
|
||||||
|
|
||||||
version 1.4.0beta58 [May 14, 2009]
|
version 1.4.0beta58 [May 14, 2009]
|
||||||
Changed pngw32.def to pngwin.def in makefile.mingw (typo was intruduced
|
Changed pngw32.def to pngwin.def in makefile.mingw (typo was introduced
|
||||||
in beta57).
|
in beta57).
|
||||||
Clarified usage of sig_bit versus sig_bit_p in example.c (Vincent Torri)
|
Clarified usage of sig_bit versus sig_bit_p in example.c (Vincent Torri)
|
||||||
|
|
||||||
@@ -2458,12 +2460,423 @@ version 1.4.0rc08 [January 2, 2010]
|
|||||||
version 1.4.0 [January 3, 2010]
|
version 1.4.0 [January 3, 2010]
|
||||||
No changes.
|
No changes.
|
||||||
|
|
||||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
version 1.4.1beta01 [January 8, 2010]
|
||||||
(subscription required; visit
|
Updated CMakeLists.txt for consistent indentation and to avoid an
|
||||||
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
unclosed if-statement warning (Philip Lowman).
|
||||||
to subscribe)
|
Revised Makefile.am and Makefile.in to remove references to Y2KINFO,
|
||||||
or to glennrp at users.sourceforge.net
|
KNOWNBUG, and libpng.la (Robert Schwebel).
|
||||||
|
Revised the makefiles to install the same files and symbolic
|
||||||
|
links as configure, except for libpng.la and libpng14.la.
|
||||||
|
Make png_set|get_compression_buffer_size() available even when
|
||||||
|
PNG_WRITE_SUPPORTED is not enabled.
|
||||||
|
Revised Makefile.am and Makefile.in to simplify their maintenance.
|
||||||
|
Revised scripts/makefile.linux to install a link to libpng14.so.14.1
|
||||||
|
|
||||||
|
version 1.4.1beta02 [January 9, 2010]
|
||||||
|
Revised the rest of the makefiles to install a link to libpng14.so.14.1
|
||||||
|
|
||||||
|
version 1.4.1beta03 [January 10, 2010]
|
||||||
|
Removed png_set_premultiply_alpha() from scripts/*.def
|
||||||
|
|
||||||
|
version 1.4.1rc01 [January 16, 2010]
|
||||||
|
No changes.
|
||||||
|
|
||||||
|
version 1.4.1beta04 [January 23, 2010]
|
||||||
|
Revised png_decompress_chunk() to improve speed and memory usage when
|
||||||
|
decoding large chunks.
|
||||||
|
Added png_set|get_chunk_malloc_max() functions.
|
||||||
|
|
||||||
|
version 1.4.1beta05 [January 26, 2010]
|
||||||
|
Relocated "int k" declaration in pngtest.c to minimize its scope.
|
||||||
|
|
||||||
|
version 1.4.1beta06 [January 28, 2010]
|
||||||
|
Revised png_decompress_chunk() to use a two-pass method suggested by
|
||||||
|
John Bowler.
|
||||||
|
|
||||||
|
version 1.4.1beta07 [February 6, 2010]
|
||||||
|
Folded some long lines in the source files.
|
||||||
|
Added defineable PNG_USER_CHUNK_CACHE_MAX, PNG_USER_CHUNK_MALLOC_MAX,
|
||||||
|
and a PNG_USER_LIMITS_SUPPORTED flag.
|
||||||
|
Eliminated use of png_ptr->irowbytes and reused the slot in png_ptr as
|
||||||
|
png_ptr->png_user_chunk_malloc_max.
|
||||||
|
Revised png_push_save_buffer() to do fewer but larger png_malloc() calls.
|
||||||
|
|
||||||
|
version 1.4.1beta08 [February 6, 2010]
|
||||||
|
Minor cleanup and updating of dates and copyright year.
|
||||||
|
|
||||||
|
version 1.4.1beta09 [February 7, 2010]
|
||||||
|
Reverted to original png_push_save_buffer() code.
|
||||||
|
|
||||||
|
version 1.4.1beta10 [February 9, 2010]
|
||||||
|
Return allocated "old_buffer" in png_push_save_buffer() before calling
|
||||||
|
png_error(), to avoid a potential memory leak.
|
||||||
|
|
||||||
|
version 1.4.1beta11 [February 12, 2010]
|
||||||
|
Relocated misplaced closing curley bracket in png_decompress_chunk().
|
||||||
|
Removed unused "buffer_size" variable from png_decompress_chunk().
|
||||||
|
Removed the cbuilder5 project, which has not been updated to 1.4.0.
|
||||||
|
Complete rewrite of two-pass png_decompress_chunk() by John Bowler.
|
||||||
|
|
||||||
|
version 1.4.1beta12 [February 14, 2010]
|
||||||
|
Fixed type declaration of png_get_user_malloc_max() in pngget.c (Daisuke
|
||||||
|
Nishikawa)
|
||||||
|
|
||||||
|
version 1.4.1rc02 [January 18, 2010]
|
||||||
|
No changes.
|
||||||
|
|
||||||
|
version 1.4.1rc03 [February 19, 2010]
|
||||||
|
Noted in scripts/makefile.mingw that it expects to be run under MSYS.
|
||||||
|
Removed obsolete unused MMX-querying support from contrib/gregbook
|
||||||
|
Removed the AIX redefinition of jmpbuf in png.h
|
||||||
|
Define _ALL_SOURCE in configure.ac, makefile.aix, and CMakeLists.txt
|
||||||
|
when using AIX compiler.
|
||||||
|
|
||||||
|
version 1.4.1rc04 [February 19, 2010]
|
||||||
|
Removed unused gzio.c from contrib/pngminim gather and makefile scripts
|
||||||
|
|
||||||
|
version 1.4.1 [February 25, 2010]
|
||||||
|
|
||||||
|
version 1.4.2beta01 [April 1, 2010]
|
||||||
|
Conditionally compile an "else" statement in png_decompress_chunk().
|
||||||
|
Restored the macro definition of png_check_sig().
|
||||||
|
|
||||||
|
version 1.4.2rc01 [April 10, 2010]
|
||||||
|
No changes.
|
||||||
|
|
||||||
|
version 1.4.2rc02 [April 16, 2010]
|
||||||
|
Documented the fact that png_set_dither() was disabled since libpng-1.4.0.
|
||||||
|
Reenabled png_set_dither() but renamed it to png_set_quantize() to reflect
|
||||||
|
more accurately what it actually does. At the same time, renamed
|
||||||
|
the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros to
|
||||||
|
PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS.
|
||||||
|
|
||||||
|
version 1.4.2rc03 [April 24, 2010]
|
||||||
|
Added some "(long)" typecasts to printf calls in png_handle_cHRM().
|
||||||
|
Relaxed the overly-restrictive permissions of some files.
|
||||||
|
|
||||||
|
version 1.4.2rc04 [April 28, 2010]
|
||||||
|
Added the "vstudio" project to replace "visualc6" and "visualc71" which
|
||||||
|
will be removed from libpng-1.5.0.
|
||||||
|
Demonstrate in example.c that lang_key should be initialized.
|
||||||
|
Set PNG_NO_READ_BGR, PNG_NO_IO_STATE, and PNG_NO_TIME_RFC1123 in
|
||||||
|
contrib/pngminim/decoder/pngusr.h to make a smaller decoder application.
|
||||||
|
|
||||||
|
version 1.4.2rc05 [April 29, 2010]
|
||||||
|
Include png_reset_zstream() in png.c only when PNG_READ_SUPPORTED is defined.
|
||||||
|
Removed dummy_inflate.c and uncompr.c from contrib/pngminim/encoder
|
||||||
|
Corrected PNG_UNKNOWN_CHUNKS_SUPPORTED to PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||||
|
in gregbook/readpng2.c
|
||||||
|
Corrected protection of png_get_user_transform_ptr. The API declaration in
|
||||||
|
png.h is removed if both READ and WRITE USER_TRANSFORM are turned off
|
||||||
|
but was left defined in pngtrans.c
|
||||||
|
|
||||||
|
version 1.4.2rc06 [May 3, 2010]
|
||||||
|
Moved declarations of umsg[] inside the proper #ifdef blocks in pngrutil.c
|
||||||
|
|
||||||
|
version 1.4.2 [May 6, 2010]
|
||||||
|
|
||||||
|
version 1.4.3beta01 [June 18, 2010]
|
||||||
|
Added missing quotation marks in the aix block of configure.ac
|
||||||
|
The new "vstudio" project was missing from the zip and 7z distributions.
|
||||||
|
In pngpread.c: png_push_have_row() add check for new_row > height
|
||||||
|
|
||||||
|
version 1.4.3beta02 [June 18, 2010]
|
||||||
|
Removed the now-redundant check for out-of-bounds new_row from example.c
|
||||||
|
|
||||||
|
version 1.4.3beta03 [June 18, 2010]
|
||||||
|
In pngpread.c: png_push_finish_row() add check for too many rows.
|
||||||
|
|
||||||
|
version 1.4.3beta04 [June 19, 2010]
|
||||||
|
In pngpread.c: png_push_process_row() add check for too many rows.
|
||||||
|
Removed the checks added in beta01 and beta03, as they are now redundant.
|
||||||
|
|
||||||
|
version 1.4.3beta05 [June 20, 2010]
|
||||||
|
Rewrote png_process_IDAT_data to consistently treat extra data as warnings
|
||||||
|
and handle end conditions more cleanly.
|
||||||
|
Removed the new (beta04) check in png_push_process_row().
|
||||||
|
|
||||||
|
version 1.4.3rc01 [June 21, 2010]
|
||||||
|
Revised some comments in png_process_IDAT_data().
|
||||||
|
|
||||||
|
version 1.4.3rc02 [June 22, 2010]
|
||||||
|
Changed char *msg to PNG_CONST char *msg in pngrutil.c
|
||||||
|
Stop memory leak when reading a malformed sCAL chunk.
|
||||||
|
Removed some trailing blanks.
|
||||||
|
|
||||||
|
version 1.4.3rc03 [June 23, 2010]
|
||||||
|
Revised pngpread.c patch of beta05 to avoid an endless loop.
|
||||||
|
|
||||||
|
version 1.4.3 [June 26, 2010]
|
||||||
|
Updated some of the "last changed" dates.
|
||||||
|
|
||||||
|
version 1.4.4beta01 [July 12, 2010]
|
||||||
|
Removed extraneous new_push_process_row.c file.
|
||||||
|
Revised the "SEE ALSO" style of libpng.3, libpngpf.3, and png.5
|
||||||
|
Removed some newly-added TAB characters from pngpread.c.
|
||||||
|
Fixed some indentation in pngpread.c and pngrutil.c
|
||||||
|
Changed "extern PNG_EXPORT" to "PNG_EXPORT" in png.h (Jan Nijtmans)
|
||||||
|
Changed "extern" to "PNG_EXTERN" in pngpriv.h (except for the 'extern "C" {')
|
||||||
|
Put "#ifndef PNG_EXTERN, #endif" around "#define PNG_EXTERN" in pngpriv.h
|
||||||
|
|
||||||
|
version 1.4.4beta02 [July 24, 2010]
|
||||||
|
Added -DNO_PNG_SNPRINTF to CFLAGS in scripts/makefile.dj2
|
||||||
|
Moved the definition of png_snprintf() outside of the enclosing
|
||||||
|
#ifdef blocks in pngconf.h
|
||||||
|
Added a special case typedef of png_longjmp_ptr for WATCOM.
|
||||||
|
|
||||||
|
version 1.4.4beta03 [July 24, 2010]
|
||||||
|
Removed reference to cbuilder5/* from Makefile.in and Makefile.am
|
||||||
|
Eliminated the new special case typedef of png_longjmp_ptr for WATCOM
|
||||||
|
and made a special case "#define PNGAPI" in pngconf.h instead.
|
||||||
|
|
||||||
|
version 1.4.4beta04 [July 31, 2010]
|
||||||
|
Updated the read macros and functions from 1.5.0beta38.
|
||||||
|
|
||||||
|
version 1.4.4beta05 [August 6, 2010]
|
||||||
|
Updated projects/visualc71 so it can find scripts/pnglibconf.h
|
||||||
|
Removed unused png_mem_* defines from pngconf.h.
|
||||||
|
Correct use of _WINDOWS_ in pngconf.h
|
||||||
|
|
||||||
|
version 1.4.4beta06 [August 11, 2010]
|
||||||
|
Don't try to use version-script with cygwin/mingw.
|
||||||
|
Revised contrib/gregbook to work under cygwin/mingw.
|
||||||
|
|
||||||
|
version 1.4.4beta07 [August 26, 2010]
|
||||||
|
Updated prebuilt aclocal.m4 and ltmain.sh
|
||||||
|
Add .dll.a to the list of extensions to be symlinked by Makefile.am (Yaakov)
|
||||||
|
Updated CMakeLists.txt to use CMAKE_INSTALL_LIBDIR variable; useful for
|
||||||
|
installing libpng in /usr/lib64 (Funda Wang).
|
||||||
|
Revised CMakeLists.txt to put the man pages in share/man/man* not man/man*
|
||||||
|
Revised CMakeLists.txt to make symlinks instead of copies when installing.
|
||||||
|
Changed PNG_LIB_NAME from pngNN to libpngNN in CMakeLists.txt (Philip Lowman)
|
||||||
|
Moved "#include pngusr.h" ahead of PNG_USER_PRIVATEBUILD test in pngconf.h
|
||||||
|
Eliminated a deprecated reference to png_ptr->io_ptr in pngtest.c
|
||||||
|
Eliminated new unnecessary #if tests regarding the sCAL chunk from pngrutil.c
|
||||||
|
|
||||||
|
version 1.4.4beta08 [September 2, 2010]
|
||||||
|
Updated the xcode project to work with libpng-1.4.x and added iOS targets
|
||||||
|
for simulator and device (Philippe Hausler).
|
||||||
|
|
||||||
|
version 1.4.4rc01 [September 10, 2010]
|
||||||
|
No changes.
|
||||||
|
|
||||||
|
version 1.4.4rc02 [September 13, 2010]
|
||||||
|
Revised CMakeLists.txt (Philip Lowman).
|
||||||
|
|
||||||
|
version 1.4.4rc03 [September 14, 2010]
|
||||||
|
Removed an extraneous close-double-quote from CMakeLists.txt
|
||||||
|
Eliminated another deprecated reference to png_ptr->io_ptr in pngtest.c
|
||||||
|
|
||||||
|
version 1.4.4rc04 [September 16, 2010]
|
||||||
|
Fixed indentation and removed debugging message from CMakeLists.txt
|
||||||
|
Revised autogen.sh to recognize and use $AUTOCONF, $AUTOMAKE, $AUTOHEADER,
|
||||||
|
$AUTOPOINT, $ACLOCAL and $LIBTOOLIZE
|
||||||
|
|
||||||
|
version 1.4.4rc05 [September 20, 2010]
|
||||||
|
Rebuilt configure scripts with automake-1.11.1 instead of automake-1.11.
|
||||||
|
Removed unused mkinstalldirs file.
|
||||||
|
|
||||||
|
version 1.4.4 [September 23, 2010]
|
||||||
|
No changes.
|
||||||
|
|
||||||
|
version 1.4.5beta01 [September 25, 2010]
|
||||||
|
Fixed possible configure.ac bug introduced in version 1.4.4rc05.
|
||||||
|
Rebuilt configure scripts with autoconf-2.68 instead of autoconf-2.65
|
||||||
|
|
||||||
|
version 1.4.5beta02 [October 5, 2010]
|
||||||
|
Reverted configure scripts to autoconf-2.65
|
||||||
|
Fixed problem with symbols creation in Makefile.am which was assuming that
|
||||||
|
all versions of cpp write to standard output by default (Martin Banky). The
|
||||||
|
bug was introduced in libpng-1.2.9beta5.
|
||||||
|
|
||||||
|
version 1.4.5beta03 [October 8, 2010]
|
||||||
|
Wrapped long lines in CMakeLists.txt and introduced ${libpng_public_hdrs}
|
||||||
|
Undid Makefile.am revision of 1.4.5beta02.
|
||||||
|
|
||||||
|
version 1.4.5beta04 [November 8, 2010]
|
||||||
|
Check for out-of-range text compression mode in png_set_text().
|
||||||
|
|
||||||
|
version 1.4.5rc01 [November 19, 2010]
|
||||||
|
No changes.
|
||||||
|
|
||||||
|
version 1.4.5beta05 [November 20, 2010]
|
||||||
|
Revised png_get_uint_32, png_get_int_32, png_get_uint_16 (Cosmin)
|
||||||
|
Moved reading of file signature into png_read_sig (Cosmin)
|
||||||
|
Fixed atomicity of chunk header serialization (Cosmin)
|
||||||
|
Added test for io_state in pngtest.c (Cosmin)
|
||||||
|
Added "#!/bin/sh" at the top of contrib/pngminim/*/gather.sh scripts.
|
||||||
|
|
||||||
|
version 1.4.5beta06 [November 21, 2010]
|
||||||
|
Restored the parentheses in pngrutil.c; they are needed when the
|
||||||
|
png_get_*int_*() functions are compiled (i.e., when PNG_USE_READ_MACROS
|
||||||
|
is not defined).
|
||||||
|
Make the "png_get_uint_16" macro return a png_uint_32 in libpng-1.4 for API
|
||||||
|
compatibility.
|
||||||
|
Changes to remove gcc warnings (John Bowler)
|
||||||
|
Certain optional gcc warning flags resulted in warnings in libpng code.
|
||||||
|
With these changes only -Wconversion and -Wcast-qual cannot be turned on.
|
||||||
|
Changes are trivial rearrangements of code. -Wconversion is not possible
|
||||||
|
for pngrutil.c (because of the widespread use of += et al on variables
|
||||||
|
smaller than (int) or (unsigned int)) and -Wcast-qual is not possible
|
||||||
|
with pngwio.c and pngwutil.c because the 'write' callback and zlib
|
||||||
|
compression both fail to declare their input buffers with 'const'.
|
||||||
|
|
||||||
|
version 1.4.5beta07 [November 25, 2010]
|
||||||
|
Reverted png_get_uint_16 macro to beta05 and added comment about the
|
||||||
|
potential API incompatibility.
|
||||||
|
|
||||||
|
version 1.4.5rc02 [December 2, 2010]
|
||||||
|
No changes.
|
||||||
|
|
||||||
|
version 1.4.5rc03 [December 3, 2010]
|
||||||
|
Added missing vstudio/*/*.vcxproj files to the zip and 7z distributions.
|
||||||
|
|
||||||
|
version 1.4.5 [December 9, 2010]
|
||||||
|
Removed PNG_NO_WRITE_GAMMA from pngminim/encoder/pngusr.h
|
||||||
|
|
||||||
|
version 1.4.6beta01 [December 29, 2010]
|
||||||
|
Fixed bug in background transformation handling in pngrtran.c (it was
|
||||||
|
looking for the flag in png_ptr->transformations instead of in
|
||||||
|
png_ptr->flags) (David Raymond).
|
||||||
|
|
||||||
|
version 1.4.6beta02 [January 14, 2011]
|
||||||
|
Fixed misspelled macros in contrib/pngminim (Cosmin).
|
||||||
|
Updated CMakeLists.txt (Clifford Yapp).
|
||||||
|
|
||||||
|
version 1.4.6beta03 [January 14, 2011]
|
||||||
|
Fixed some typecasts in png_debug statements (Cosmin).
|
||||||
|
|
||||||
|
version 1.4.6beta04 [January 22, 2011]
|
||||||
|
Updated documentation of png_set|get_tRNS() (Thomas Klausner).
|
||||||
|
Added png_const_structp and png_const_infop types, and used them in
|
||||||
|
prototypes for most png_get_*() functions.
|
||||||
|
In the manual, describe the png_get_IHDR() arguments in the correct order.
|
||||||
|
Ported change in png_do_rgb_to_gray() from libpng-1.5.1, to make
|
||||||
|
it more robust against internal libpng coding errors.
|
||||||
|
|
||||||
|
version 1.4.6beta05 [January 23, 2011]
|
||||||
|
|
||||||
|
Updated the synopses in the manual to reflect recent changes.
|
||||||
|
Fixed a typo in the *.def files and deleted entries that are now
|
||||||
|
declared in pngpriv.h
|
||||||
|
|
||||||
|
version 1.4.6beta06 [March 19, 2011]
|
||||||
|
Updated contrib/pngsuite/README to add the word "modify".
|
||||||
|
Added the private PNG_UNUSED() macro definition in pngconf.h.
|
||||||
|
|
||||||
|
version 1.4.6beta07 [March 22, 2011]
|
||||||
|
ifdef out mask arrays in pngread.c when interlacing is not supported.
|
||||||
|
Added attribute definition (warnings) for MSC_VER >= 1300 in pngconf.h
|
||||||
|
Added -D_CRT_SECURE_NO_DEPRECATE to CFLAGS in makefile.vcwin32
|
||||||
|
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.
|
||||||
|
Added a request in the manual that applications do not use "png_" or
|
||||||
|
"PNG_" to begin any of their own symbols.
|
||||||
|
Fixed incorrect examples of callback prototypes in the manual, that were
|
||||||
|
introduced in libpng-1.0.0.
|
||||||
|
Removed "strip" from contrib/pngminim/*/makefile.
|
||||||
|
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.4.6rc01 [March 31, 2011]
|
||||||
|
No changes.
|
||||||
|
|
||||||
|
version 1.4.6rc02 [April 6, 2011]
|
||||||
|
Improved the optimization of the zlib CMF byte (see libpng-1.2.6beta03).
|
||||||
|
|
||||||
|
version 1.4.6 [April 8, 2011]
|
||||||
|
No changes.
|
||||||
|
|
||||||
|
version 1.4.7rc01 [April 9, 2011]
|
||||||
|
Relocated misplaced new declarations in pngwutil.c.
|
||||||
|
|
||||||
|
version 1.4.7 [April 9, 2011]
|
||||||
|
Disabled PNG_PEDANTIC_WARNINGS for all MSC versions as in libpng-1.4.5.
|
||||||
|
|
||||||
|
version 1.4.8beta01 [June 4, 2011]
|
||||||
|
Undef "_ALL_SOURCE" for AIX, to prevent "jmpbuf" from being redefined.
|
||||||
|
Copied png_debug macros from pngpriv.h into pngtest.c and removed
|
||||||
|
"#include pngpriv.h" from pngtest.c, to avoid setting a bad example.
|
||||||
|
Pass "" instead of '\0' to png_default_error() in png_err(). This mistake
|
||||||
|
was introduced in libpng-1.2.20beta01.
|
||||||
|
Check for up->location !PNG_AFTER_IDAT when writing unknown chunks
|
||||||
|
before IDAT.
|
||||||
|
Ported bugfix in pngrtran.c from 1.5.3: when expanding a paletted image,
|
||||||
|
always expand to RGBA if transparency is present.
|
||||||
|
|
||||||
|
version 1.4.8beta02 [June 5, 2011]
|
||||||
|
Ported bugfix in pngrtran.c from 1.5.3: Ensure coefficients are OK for
|
||||||
|
png_rgb_to_gray_fixed().
|
||||||
|
|
||||||
|
version 1.4.8beta03 [June 6, 2011]
|
||||||
|
Check for integer overflow in png_set_rgb_to_gray().
|
||||||
|
|
||||||
|
version 1.4.8beta04 [June 7, 2011]
|
||||||
|
Fixed uninitialized memory read in png_format_buffer() (Bug report by
|
||||||
|
Frank Busse, related to CVE-2004-0421).
|
||||||
|
|
||||||
|
version 1.4.8beta05 [June 19, 2011]
|
||||||
|
Fixed error in "ACCURATE" 16-to-8 scaling (John Bowler).
|
||||||
|
Check for sCAL chunk too short.
|
||||||
|
|
||||||
|
version 1.4.8rc01 [June 30, 2011]
|
||||||
|
No changes.
|
||||||
|
|
||||||
|
version 1.4.8 [July 7, 2011]
|
||||||
|
No changes.
|
||||||
|
|
||||||
|
version 1.4.9beta01 [February 16, 2012]
|
||||||
|
Added vstudio/* and CMakeLists to EXTRA_DIST in Makefile.in and Makefile.am
|
||||||
|
Updated contrib/pngminus/makefile.std (Samuli Souminen)
|
||||||
|
Added SunOS support to configure.ac and Makefile.am (but configure and
|
||||||
|
Makefile.in were not updated)
|
||||||
|
|
||||||
|
version 1.4.9rc01 [February 17, 2012]
|
||||||
|
Fixed CVE-2011-3026 buffer overrun bug. This bug was introduced when
|
||||||
|
iCCP chunk support was added at libpng-1.0.6. Deal more correctly with the
|
||||||
|
test on iCCP chunk length. Also removed spurious casts that may hide
|
||||||
|
problems on 16-bit systems.
|
||||||
|
|
||||||
|
version 1.4.9 [February 18, 2012]
|
||||||
|
No changes.
|
||||||
|
|
||||||
|
version 1.4.10beta01 [February 27, 2011]
|
||||||
|
Removed two useless #ifdef directives from pngread.c and one from pngrutil.c
|
||||||
|
Eliminated redundant png_push_read_tEXt|zTXt|iTXt|unknown code from
|
||||||
|
pngpread.c and use the sequential png_handle_tEXt, etc., in pngrutil.c;
|
||||||
|
now that png_ptr->buffer is inaccessible to applications, the special
|
||||||
|
handling is no longer useful.
|
||||||
|
Fixed bug with png_handle_hIST with odd chunk length (Frank Busse).
|
||||||
|
Fixed incorrect type (int copy should be png_size_t copy) in png_inflate()
|
||||||
|
(fixes CVE-2011-3045).
|
||||||
|
Fixed off-by-one bug in png_handle_sCAL() when using fixed point arithmetic,
|
||||||
|
causing out-of-bounds read in png_set_sCAL() because of failure to copy
|
||||||
|
the string terminators. This bug was introduced in libpng-1.0.6 (Frank
|
||||||
|
Busse).
|
||||||
|
|
||||||
|
version 1.4.10rc01 [March 2, 2012]
|
||||||
|
Removed the png_free() of unused png_ptr->current_text from pngread.c.
|
||||||
|
|
||||||
|
version 1.4.10rc02 [March 6, 2012]
|
||||||
|
Fixed PNG_LIBPNG_BUILD_BASE_TYPE definition in png.h
|
||||||
|
|
||||||
|
version 1.4.10 [March 15, 2012]
|
||||||
|
No changes.
|
||||||
|
|
||||||
|
version 1.4.11 [March 29, 2012]
|
||||||
|
Revised png_set_text_2() to avoid potential memory corruption (fixes
|
||||||
|
CVE-2011-3048).
|
||||||
|
Prevent PNG_EXPAND+PNG_SHIFT doing the shift twice.
|
||||||
|
|
||||||
|
version 1.4.12 [July 10, 2012]
|
||||||
|
Added two images to contrib/pngsuite (1-bit and 2-bit transparent grayscale),
|
||||||
|
and renamed three whose names were inconsistent with those in
|
||||||
|
pngsuite/README.txt.
|
||||||
|
Changed "a+w" to "u+w" in Makefile.in to fix CVE-2012-3386.
|
||||||
|
|
||||||
|
Send comments/corrections/commendations to glennrp at users.sourceforge.net
|
||||||
|
or to png-mng-implement at lists.sf.net (subscription required; visit
|
||||||
|
https://lists.sourceforge.net/lists/listinfo/png-mng-implement).
|
||||||
|
|
||||||
Glenn R-P
|
Glenn R-P
|
||||||
*/ }
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
360
CMakeLists.txt
@@ -1,11 +1,28 @@
|
|||||||
cmake_minimum_required(VERSION 2.4.3)
|
cmake_minimum_required(VERSION 2.4.4)
|
||||||
|
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
|
||||||
|
|
||||||
if(UNIX AND NOT DEFINED CMAKE_BUILD_TYPE)
|
if(UNIX AND NOT DEFINED CMAKE_BUILD_TYPE)
|
||||||
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of
|
if(CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION EQUAL 4)
|
||||||
build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug
|
# workaround CMake 2.4.x bug
|
||||||
Release RelWithDebInfo MinSizeRel.")
|
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
|
||||||
|
"Choose the type of build, options are:
|
||||||
|
None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used)
|
||||||
|
Debug
|
||||||
|
Release
|
||||||
|
RelWithDebInfo
|
||||||
|
MinSizeRel.")
|
||||||
|
else()
|
||||||
|
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
|
||||||
|
"Choose the type of build, options are:
|
||||||
|
None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used)
|
||||||
|
Debug
|
||||||
|
Release
|
||||||
|
RelWithDebInfo
|
||||||
|
MinSizeRel.")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
project(PNG C)
|
project(libpng C)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
|
||||||
# Copyright (C) 2007-2010 Glenn Randers-Pehrson
|
# Copyright (C) 2007-2010 Glenn Randers-Pehrson
|
||||||
@@ -16,28 +33,26 @@ enable_testing()
|
|||||||
|
|
||||||
set(PNGLIB_MAJOR 1)
|
set(PNGLIB_MAJOR 1)
|
||||||
set(PNGLIB_MINOR 4)
|
set(PNGLIB_MINOR 4)
|
||||||
set(PNGLIB_RELEASE 0)
|
set(PNGLIB_RELEASE 12)
|
||||||
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})
|
||||||
|
|
||||||
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
|
|
||||||
|
|
||||||
# needed packages
|
# needed packages
|
||||||
find_package(ZLIB REQUIRED)
|
find_package(ZLIB REQUIRED)
|
||||||
include_directories(${ZLIB_INCLUDE_DIR})
|
include_directories(${ZLIB_INCLUDE_DIR})
|
||||||
|
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
find_library(M_LIBRARY
|
find_library(M_LIBRARY
|
||||||
NAMES m
|
NAMES m
|
||||||
PATHS /usr/lib /usr/local/lib
|
PATHS /usr/lib /usr/local/lib
|
||||||
)
|
)
|
||||||
if(NOT M_LIBRARY)
|
if(NOT M_LIBRARY)
|
||||||
message(STATUS
|
message(STATUS
|
||||||
"math library 'libm' not found - floating point support disabled")
|
"math library 'libm' not found - floating point support disabled")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
# not needed on windows
|
# not needed on windows
|
||||||
set(M_LIBRARY "")
|
set(M_LIBRARY "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# COMMAND LINE OPTIONS
|
# COMMAND LINE OPTIONS
|
||||||
@@ -54,9 +69,9 @@ endif()
|
|||||||
|
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
option(PNG_TESTS "Build pngtest" NO)
|
option(PNG_TESTS "Build pngtest" NO)
|
||||||
else(MINGW)
|
else()
|
||||||
option(PNG_TESTS "Build pngtest" YES)
|
option(PNG_TESTS "Build pngtest" YES)
|
||||||
endif(MINGW)
|
endif()
|
||||||
|
|
||||||
option(PNG_NO_CONSOLE_IO "FIXME" YES)
|
option(PNG_NO_CONSOLE_IO "FIXME" YES)
|
||||||
option(PNG_NO_STDIO "FIXME" YES)
|
option(PNG_NO_STDIO "FIXME" YES)
|
||||||
@@ -68,21 +83,22 @@ option(PNGARG "FIXME" YES)
|
|||||||
# maybe needs improving, but currently I don't know when we can enable what :)
|
# maybe needs improving, but currently I don't know when we can enable what :)
|
||||||
set(png_asm_tmp "OFF")
|
set(png_asm_tmp "OFF")
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
find_program(uname_executable NAMES uname PATHS /bin /usr/bin /usr/local/bin)
|
find_program(uname_executable NAMES uname PATHS /bin /usr/bin /usr/local/bin)
|
||||||
if(uname_executable)
|
if(uname_executable)
|
||||||
EXEC_PROGRAM(${uname_executable} ARGS --machine OUTPUT_VARIABLE uname_output)
|
exec_program(${uname_executable}
|
||||||
if("uname_output" MATCHES "^.*i[1-9]86.*$")
|
ARGS --machine OUTPUT_VARIABLE uname_output)
|
||||||
|
if("uname_output" MATCHES "^.*i[1-9]86.*$")
|
||||||
set(png_asm_tmp "ON")
|
set(png_asm_tmp "ON")
|
||||||
else("uname_output" MATCHES "^.*i[1-9]86.*$")
|
else("uname_output" MATCHES "^.*i[1-9]86.*$")
|
||||||
set(png_asm_tmp "OFF")
|
set(png_asm_tmp "OFF")
|
||||||
endif("uname_output" MATCHES "^.*i[1-9]86.*$")
|
endif("uname_output" MATCHES "^.*i[1-9]86.*$")
|
||||||
endif(uname_executable)
|
endif(uname_executable)
|
||||||
else()
|
else()
|
||||||
# this env var is normally only set on win64
|
# this env var is normally only set on win64
|
||||||
SET(TEXT "ProgramFiles(x86)")
|
set(TEXT "ProgramFiles(x86)")
|
||||||
if("$ENV{${TEXT}}" STREQUAL "")
|
if("$ENV{${TEXT}}" STREQUAL "")
|
||||||
set(png_asm_tmp "ON")
|
set(png_asm_tmp "ON")
|
||||||
endif("$ENV{${TEXT}}" STREQUAL "")
|
endif("$ENV{${TEXT}}" STREQUAL "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# SET LIBNAME
|
# SET LIBNAME
|
||||||
@@ -91,165 +107,281 @@ set(PNG_LIB_NAME png${PNGLIB_MAJOR}${PNGLIB_MINOR})
|
|||||||
# to distinguish between debug and release lib
|
# to distinguish between debug and release lib
|
||||||
set(CMAKE_DEBUG_POSTFIX "d")
|
set(CMAKE_DEBUG_POSTFIX "d")
|
||||||
|
|
||||||
|
|
||||||
# OUR SOURCES
|
# OUR SOURCES
|
||||||
|
set(libpng_public_hdrs
|
||||||
|
png.h
|
||||||
|
pngconf.h
|
||||||
|
)
|
||||||
set(libpng_sources
|
set(libpng_sources
|
||||||
png.h
|
${libpng_public_hdrs}
|
||||||
pngconf.h
|
pngpriv.h
|
||||||
pngpriv.h
|
png.c
|
||||||
png.c
|
pngerror.c
|
||||||
pngerror.c
|
pngget.c
|
||||||
pngget.c
|
pngmem.c
|
||||||
pngmem.c
|
pngpread.c
|
||||||
pngpread.c
|
pngread.c
|
||||||
pngread.c
|
pngrio.c
|
||||||
pngrio.c
|
pngrtran.c
|
||||||
pngrtran.c
|
pngrutil.c
|
||||||
pngrutil.c
|
pngset.c
|
||||||
pngset.c
|
pngtrans.c
|
||||||
pngtrans.c
|
pngwio.c
|
||||||
pngwio.c
|
pngwrite.c
|
||||||
pngwrite.c
|
pngwtran.c
|
||||||
pngwtran.c
|
pngwutil.c
|
||||||
pngwutil.c
|
|
||||||
)
|
)
|
||||||
set(pngtest_sources
|
set(pngtest_sources
|
||||||
pngtest.c
|
pngtest.c
|
||||||
)
|
)
|
||||||
# SOME NEEDED DEFINITIONS
|
# SOME NEEDED DEFINITIONS
|
||||||
|
|
||||||
add_definitions(-DPNG_CONFIGURE_LIBPNG)
|
add_definitions(-DPNG_CONFIGURE_LIBPNG)
|
||||||
|
|
||||||
|
if(_AIX)
|
||||||
|
add_definitions(-D_ALL_SOURCE)
|
||||||
|
endif(_AIX)
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
add_definitions(-DPNG_NO_MODULEDEF -D_CRT_SECURE_NO_DEPRECATE)
|
add_definitions(-DPNG_NO_MODULEDEF -D_CRT_SECURE_NO_DEPRECATE)
|
||||||
endif(MSVC)
|
endif(MSVC)
|
||||||
|
|
||||||
if(PNG_SHARED OR NOT MSVC)
|
if(PNG_SHARED OR NOT MSVC)
|
||||||
#if building msvc static this has NOT to be defined
|
#if building msvc static this has NOT to be defined
|
||||||
add_definitions(-DZLIB_DLL)
|
add_definitions(-DZLIB_DLL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(PNG_CONSOLE_IO_SUPPORTED)
|
if(PNG_CONSOLE_IO_SUPPORTED)
|
||||||
add_definitions(-DPNG_CONSOLE_IO_SUPPORTED)
|
add_definitions(-DPNG_CONSOLE_IO_SUPPORTED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PNG_NO_CONSOLE_IO)
|
if(PNG_NO_CONSOLE_IO)
|
||||||
add_definitions(-DPNG_NO_CONSOLE_IO)
|
add_definitions(-DPNG_NO_CONSOLE_IO)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PNG_NO_STDIO)
|
if(PNG_NO_STDIO)
|
||||||
add_definitions(-DPNG_NO_STDIO)
|
add_definitions(-DPNG_NO_STDIO)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PNG_DEBUG)
|
if(PNG_DEBUG)
|
||||||
add_definitions(-DPNG_DEBUG)
|
add_definitions(-DPNG_DEBUG)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT M_LIBRARY AND NOT WIN32)
|
if(NOT M_LIBRARY AND NOT WIN32)
|
||||||
add_definitions(-DPNG_NO_FLOATING_POINT_SUPPORTED)
|
add_definitions(-DPNG_NO_FLOATING_POINT_SUPPORTED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# NOW BUILD OUR TARGET
|
# NOW BUILD OUR TARGET
|
||||||
include_directories(${PNG_SOURCE_DIR} ${ZLIB_INCLUDE_DIR})
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${ZLIB_INCLUDE_DIR})
|
||||||
|
|
||||||
if(PNG_SHARED)
|
if(PNG_SHARED)
|
||||||
add_library(${PNG_LIB_NAME} SHARED ${libpng_sources})
|
add_library(${PNG_LIB_NAME} SHARED ${libpng_sources})
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
# msvc does not append 'lib' - do it here to have consistent name
|
# msvc does not append 'lib' - do it here to have consistent name
|
||||||
set_target_properties(${PNG_LIB_NAME} PROPERTIES PREFIX "lib")
|
set_target_properties(${PNG_LIB_NAME} PROPERTIES PREFIX "lib")
|
||||||
endif()
|
set_target_properties(${PNG_LIB_NAME} PROPERTIES IMPORT_PREFIX "lib")
|
||||||
target_link_libraries(${PNG_LIB_NAME} ${ZLIB_LIBRARY} ${M_LIBRARY})
|
endif()
|
||||||
|
target_link_libraries(${PNG_LIB_NAME} ${ZLIB_LIBRARY} ${M_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PNG_STATIC)
|
if(PNG_STATIC)
|
||||||
# does not work without changing name
|
# does not work without changing name
|
||||||
set(PNG_LIB_NAME_STATIC ${PNG_LIB_NAME}_static)
|
set(PNG_LIB_NAME_STATIC ${PNG_LIB_NAME}_static)
|
||||||
add_library(${PNG_LIB_NAME_STATIC} STATIC ${libpng_sources})
|
add_library(${PNG_LIB_NAME_STATIC} STATIC ${libpng_sources})
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
# msvc does not append 'lib' - do it here to have consistent name
|
# msvc does not append 'lib' - do it here to have consistent name
|
||||||
set_target_properties(${PNG_LIB_NAME_STATIC} PROPERTIES PREFIX "lib")
|
set_target_properties(${PNG_LIB_NAME_STATIC} PROPERTIES PREFIX "lib")
|
||||||
endif()
|
endif()
|
||||||
|
target_link_libraries(${PNG_LIB_NAME_STATIC} ${ZLIB_LIBRARY} ${M_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(PNG_SHARED AND WIN32)
|
if(PNG_SHARED AND WIN32)
|
||||||
set_target_properties(${PNG_LIB_NAME} PROPERTIES DEFINE_SYMBOL PNG_BUILD_DLL)
|
set_target_properties(${PNG_LIB_NAME} PROPERTIES DEFINE_SYMBOL PNG_BUILD_DLL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PNG_TESTS AND PNG_SHARED)
|
if(PNG_TESTS AND PNG_SHARED)
|
||||||
# does not work with msvc due to png_lib_ver issue
|
# does not work with msvc due to png_lib_ver issue
|
||||||
add_executable(pngtest ${pngtest_sources})
|
add_executable(pngtest ${pngtest_sources})
|
||||||
target_link_libraries(pngtest ${PNG_LIB_NAME})
|
target_link_libraries(pngtest ${PNG_LIB_NAME})
|
||||||
add_test(pngtest pngtest ${PNG_SOURCE_DIR}/pngtest.png)
|
add_test(pngtest ./pngtest ${CMAKE_CURRENT_SOURCE_DIR}/pngtest.png)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
#
|
||||||
|
# Set a variable with CMake code which:
|
||||||
|
# Creates a symlink from src to dest (if possible) or alternatively
|
||||||
|
# copies if different.
|
||||||
|
macro(_png_generate_symlink_code CODE SRC DEST)
|
||||||
|
if(WIN32 AND NOT CYGWIN)
|
||||||
|
set(_png_gsc_message "Copying ${SRC} to ${DEST} if needed")
|
||||||
|
set(_png_gsc_operation "copy_if_different")
|
||||||
|
else()
|
||||||
|
set(_png_gsc_message "Symlinking ${SRC} to ${DEST}")
|
||||||
|
set(_png_gsc_operation "create_symlink")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(${CODE} "
|
||||||
|
message(STATUS \"${_png_gsc_message}\")
|
||||||
|
execute_process(COMMAND \${CMAKE_COMMAND} -E ${_png_gsc_operation}
|
||||||
|
\"${SRC}\" \"${DEST}\")
|
||||||
|
")
|
||||||
|
endmacro()
|
||||||
|
|
||||||
# CREATE PKGCONFIG FILES
|
# CREATE PKGCONFIG FILES
|
||||||
# we use the same files like ./configure, so we have to set its vars
|
# we use the same files like ./configure, so we have to set its vars
|
||||||
|
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
|
||||||
|
set(CMAKE_INSTALL_LIBDIR lib)
|
||||||
|
endif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
|
||||||
set(prefix ${CMAKE_INSTALL_PREFIX})
|
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||||
set(exec_prefix ${CMAKE_INSTALL_PREFIX})
|
set(exec_prefix ${CMAKE_INSTALL_PREFIX})
|
||||||
set(libdir ${CMAKE_INSTALL_PREFIX}/lib)
|
set(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
|
||||||
set(includedir ${CMAKE_INSTALL_PREFIX}/include)
|
set(includedir ${CMAKE_INSTALL_PREFIX}/include)
|
||||||
|
set(LIBS "-lz -lm")
|
||||||
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc @ONLY)
|
||||||
|
_png_generate_symlink_code(PNG_PC_INSTALL_CODE
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/libpng.pc)
|
||||||
|
install(CODE ${PNG_PC_INSTALL_CODE})
|
||||||
|
|
||||||
configure_file(${PNG_SOURCE_DIR}/libpng.pc.in
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in
|
||||||
${PNG_BINARY_DIR}/libpng.pc)
|
${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config @ONLY)
|
||||||
configure_file(${PNG_SOURCE_DIR}/libpng-config.in
|
_png_generate_symlink_code(PNG_CONFIG_INSTALL_CODE
|
||||||
${PNG_BINARY_DIR}/libpng-config)
|
${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config
|
||||||
configure_file(${PNG_SOURCE_DIR}/libpng.pc.in
|
${CMAKE_CURRENT_BINARY_DIR}/libpng-config)
|
||||||
${PNG_BINARY_DIR}/${PNGLIB_NAME}.pc)
|
install(CODE ${PNG_CONFIG_INSTALL_CODE})
|
||||||
configure_file(${PNG_SOURCE_DIR}/libpng-config.in
|
|
||||||
${PNG_BINARY_DIR}/${PNGLIB_NAME}-config)
|
|
||||||
|
|
||||||
# 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 14.${PNGLIB_RELEASE}.1.4.0
|
# VERSION 14.${PNGLIB_RELEASE}.1.4.12
|
||||||
VERSION 14.${PNGLIB_RELEASE}.0
|
VERSION 14.${PNGLIB_RELEASE}.0
|
||||||
SOVERSION 14
|
SOVERSION 14
|
||||||
CLEAN_DIRECT_OUTPUT 1)
|
CLEAN_DIRECT_OUTPUT 1)
|
||||||
endif()
|
endif()
|
||||||
if(PNG_STATIC)
|
if(PNG_STATIC)
|
||||||
if(NOT WIN32)
|
# MSVC doesn't use a different file extension for shared vs. static
|
||||||
# that's uncool on win32 - it overwrites our static import lib...
|
# libs. We are able to change OUTPUT_NAME to remove the _static
|
||||||
|
# for all other platforms.
|
||||||
|
if(NOT MSVC)
|
||||||
set_target_properties(${PNG_LIB_NAME_STATIC} PROPERTIES
|
set_target_properties(${PNG_LIB_NAME_STATIC} PROPERTIES
|
||||||
OUTPUT_NAME ${PNG_LIB_NAME}
|
OUTPUT_NAME ${PNG_LIB_NAME}
|
||||||
CLEAN_DIRECT_OUTPUT 1)
|
CLEAN_DIRECT_OUTPUT 1)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# If CMake > 2.4.x, we set a variable used below to export
|
||||||
|
# targets to an export file.
|
||||||
|
# TODO: Use VERSION_GREATER after our cmake_minimum_required >= 2.6.2
|
||||||
|
if(CMAKE_MAJOR_VERSION GREATER 1 AND CMAKE_MINOR_VERSION GREATER 4)
|
||||||
|
set(PNG_EXPORT_RULE EXPORT libpng)
|
||||||
|
elseif(CMAKE_MAJOR_VERSION GREATER 2) # future proof
|
||||||
|
set(PNG_EXPORT_RULE EXPORT libpng)
|
||||||
|
endif()
|
||||||
|
|
||||||
# INSTALL
|
# INSTALL
|
||||||
if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
|
if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
|
||||||
if(PNG_SHARED)
|
if(PNG_SHARED)
|
||||||
install(TARGETS ${PNG_LIB_NAME}
|
install(TARGETS ${PNG_LIB_NAME}
|
||||||
RUNTIME DESTINATION bin
|
${PNG_EXPORT_RULE}
|
||||||
LIBRARY DESTINATION lib
|
RUNTIME DESTINATION bin
|
||||||
ARCHIVE DESTINATION lib)
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
|
||||||
|
# Create a symlink for libpng.dll.a => libpng14.dll.a on Cygwin
|
||||||
|
if(CYGWIN)
|
||||||
|
_png_generate_symlink_code(PNG_SHARED_IMPLIB_INSTALL_CODE
|
||||||
|
${PNGLIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX}
|
||||||
|
libpng${CMAKE_IMPORT_LIBRARY_SUFFIX})
|
||||||
|
install(CODE ${PNG_SHARED_IMPLIB_INSTALL_CODE})
|
||||||
|
install(FILES
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_IMPORT_LIBRARY_SUFFIX}
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
endif()
|
endif()
|
||||||
if(PNG_STATIC)
|
|
||||||
install(TARGETS ${PNG_LIB_NAME_STATIC}
|
if(NOT WIN32)
|
||||||
LIBRARY DESTINATION lib
|
IF(CMAKE_LIBRARY_OUTPUT_DIRECTORY)
|
||||||
ARCHIVE DESTINATION lib)
|
_png_generate_symlink_code(PNG_SHARED_INSTALL_CODE
|
||||||
|
${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${PNGLIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||||
|
${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libpng${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||||
|
install(CODE ${PNG_SHARED_INSTALL_CODE})
|
||||||
|
install(FILES
|
||||||
|
${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libpng${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
ELSE(CMAKE_LIBRARY_OUTPUT_DIRECTORY)
|
||||||
|
_png_generate_symlink_code(PNG_SHARED_INSTALL_CODE
|
||||||
|
${PNGLIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||||
|
libpng${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||||
|
install(CODE ${PNG_SHARED_INSTALL_CODE})
|
||||||
|
install(FILES
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
ENDIF(CMAKE_LIBRARY_OUTPUT_DIRECTORY)
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PNG_STATIC)
|
||||||
|
install(TARGETS ${PNG_LIB_NAME_STATIC}
|
||||||
|
${PNG_EXPORT_RULE}
|
||||||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
if(NOT WIN32 OR CYGWIN)
|
||||||
|
IF(CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
|
||||||
|
_png_generate_symlink_code(PNG_STATIC_INSTALL_CODE
|
||||||
|
${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${PNGLIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||||
|
${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/libpng${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||||
|
install(CODE ${PNG_STATIC_INSTALL_CODE})
|
||||||
|
install(FILES
|
||||||
|
${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/libpng${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
ELSE(CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
|
||||||
|
_png_generate_symlink_code(PNG_STATIC_INSTALL_CODE
|
||||||
|
${PNGLIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||||
|
libpng${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||||
|
install(CODE ${PNG_STATIC_INSTALL_CODE})
|
||||||
|
install(FILES
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
ENDIF(CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL )
|
if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL )
|
||||||
install(FILES png.h pngconf.h pngpriv.h DESTINATION include)
|
install(FILES ${libpng_public_hdrs} DESTINATION include)
|
||||||
install(FILES png.h pngconf.h pngpriv.h DESTINATION include/${PNGLIB_NAME})
|
install(FILES ${libpng_public_hdrs} DESTINATION include/${PNGLIB_NAME})
|
||||||
endif()
|
endif()
|
||||||
if(NOT SKIP_INSTALL_EXECUTABLES AND NOT SKIP_INSTALL_ALL )
|
if(NOT SKIP_INSTALL_EXECUTABLES AND NOT SKIP_INSTALL_ALL )
|
||||||
install(PROGRAMS ${PNG_BINARY_DIR}/libpng-config DESTINATION bin)
|
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config DESTINATION bin)
|
||||||
install(PROGRAMS ${PNG_BINARY_DIR}/${PNGLIB_NAME}-config DESTINATION bin)
|
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config
|
||||||
|
DESTINATION bin)
|
||||||
endif()
|
endif()
|
||||||
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
|
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
|
||||||
install(FILES libpng.3 libpngpf.3 DESTINATION man/man3)
|
# Install man pages
|
||||||
install(FILES png.5 DESTINATION man/man5)
|
if(NOT PNG_MAN_DIR)
|
||||||
install(FILES ${PNG_BINARY_DIR}/libpng.pc DESTINATION lib/pkgconfig)
|
set(PNG_MAN_DIR "share/man")
|
||||||
install(FILES ${PNG_BINARY_DIR}/libpng-config DESTINATION bin)
|
endif()
|
||||||
install(FILES ${PNG_BINARY_DIR}/${PNGLIB_NAME}.pc DESTINATION lib/pkgconfig)
|
install(FILES libpng.3 libpngpf.3 DESTINATION ${PNG_MAN_DIR}/man3)
|
||||||
install(FILES ${PNG_BINARY_DIR}/${PNGLIB_NAME}-config DESTINATION bin)
|
install(FILES png.5 DESTINATION ${PNG_MAN_DIR}/man5)
|
||||||
|
# Install pkg-config files
|
||||||
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
|
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config
|
||||||
|
DESTINATION bin)
|
||||||
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
|
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config
|
||||||
|
DESTINATION bin)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# what's with libpng.txt and all the extra files?
|
# On versions of CMake that support it, create an export file CMake
|
||||||
|
# users can include() to import our targets
|
||||||
|
if(PNG_EXPORT_RULE AND NOT SKIP_INSTALL_EXPORT AND NOT SKIP_INSTALL_ALL )
|
||||||
|
install(EXPORT libpng DESTINATION lib/libpng FILE lib${PNG_LIB_NAME}.cmake)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# what's with libpng-manual.txt and all the extra files?
|
||||||
|
|
||||||
|
|
||||||
# UNINSTALL
|
# UNINSTALL
|
||||||
|
|||||||
7
INSTALL
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Installing libpng version 1.4.0 - January 3, 2010
|
Installing libpng version 1.4.12 - July 10, 2012
|
||||||
|
|
||||||
On Unix/Linux and similar systems, you can simply type
|
On Unix/Linux and similar systems, you can simply type
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ to have access to the zlib.h and zconf.h include files that
|
|||||||
correspond to the version of zlib that's installed.
|
correspond to the version of zlib that's installed.
|
||||||
|
|
||||||
You can rename the directories that you downloaded (they
|
You can rename the directories that you downloaded (they
|
||||||
might be called "libpng-1.4.0" or "libpng14" and "zlib-1.2.3"
|
might be called "libpng-1.4.12" or "libpng14" and "zlib-1.2.3"
|
||||||
or "zlib123") so that you have directories called "zlib" and "libpng".
|
or "zlib123") so that you have directories called "zlib" and "libpng".
|
||||||
|
|
||||||
Your directory structure should look like this:
|
Your directory structure should look like this:
|
||||||
@@ -62,7 +62,7 @@ Your directory structure should look like this:
|
|||||||
configure.ac, configure, Makefile.am, Makefile.in,
|
configure.ac, configure, Makefile.am, Makefile.in,
|
||||||
autogen.sh, config.guess, ltmain.sh, missing,
|
autogen.sh, config.guess, ltmain.sh, missing,
|
||||||
aclocal.m4, config.h.in, config.sub,
|
aclocal.m4, config.h.in, config.sub,
|
||||||
depcomp, install-sh, mkinstalldirs, test-pngtest.sh
|
depcomp, install-sh, test-pngtest.sh
|
||||||
contrib
|
contrib
|
||||||
gregbook
|
gregbook
|
||||||
pngminim
|
pngminim
|
||||||
@@ -73,6 +73,7 @@ Your directory structure should look like this:
|
|||||||
cbuilder5 (Borland)
|
cbuilder5 (Borland)
|
||||||
visualc6 (msvc)
|
visualc6 (msvc)
|
||||||
visualc71
|
visualc71
|
||||||
|
vstudio
|
||||||
xcode
|
xcode
|
||||||
scripts
|
scripts
|
||||||
makefile.*
|
makefile.*
|
||||||
|
|||||||
6
LICENSE
@@ -10,8 +10,8 @@ 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.4.0, January 3, 2010, are
|
libpng versions 1.2.6, August 15, 2004, through 1.4.12, July 10, 2012, are
|
||||||
Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are
|
Copyright (c) 2004, 2006-2010 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
|
||||||
January 3, 2010
|
July 10, 2012
|
||||||
|
|||||||
55
Makefile.am
@@ -1,12 +1,6 @@
|
|||||||
# Makefile.am:
|
# Makefile.am:
|
||||||
# Source file for Makefile.in (and hence Makefile)
|
# Source file for Makefile.in (and hence Makefile)
|
||||||
#
|
#
|
||||||
# Makefile.am need only be changed on a major version number
|
|
||||||
# change (e.g. libpng12 --> libpng13). In that case seach
|
|
||||||
# this file for every instance of the old base name (libpng12)
|
|
||||||
# and change to the new one (libpng13), then change the
|
|
||||||
# -version-number settings below so that the new values have
|
|
||||||
# the correct major part (first field).
|
|
||||||
|
|
||||||
PNGLIB_BASENAME= libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@
|
PNGLIB_BASENAME= libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@
|
||||||
|
|
||||||
@@ -16,41 +10,46 @@ AUTOMAKE_OPTIONS = foreign
|
|||||||
# test programs - run on make check, make distcheck
|
# test programs - run on make check, make distcheck
|
||||||
check_PROGRAMS= pngtest
|
check_PROGRAMS= pngtest
|
||||||
pngtest_SOURCES = pngtest.c
|
pngtest_SOURCES = pngtest.c
|
||||||
pngtest_LDADD = libpng14.la
|
pngtest_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la
|
||||||
TESTS = test-pngtest.sh
|
TESTS = test-pngtest.sh
|
||||||
TESTS_ENVIRONMENT= srcdir=$(srcdir)
|
TESTS_ENVIRONMENT= srcdir=$(srcdir)
|
||||||
|
|
||||||
# man pages
|
# man pages
|
||||||
dist_man_MANS= libpng.3 libpngpf.3 png.5
|
dist_man_MANS= libpng.3 libpngpf.3 png.5
|
||||||
|
|
||||||
# generate the -config scripts if required
|
# generate the -config scripts if required
|
||||||
binconfigs= libpng14-config
|
binconfigs= libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config
|
||||||
EXTRA_SCRIPTS= libpng-config libpng14-config
|
EXTRA_SCRIPTS= libpng-config libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config
|
||||||
bin_SCRIPTS= @binconfigs@
|
bin_SCRIPTS= @binconfigs@
|
||||||
|
|
||||||
# rules to build libpng, only build the old library on request
|
# rules to build libpng, only build the old library on request
|
||||||
lib_LTLIBRARIES=libpng14.la
|
lib_LTLIBRARIES=libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la
|
||||||
EXTRA_LTLIBRARIES= libpng.la
|
# EXTRA_LTLIBRARIES= libpng.la
|
||||||
libpng14_la_SOURCES = png.c pngset.c pngget.c pngrutil.c \
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = png.c pngset.c pngget.c pngrutil.c \
|
||||||
pngtrans.c pngwutil.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 \
|
||||||
png.h pngconf.h pngpriv.h
|
png.h pngconf.h pngpriv.h
|
||||||
|
|
||||||
libpng14_la_CPPFLAGS = @LIBPNG_DEFINES@
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS = @LIBPNG_DEFINES@
|
||||||
|
|
||||||
# MAJOR UPGRADE: the version-number settings below must be changed.
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS = -no-undefined -export-dynamic \
|
||||||
libpng14_la_LDFLAGS = -no-undefined -export-dynamic \
|
-version-number @PNGLIB_MAJOR@@PNGLIB_MINOR@:@PNGLIB_RELEASE@:0
|
||||||
-version-number 14:@PNGLIB_RELEASE@:0
|
|
||||||
|
|
||||||
if HAVE_LD_VERSION_SCRIPT
|
if HAVE_LD_VERSION_SCRIPT
|
||||||
# Versioned symbols and restricted exports
|
# Versioned symbols and restricted exports
|
||||||
libpng14_la_LDFLAGS += -Wl,--version-script=libpng.vers
|
|
||||||
libpng14_la_DEPENDENCIES = libpng.vers
|
if HAVE_SOLARIS_LD
|
||||||
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS += -Wl,-M -Wl,libpng.vers
|
||||||
|
else
|
||||||
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS += -Wl,--version-script=libpng.vers
|
||||||
|
endif
|
||||||
|
|
||||||
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.vers
|
||||||
else
|
else
|
||||||
# Only restricted exports when possible
|
# Only restricted exports when possible
|
||||||
libpng14_la_LDFLAGS += -export-symbols libpng.sym
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS += -export-symbols libpng.sym
|
||||||
libpng14_la_DEPENDENCIES = libpng.sym
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.sym
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Avoid depending upon Character Ranges.
|
# Avoid depending upon Character Ranges.
|
||||||
@@ -63,15 +62,15 @@ pkginclude_HEADERS= png.h pngconf.h
|
|||||||
# pkg-config stuff, note that libpng.pc is always required in order
|
# pkg-config stuff, note that libpng.pc is always required in order
|
||||||
# to get the correct library
|
# to get the correct library
|
||||||
pkgconfigdir = @pkgconfigdir@
|
pkgconfigdir = @pkgconfigdir@
|
||||||
pkgconfig_DATA = libpng14.pc
|
pkgconfig_DATA = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc
|
||||||
|
|
||||||
#extra source distribution files.
|
#extra source distribution files.
|
||||||
EXTRA_DIST= \
|
EXTRA_DIST= \
|
||||||
ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO \
|
ANNOUNCE CHANGES INSTALL LICENSE README TODO \
|
||||||
pngtest.png pngbar.png pngnow.png pngbar.jpg autogen.sh \
|
pngtest.png pngbar.png pngnow.png pngbar.jpg autogen.sh \
|
||||||
${srcdir}/projects/cbuilder5/* \
|
|
||||||
${srcdir}/projects/visualc6/* \
|
${srcdir}/projects/visualc6/* \
|
||||||
${srcdir}/projects/visualc71/* \
|
${srcdir}/projects/visualc71/* \
|
||||||
|
${srcdir}/projects/vstudio/* \
|
||||||
${srcdir}/projects/xcode/* \
|
${srcdir}/projects/xcode/* \
|
||||||
${srcdir}/scripts/* \
|
${srcdir}/scripts/* \
|
||||||
${srcdir}/contrib/gregbook/* \
|
${srcdir}/contrib/gregbook/* \
|
||||||
@@ -80,9 +79,9 @@ EXTRA_DIST= \
|
|||||||
${srcdir}/contrib/pngsuite/* \
|
${srcdir}/contrib/pngsuite/* \
|
||||||
${srcdir}/contrib/visupng/* \
|
${srcdir}/contrib/visupng/* \
|
||||||
$(TESTS) \
|
$(TESTS) \
|
||||||
example.c libpng-1.4.0.txt
|
example.c libpng-1.4.12.txt
|
||||||
|
|
||||||
CLEANFILES= pngout.png libpng14.pc libpng14-config libpng.vers \
|
CLEANFILES= pngout.png libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config libpng.vers \
|
||||||
libpng.sym
|
libpng.sym
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess config.h.in \
|
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess config.h.in \
|
||||||
@@ -121,13 +120,13 @@ install-data-hook:
|
|||||||
cd $(DESTDIR)$(pkgconfigdir); rm -f libpng.pc
|
cd $(DESTDIR)$(pkgconfigdir); rm -f libpng.pc
|
||||||
cd $(DESTDIR)$(pkgconfigdir); $(LN_S) $(PNGLIB_BASENAME).pc libpng.pc
|
cd $(DESTDIR)$(pkgconfigdir); $(LN_S) $(PNGLIB_BASENAME).pc libpng.pc
|
||||||
|
|
||||||
# do evil things to libpng to cause libpng14 to be used
|
# do evil things to libpng to cause libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ to be used
|
||||||
install-exec-hook:
|
install-exec-hook:
|
||||||
cd $(DESTDIR)$(bindir); rm -f libpng-config
|
cd $(DESTDIR)$(bindir); rm -f libpng-config
|
||||||
cd $(DESTDIR)$(bindir); $(LN_S) $(PNGLIB_BASENAME)-config libpng-config
|
cd $(DESTDIR)$(bindir); $(LN_S) $(PNGLIB_BASENAME)-config libpng-config
|
||||||
@set -x;\
|
@set -x;\
|
||||||
cd $(DESTDIR)$(libdir);\
|
cd $(DESTDIR)$(libdir);\
|
||||||
for ext in a la so sl dylib; do\
|
for ext in a la so so.@PNGLIB_MAJOR@@PNGLIB_MINOR@.@PNGLIB_RELEASE@ sl dylib dll.a; do\
|
||||||
rm -f libpng.$$ext;\
|
rm -f libpng.$$ext;\
|
||||||
if test -f $(PNGLIB_BASENAME).$$ext; then\
|
if test -f $(PNGLIB_BASENAME).$$ext; then\
|
||||||
$(LN_S) $(PNGLIB_BASENAME).$$ext libpng.$$ext;\
|
$(LN_S) $(PNGLIB_BASENAME).$$ext libpng.$$ext;\
|
||||||
|
|||||||
307
Makefile.in
@@ -1,4 +1,4 @@
|
|||||||
# Makefile.in generated by automake 1.11 from Makefile.am.
|
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
@@ -18,12 +18,6 @@
|
|||||||
# Makefile.am:
|
# Makefile.am:
|
||||||
# Source file for Makefile.in (and hence Makefile)
|
# Source file for Makefile.in (and hence Makefile)
|
||||||
#
|
#
|
||||||
# Makefile.am need only be changed on a major version number
|
|
||||||
# change (e.g. libpng12 --> libpng13). In that case seach
|
|
||||||
# this file for every instance of the old base name (libpng12)
|
|
||||||
# and change to the new one (libpng13), then change the
|
|
||||||
# -version-number settings below so that the new values have
|
|
||||||
# the correct major part (first field).
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -55,14 +49,14 @@ DIST_COMMON = README $(am__configure_deps) $(dist_man_MANS) \
|
|||||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||||
$(srcdir)/libpng-config.in $(srcdir)/libpng.pc.in \
|
$(srcdir)/libpng-config.in $(srcdir)/libpng.pc.in \
|
||||||
$(top_srcdir)/configure INSTALL TODO config.guess config.sub \
|
$(top_srcdir)/configure INSTALL TODO config.guess config.sub \
|
||||||
depcomp install-sh ltmain.sh missing mkinstalldirs
|
depcomp install-sh ltmain.sh missing
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||||
configure.lineno config.status.lineno
|
configure.lineno config.status.lineno
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = config.h
|
CONFIG_HEADER = config.h
|
||||||
CONFIG_CLEAN_FILES = libpng.pc libpng-config
|
CONFIG_CLEAN_FILES = libpng.pc libpng-config
|
||||||
CONFIG_CLEAN_VPATH_FILES =
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
@@ -91,25 +85,33 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
|
|||||||
"$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" \
|
"$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" \
|
||||||
"$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pkgincludedir)"
|
"$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pkgincludedir)"
|
||||||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||||
libpng_la_LIBADD =
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LIBADD =
|
||||||
libpng_la_SOURCES = libpng.c
|
am_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS = \
|
||||||
libpng_la_OBJECTS = libpng.lo
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.lo \
|
||||||
libpng14_la_LIBADD =
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo \
|
||||||
am_libpng14_la_OBJECTS = libpng14_la-png.lo libpng14_la-pngset.lo \
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.lo \
|
||||||
libpng14_la-pngget.lo libpng14_la-pngrutil.lo \
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo \
|
||||||
libpng14_la-pngtrans.lo libpng14_la-pngwutil.lo \
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo \
|
||||||
libpng14_la-pngread.lo libpng14_la-pngrio.lo \
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo \
|
||||||
libpng14_la-pngwio.lo libpng14_la-pngwrite.lo \
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.lo \
|
||||||
libpng14_la-pngrtran.lo libpng14_la-pngwtran.lo \
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrio.lo \
|
||||||
libpng14_la-pngmem.lo libpng14_la-pngerror.lo \
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.lo \
|
||||||
libpng14_la-pngpread.lo
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwrite.lo \
|
||||||
libpng14_la_OBJECTS = $(am_libpng14_la_OBJECTS)
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo \
|
||||||
libpng14_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.lo \
|
||||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo \
|
||||||
$(libpng14_la_LDFLAGS) $(LDFLAGS) -o $@
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo \
|
||||||
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo
|
||||||
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS = \
|
||||||
|
$(am_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS)
|
||||||
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LINK = $(LIBTOOL) --tag=CC \
|
||||||
|
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||||
|
$(AM_CFLAGS) $(CFLAGS) \
|
||||||
|
$(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS) $(LDFLAGS) -o \
|
||||||
|
$@
|
||||||
am_pngtest_OBJECTS = pngtest.$(OBJEXT)
|
am_pngtest_OBJECTS = pngtest.$(OBJEXT)
|
||||||
pngtest_OBJECTS = $(am_pngtest_OBJECTS)
|
pngtest_OBJECTS = $(am_pngtest_OBJECTS)
|
||||||
pngtest_DEPENDENCIES = libpng14.la
|
pngtest_DEPENDENCIES = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la
|
||||||
SCRIPTS = $(bin_SCRIPTS)
|
SCRIPTS = $(bin_SCRIPTS)
|
||||||
DEFAULT_INCLUDES = -I.@am__isrc@
|
DEFAULT_INCLUDES = -I.@am__isrc@
|
||||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||||
@@ -124,8 +126,10 @@ CCLD = $(CC)
|
|||||||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||||
$(LDFLAGS) -o $@
|
$(LDFLAGS) -o $@
|
||||||
SOURCES = libpng.c $(libpng14_la_SOURCES) $(pngtest_SOURCES)
|
SOURCES = $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES) \
|
||||||
DIST_SOURCES = libpng.c $(libpng14_la_SOURCES) $(pngtest_SOURCES)
|
$(pngtest_SOURCES)
|
||||||
|
DIST_SOURCES = $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES) \
|
||||||
|
$(pngtest_SOURCES)
|
||||||
man3dir = $(mandir)/man3
|
man3dir = $(mandir)/man3
|
||||||
man5dir = $(mandir)/man5
|
man5dir = $(mandir)/man5
|
||||||
NROFF = nroff
|
NROFF = nroff
|
||||||
@@ -232,7 +236,7 @@ am__tar = @am__tar@
|
|||||||
am__untar = @am__untar@
|
am__untar = @am__untar@
|
||||||
|
|
||||||
# generate the -config scripts if required
|
# generate the -config scripts if required
|
||||||
binconfigs = libpng14-config
|
binconfigs = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config
|
||||||
bindir = @bindir@
|
bindir = @bindir@
|
||||||
build = @build@
|
build = @build@
|
||||||
build_alias = @build_alias@
|
build_alias = @build_alias@
|
||||||
@@ -258,7 +262,6 @@ libdir = @libdir@
|
|||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
localedir = @localedir@
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
lt_ECHO = @lt_ECHO@
|
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
@@ -283,42 +286,42 @@ PNGLIB_BASENAME = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@
|
|||||||
# libpng does not follow GNU file name conventions
|
# libpng does not follow GNU file name conventions
|
||||||
AUTOMAKE_OPTIONS = foreign
|
AUTOMAKE_OPTIONS = foreign
|
||||||
pngtest_SOURCES = pngtest.c
|
pngtest_SOURCES = pngtest.c
|
||||||
pngtest_LDADD = libpng14.la
|
pngtest_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la
|
||||||
TESTS = test-pngtest.sh
|
TESTS = test-pngtest.sh
|
||||||
TESTS_ENVIRONMENT = srcdir=$(srcdir)
|
TESTS_ENVIRONMENT = srcdir=$(srcdir)
|
||||||
|
|
||||||
# man pages
|
# man pages
|
||||||
dist_man_MANS = libpng.3 libpngpf.3 png.5
|
dist_man_MANS = libpng.3 libpngpf.3 png.5
|
||||||
EXTRA_SCRIPTS = libpng-config libpng14-config
|
EXTRA_SCRIPTS = libpng-config libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config
|
||||||
bin_SCRIPTS = @binconfigs@
|
bin_SCRIPTS = @binconfigs@
|
||||||
|
|
||||||
# rules to build libpng, only build the old library on request
|
# rules to build libpng, only build the old library on request
|
||||||
lib_LTLIBRARIES = libpng14.la
|
lib_LTLIBRARIES = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la
|
||||||
EXTRA_LTLIBRARIES = libpng.la
|
# EXTRA_LTLIBRARIES= libpng.la
|
||||||
libpng14_la_SOURCES = png.c pngset.c pngget.c pngrutil.c \
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = png.c pngset.c pngget.c pngrutil.c \
|
||||||
pngtrans.c pngwutil.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 \
|
||||||
png.h pngconf.h pngpriv.h
|
png.h pngconf.h pngpriv.h
|
||||||
|
|
||||||
libpng14_la_CPPFLAGS = @LIBPNG_DEFINES@
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS = @LIBPNG_DEFINES@
|
||||||
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS = -no-undefined \
|
||||||
# MAJOR UPGRADE: the version-number settings below must be changed.
|
-export-dynamic -version-number \
|
||||||
libpng14_la_LDFLAGS = -no-undefined -export-dynamic -version-number \
|
@PNGLIB_MAJOR@@PNGLIB_MINOR@:@PNGLIB_RELEASE@:0 \
|
||||||
14:@PNGLIB_RELEASE@:0 $(am__append_1) $(am__append_2)
|
$(am__append_1) $(am__append_2)
|
||||||
@HAVE_LD_VERSION_SCRIPT_FALSE@libpng14_la_DEPENDENCIES = libpng.sym
|
@HAVE_LD_VERSION_SCRIPT_FALSE@libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.sym
|
||||||
@HAVE_LD_VERSION_SCRIPT_TRUE@libpng14_la_DEPENDENCIES = libpng.vers
|
@HAVE_LD_VERSION_SCRIPT_TRUE@libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.vers
|
||||||
|
|
||||||
# Avoid depending upon Character Ranges.
|
# Avoid depending upon Character Ranges.
|
||||||
AN = '_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
|
AN = '_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
|
||||||
pkginclude_HEADERS = png.h pngconf.h
|
pkginclude_HEADERS = png.h pngconf.h
|
||||||
pkgconfig_DATA = libpng14.pc
|
pkgconfig_DATA = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc
|
||||||
|
|
||||||
#extra source distribution files.
|
#extra source distribution files.
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO \
|
ANNOUNCE CHANGES INSTALL LICENSE README TODO CMakeLists.txt \
|
||||||
pngtest.png pngbar.png pngnow.png pngbar.jpg autogen.sh \
|
pngtest.png pngbar.png pngnow.png pngbar.jpg autogen.sh \
|
||||||
${srcdir}/projects/cbuilder5/* \
|
${srcdir}/projects/vstudio/* \
|
||||||
${srcdir}/projects/visualc6/* \
|
${srcdir}/projects/visualc6/* \
|
||||||
${srcdir}/projects/visualc71/* \
|
${srcdir}/projects/visualc71/* \
|
||||||
${srcdir}/projects/xcode/* \
|
${srcdir}/projects/xcode/* \
|
||||||
@@ -329,9 +332,9 @@ EXTRA_DIST = \
|
|||||||
${srcdir}/contrib/pngsuite/* \
|
${srcdir}/contrib/pngsuite/* \
|
||||||
${srcdir}/contrib/visupng/* \
|
${srcdir}/contrib/visupng/* \
|
||||||
$(TESTS) \
|
$(TESTS) \
|
||||||
example.c libpng-1.4.0.txt
|
example.c libpng-1.4.12.txt
|
||||||
|
|
||||||
CLEANFILES = pngout.png libpng14.pc libpng14-config libpng.vers \
|
CLEANFILES = pngout.png libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config libpng.vers \
|
||||||
libpng.sym
|
libpng.sym
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess config.h.in \
|
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess config.h.in \
|
||||||
@@ -386,7 +389,7 @@ config.h: stamp-h1
|
|||||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||||
@rm -f stamp-h1
|
@rm -f stamp-h1
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||||
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||||
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
|
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
|
||||||
rm -f stamp-h1
|
rm -f stamp-h1
|
||||||
touch $@
|
touch $@
|
||||||
@@ -428,10 +431,8 @@ clean-libLTLIBRARIES:
|
|||||||
echo "rm -f \"$${dir}/so_locations\""; \
|
echo "rm -f \"$${dir}/so_locations\""; \
|
||||||
rm -f "$${dir}/so_locations"; \
|
rm -f "$${dir}/so_locations"; \
|
||||||
done
|
done
|
||||||
libpng.la: $(libpng_la_OBJECTS) $(libpng_la_DEPENDENCIES)
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la: $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES)
|
||||||
$(LINK) $(libpng_la_OBJECTS) $(libpng_la_LIBADD) $(LIBS)
|
$(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LINK) -rpath $(libdir) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LIBADD) $(LIBS)
|
||||||
libpng14.la: $(libpng14_la_OBJECTS) $(libpng14_la_DEPENDENCIES)
|
|
||||||
$(libpng14_la_LINK) -rpath $(libdir) $(libpng14_la_OBJECTS) $(libpng14_la_LIBADD) $(LIBS)
|
|
||||||
|
|
||||||
clean-checkPROGRAMS:
|
clean-checkPROGRAMS:
|
||||||
@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
|
@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||||
@@ -441,7 +442,7 @@ clean-checkPROGRAMS:
|
|||||||
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||||
echo " rm -f" $$list; \
|
echo " rm -f" $$list; \
|
||||||
rm -f $$list
|
rm -f $$list
|
||||||
pngtest$(EXEEXT): $(pngtest_OBJECTS) $(pngtest_DEPENDENCIES)
|
pngtest$(EXEEXT): $(pngtest_OBJECTS) $(pngtest_DEPENDENCIES)
|
||||||
@rm -f pngtest$(EXEEXT)
|
@rm -f pngtest$(EXEEXT)
|
||||||
$(LINK) $(pngtest_OBJECTS) $(pngtest_LDADD) $(LIBS)
|
$(LINK) $(pngtest_OBJECTS) $(pngtest_LDADD) $(LIBS)
|
||||||
install-binSCRIPTS: $(bin_SCRIPTS)
|
install-binSCRIPTS: $(bin_SCRIPTS)
|
||||||
@@ -485,22 +486,21 @@ mostlyclean-compile:
|
|||||||
distclean-compile:
|
distclean-compile:
|
||||||
-rm -f *.tab.c
|
-rm -f *.tab.c
|
||||||
|
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-png.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngerror.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngget.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngmem.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngpread.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngread.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrio.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngrio.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngrtran.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngrutil.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngset.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngtrans.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngwio.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwrite.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngwrite.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngwtran.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng14_la-pngwutil.Plo@am__quote@
|
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pngtest.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pngtest.Po@am__quote@
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
@@ -524,110 +524,110 @@ distclean-compile:
|
|||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
libpng14_la-png.lo: png.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.lo: png.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-png.lo -MD -MP -MF $(DEPDIR)/libpng14_la-png.Tpo -c -o libpng14_la-png.lo `test -f 'png.c' || echo '$(srcdir)/'`png.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.lo `test -f 'png.c' || echo '$(srcdir)/'`png.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-png.Tpo $(DEPDIR)/libpng14_la-png.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='png.c' object='libpng14_la-png.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='png.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-png.lo `test -f 'png.c' || echo '$(srcdir)/'`png.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.lo `test -f 'png.c' || echo '$(srcdir)/'`png.c
|
||||||
|
|
||||||
libpng14_la-pngset.lo: pngset.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo: pngset.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngset.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngset.Tpo -c -o libpng14_la-pngset.lo `test -f 'pngset.c' || echo '$(srcdir)/'`pngset.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo `test -f 'pngset.c' || echo '$(srcdir)/'`pngset.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngset.Tpo $(DEPDIR)/libpng14_la-pngset.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngset.c' object='libpng14_la-pngset.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngset.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngset.lo `test -f 'pngset.c' || echo '$(srcdir)/'`pngset.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo `test -f 'pngset.c' || echo '$(srcdir)/'`pngset.c
|
||||||
|
|
||||||
libpng14_la-pngget.lo: pngget.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.lo: pngget.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngget.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngget.Tpo -c -o libpng14_la-pngget.lo `test -f 'pngget.c' || echo '$(srcdir)/'`pngget.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.lo `test -f 'pngget.c' || echo '$(srcdir)/'`pngget.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngget.Tpo $(DEPDIR)/libpng14_la-pngget.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngget.c' object='libpng14_la-pngget.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngget.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngget.lo `test -f 'pngget.c' || echo '$(srcdir)/'`pngget.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.lo `test -f 'pngget.c' || echo '$(srcdir)/'`pngget.c
|
||||||
|
|
||||||
libpng14_la-pngrutil.lo: pngrutil.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo: pngrutil.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngrutil.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngrutil.Tpo -c -o libpng14_la-pngrutil.lo `test -f 'pngrutil.c' || echo '$(srcdir)/'`pngrutil.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo `test -f 'pngrutil.c' || echo '$(srcdir)/'`pngrutil.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngrutil.Tpo $(DEPDIR)/libpng14_la-pngrutil.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngrutil.c' object='libpng14_la-pngrutil.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngrutil.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngrutil.lo `test -f 'pngrutil.c' || echo '$(srcdir)/'`pngrutil.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo `test -f 'pngrutil.c' || echo '$(srcdir)/'`pngrutil.c
|
||||||
|
|
||||||
libpng14_la-pngtrans.lo: pngtrans.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo: pngtrans.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngtrans.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngtrans.Tpo -c -o libpng14_la-pngtrans.lo `test -f 'pngtrans.c' || echo '$(srcdir)/'`pngtrans.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo `test -f 'pngtrans.c' || echo '$(srcdir)/'`pngtrans.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngtrans.Tpo $(DEPDIR)/libpng14_la-pngtrans.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngtrans.c' object='libpng14_la-pngtrans.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngtrans.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngtrans.lo `test -f 'pngtrans.c' || echo '$(srcdir)/'`pngtrans.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo `test -f 'pngtrans.c' || echo '$(srcdir)/'`pngtrans.c
|
||||||
|
|
||||||
libpng14_la-pngwutil.lo: pngwutil.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo: pngwutil.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngwutil.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngwutil.Tpo -c -o libpng14_la-pngwutil.lo `test -f 'pngwutil.c' || echo '$(srcdir)/'`pngwutil.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo `test -f 'pngwutil.c' || echo '$(srcdir)/'`pngwutil.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngwutil.Tpo $(DEPDIR)/libpng14_la-pngwutil.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngwutil.c' object='libpng14_la-pngwutil.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngwutil.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngwutil.lo `test -f 'pngwutil.c' || echo '$(srcdir)/'`pngwutil.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo `test -f 'pngwutil.c' || echo '$(srcdir)/'`pngwutil.c
|
||||||
|
|
||||||
libpng14_la-pngread.lo: pngread.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.lo: pngread.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngread.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngread.Tpo -c -o libpng14_la-pngread.lo `test -f 'pngread.c' || echo '$(srcdir)/'`pngread.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.lo `test -f 'pngread.c' || echo '$(srcdir)/'`pngread.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngread.Tpo $(DEPDIR)/libpng14_la-pngread.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngread.c' object='libpng14_la-pngread.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngread.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngread.lo `test -f 'pngread.c' || echo '$(srcdir)/'`pngread.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.lo `test -f 'pngread.c' || echo '$(srcdir)/'`pngread.c
|
||||||
|
|
||||||
libpng14_la-pngrio.lo: pngrio.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrio.lo: pngrio.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngrio.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngrio.Tpo -c -o libpng14_la-pngrio.lo `test -f 'pngrio.c' || echo '$(srcdir)/'`pngrio.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrio.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrio.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrio.lo `test -f 'pngrio.c' || echo '$(srcdir)/'`pngrio.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngrio.Tpo $(DEPDIR)/libpng14_la-pngrio.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrio.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrio.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngrio.c' object='libpng14_la-pngrio.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngrio.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrio.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngrio.lo `test -f 'pngrio.c' || echo '$(srcdir)/'`pngrio.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrio.lo `test -f 'pngrio.c' || echo '$(srcdir)/'`pngrio.c
|
||||||
|
|
||||||
libpng14_la-pngwio.lo: pngwio.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.lo: pngwio.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngwio.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngwio.Tpo -c -o libpng14_la-pngwio.lo `test -f 'pngwio.c' || echo '$(srcdir)/'`pngwio.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.lo `test -f 'pngwio.c' || echo '$(srcdir)/'`pngwio.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngwio.Tpo $(DEPDIR)/libpng14_la-pngwio.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngwio.c' object='libpng14_la-pngwio.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngwio.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngwio.lo `test -f 'pngwio.c' || echo '$(srcdir)/'`pngwio.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.lo `test -f 'pngwio.c' || echo '$(srcdir)/'`pngwio.c
|
||||||
|
|
||||||
libpng14_la-pngwrite.lo: pngwrite.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwrite.lo: pngwrite.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngwrite.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngwrite.Tpo -c -o libpng14_la-pngwrite.lo `test -f 'pngwrite.c' || echo '$(srcdir)/'`pngwrite.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwrite.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwrite.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwrite.lo `test -f 'pngwrite.c' || echo '$(srcdir)/'`pngwrite.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngwrite.Tpo $(DEPDIR)/libpng14_la-pngwrite.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwrite.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwrite.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngwrite.c' object='libpng14_la-pngwrite.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngwrite.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwrite.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngwrite.lo `test -f 'pngwrite.c' || echo '$(srcdir)/'`pngwrite.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwrite.lo `test -f 'pngwrite.c' || echo '$(srcdir)/'`pngwrite.c
|
||||||
|
|
||||||
libpng14_la-pngrtran.lo: pngrtran.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo: pngrtran.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngrtran.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngrtran.Tpo -c -o libpng14_la-pngrtran.lo `test -f 'pngrtran.c' || echo '$(srcdir)/'`pngrtran.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo `test -f 'pngrtran.c' || echo '$(srcdir)/'`pngrtran.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngrtran.Tpo $(DEPDIR)/libpng14_la-pngrtran.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngrtran.c' object='libpng14_la-pngrtran.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngrtran.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngrtran.lo `test -f 'pngrtran.c' || echo '$(srcdir)/'`pngrtran.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo `test -f 'pngrtran.c' || echo '$(srcdir)/'`pngrtran.c
|
||||||
|
|
||||||
libpng14_la-pngwtran.lo: pngwtran.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.lo: pngwtran.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngwtran.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngwtran.Tpo -c -o libpng14_la-pngwtran.lo `test -f 'pngwtran.c' || echo '$(srcdir)/'`pngwtran.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.lo `test -f 'pngwtran.c' || echo '$(srcdir)/'`pngwtran.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngwtran.Tpo $(DEPDIR)/libpng14_la-pngwtran.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngwtran.c' object='libpng14_la-pngwtran.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngwtran.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngwtran.lo `test -f 'pngwtran.c' || echo '$(srcdir)/'`pngwtran.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.lo `test -f 'pngwtran.c' || echo '$(srcdir)/'`pngwtran.c
|
||||||
|
|
||||||
libpng14_la-pngmem.lo: pngmem.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo: pngmem.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngmem.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngmem.Tpo -c -o libpng14_la-pngmem.lo `test -f 'pngmem.c' || echo '$(srcdir)/'`pngmem.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo `test -f 'pngmem.c' || echo '$(srcdir)/'`pngmem.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngmem.Tpo $(DEPDIR)/libpng14_la-pngmem.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngmem.c' object='libpng14_la-pngmem.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngmem.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngmem.lo `test -f 'pngmem.c' || echo '$(srcdir)/'`pngmem.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo `test -f 'pngmem.c' || echo '$(srcdir)/'`pngmem.c
|
||||||
|
|
||||||
libpng14_la-pngerror.lo: pngerror.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo: pngerror.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngerror.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngerror.Tpo -c -o libpng14_la-pngerror.lo `test -f 'pngerror.c' || echo '$(srcdir)/'`pngerror.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo `test -f 'pngerror.c' || echo '$(srcdir)/'`pngerror.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngerror.Tpo $(DEPDIR)/libpng14_la-pngerror.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngerror.c' object='libpng14_la-pngerror.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngerror.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngerror.lo `test -f 'pngerror.c' || echo '$(srcdir)/'`pngerror.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo `test -f 'pngerror.c' || echo '$(srcdir)/'`pngerror.c
|
||||||
|
|
||||||
libpng14_la-pngpread.lo: pngpread.c
|
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo: pngpread.c
|
||||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng14_la-pngpread.lo -MD -MP -MF $(DEPDIR)/libpng14_la-pngpread.Tpo -c -o libpng14_la-pngpread.lo `test -f 'pngpread.c' || echo '$(srcdir)/'`pngpread.c
|
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo `test -f 'pngpread.c' || echo '$(srcdir)/'`pngpread.c
|
||||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng14_la-pngpread.Tpo $(DEPDIR)/libpng14_la-pngpread.Plo
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.Plo
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngpread.c' object='libpng14_la-pngpread.lo' libtool=yes @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pngpread.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng14_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng14_la-pngpread.lo `test -f 'pngpread.c' || echo '$(srcdir)/'`pngpread.c
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo `test -f 'pngpread.c' || echo '$(srcdir)/'`pngpread.c
|
||||||
|
|
||||||
mostlyclean-libtool:
|
mostlyclean-libtool:
|
||||||
-rm -f *.lo
|
-rm -f *.lo
|
||||||
@@ -944,7 +944,8 @@ distdir: $(DISTFILES)
|
|||||||
fi; \
|
fi; \
|
||||||
done
|
done
|
||||||
-test -n "$(am__skip_mode_fix)" \
|
-test -n "$(am__skip_mode_fix)" \
|
||||||
|| find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
|| find "$(distdir)" -type d ! -perm -755 \
|
||||||
|
-exec chmod u+rwx,go+rx {} \; -o \
|
||||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||||
@@ -988,21 +989,21 @@ dist dist-all: distdir
|
|||||||
distcheck: dist
|
distcheck: dist
|
||||||
case '$(DIST_ARCHIVES)' in \
|
case '$(DIST_ARCHIVES)' in \
|
||||||
*.tar.gz*) \
|
*.tar.gz*) \
|
||||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||||
*.tar.bz2*) \
|
*.tar.bz2*) \
|
||||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||||
*.tar.lzma*) \
|
*.tar.lzma*) \
|
||||||
unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
|
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
|
||||||
*.tar.xz*) \
|
*.tar.xz*) \
|
||||||
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
||||||
*.tar.Z*) \
|
*.tar.Z*) \
|
||||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||||
*.shar.gz*) \
|
*.shar.gz*) \
|
||||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
||||||
*.zip*) \
|
*.zip*) \
|
||||||
unzip $(distdir).zip ;;\
|
unzip $(distdir).zip ;;\
|
||||||
esac
|
esac
|
||||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
chmod -R a-w $(distdir); chmod u+w $(distdir)
|
||||||
mkdir $(distdir)/_build
|
mkdir $(distdir)/_build
|
||||||
mkdir $(distdir)/_inst
|
mkdir $(distdir)/_inst
|
||||||
chmod a-w $(distdir)
|
chmod a-w $(distdir)
|
||||||
@@ -1238,13 +1239,13 @@ install-data-hook:
|
|||||||
cd $(DESTDIR)$(pkgconfigdir); rm -f libpng.pc
|
cd $(DESTDIR)$(pkgconfigdir); rm -f libpng.pc
|
||||||
cd $(DESTDIR)$(pkgconfigdir); $(LN_S) $(PNGLIB_BASENAME).pc libpng.pc
|
cd $(DESTDIR)$(pkgconfigdir); $(LN_S) $(PNGLIB_BASENAME).pc libpng.pc
|
||||||
|
|
||||||
# do evil things to libpng to cause libpng14 to be used
|
# do evil things to libpng to cause libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ to be used
|
||||||
install-exec-hook:
|
install-exec-hook:
|
||||||
cd $(DESTDIR)$(bindir); rm -f libpng-config
|
cd $(DESTDIR)$(bindir); rm -f libpng-config
|
||||||
cd $(DESTDIR)$(bindir); $(LN_S) $(PNGLIB_BASENAME)-config libpng-config
|
cd $(DESTDIR)$(bindir); $(LN_S) $(PNGLIB_BASENAME)-config libpng-config
|
||||||
@set -x;\
|
@set -x;\
|
||||||
cd $(DESTDIR)$(libdir);\
|
cd $(DESTDIR)$(libdir);\
|
||||||
for ext in a la so sl dylib; do\
|
for ext in a la so so.@PNGLIB_MAJOR@@PNGLIB_MINOR@.@PNGLIB_RELEASE@ sl dylib dll.a; do\
|
||||||
rm -f libpng.$$ext;\
|
rm -f libpng.$$ext;\
|
||||||
if test -f $(PNGLIB_BASENAME).$$ext; then\
|
if test -f $(PNGLIB_BASENAME).$$ext; then\
|
||||||
$(LN_S) $(PNGLIB_BASENAME).$$ext libpng.$$ext;\
|
$(LN_S) $(PNGLIB_BASENAME).$$ext libpng.$$ext;\
|
||||||
|
|||||||
23
README
@@ -1,4 +1,4 @@
|
|||||||
README for libpng version 1.4.0 - January 3, 2010 (shared library 14.0)
|
README for libpng version 1.4.12 - July 10, 2012 (shared library 14.0)
|
||||||
See the note about version numbers near the top of png.h
|
See the note about version numbers near the top of png.h
|
||||||
|
|
||||||
See INSTALL for instructions on how to install libpng.
|
See INSTALL for instructions on how to install libpng.
|
||||||
@@ -114,19 +114,16 @@ given in previous versions of this document. He and Andreas will
|
|||||||
read mail addressed to the png-implement list, however.
|
read mail addressed to the png-implement list, however.
|
||||||
|
|
||||||
Please do not send general questions about PNG. Send them to
|
Please do not send general questions about PNG. Send them to
|
||||||
the (png-list at ccrc.wustl.edu, subscription required, write to
|
png-mng-misc at lists.sf.net (subscription required; visit
|
||||||
majordomo at ccrc.wustl.edu with "subscribe png-list" in your message).
|
https://lists.sourceforge.net/lists/listinfo/png-mng-misc to
|
||||||
On the other hand,
|
subscribe). If you have a question about something
|
||||||
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
|
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,
|
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
|
and ...". If in doubt, send questions to me. I'll bounce them
|
||||||
to others, if necessary.
|
to others, if necessary.
|
||||||
|
|
||||||
Please do not send suggestions on how to change PNG. We have
|
Please do not send suggestions on how to change PNG. We have
|
||||||
been discussing PNG for nine years now, and it is official and
|
been discussing PNG for sixteen years now, and it is official and
|
||||||
finished. If you have suggestions for libpng, however, I'll
|
finished. If you have suggestions for libpng, however, I'll
|
||||||
gladly listen. Even if your suggestion is not used immediately,
|
gladly listen. Even if your suggestion is not used immediately,
|
||||||
it may be used later.
|
it may be used later.
|
||||||
@@ -185,9 +182,9 @@ Files in this distribution:
|
|||||||
makefile.std => Generic UNIX makefile (cc, creates static
|
makefile.std => Generic UNIX makefile (cc, creates static
|
||||||
libpng.a)
|
libpng.a)
|
||||||
makefile.elf => Linux/ELF makefile symbol versioning,
|
makefile.elf => Linux/ELF makefile symbol versioning,
|
||||||
gcc, creates libpng14.so.14.1.4.0)
|
(gcc, creates libpng14.so.14.1.4.12)
|
||||||
makefile.linux => Linux/ELF makefile
|
makefile.linux => Linux/ELF makefile
|
||||||
(gcc, creates libpng14.so.14.1.4.0)
|
(gcc, creates libpng14.so.14.1.4.12)
|
||||||
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
|
||||||
@@ -209,12 +206,12 @@ Files in this distribution:
|
|||||||
makefile.openbsd => OpenBSD makefile
|
makefile.openbsd => OpenBSD makefile
|
||||||
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
|
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
|
||||||
makefile.sggcc => Silicon Graphics
|
makefile.sggcc => Silicon Graphics
|
||||||
(gcc, creates libpng14.so.14.1.4.0)
|
(gcc, creates libpng14.so.14.1.4.12)
|
||||||
makefile.sunos => Sun makefile
|
makefile.sunos => Sun makefile
|
||||||
makefile.solaris => Solaris 2.X makefile
|
makefile.solaris => Solaris 2.X makefile
|
||||||
(gcc, creates libpng14.so.14.1.4.0)
|
(gcc, creates libpng14.so.14.1.4.12)
|
||||||
makefile.so9 => Solaris 9 makefile
|
makefile.so9 => Solaris 9 makefile
|
||||||
(gcc, creates libpng14.so.14.1.4.0)
|
(gcc, creates libpng14.so.14.1.4.12)
|
||||||
makefile.32sunu => Sun Ultra 32-bit makefile
|
makefile.32sunu => Sun Ultra 32-bit makefile
|
||||||
makefile.64sunu => Sun Ultra 64-bit makefile
|
makefile.64sunu => Sun Ultra 64-bit makefile
|
||||||
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
||||||
|
|||||||
2
TODO
@@ -9,7 +9,7 @@ Fix problem with C++ and EXTERN "C".
|
|||||||
cHRM transformation.
|
cHRM transformation.
|
||||||
Improve setjmp/longjmp usage or remove it in favor of returning error codes.
|
Improve setjmp/longjmp usage or remove it in favor of returning error codes.
|
||||||
Add "grayscale->palette" transformation and "palette->grayscale" detection.
|
Add "grayscale->palette" transformation and "palette->grayscale" detection.
|
||||||
Improved dithering.
|
Improved quantizing and dithering.
|
||||||
Multi-lingual error and warning message support.
|
Multi-lingual error and warning message support.
|
||||||
Complete sRGB transformation (presently it simply uses gamma=0.45455).
|
Complete sRGB transformation (presently it simply uses gamma=0.45455).
|
||||||
Man pages for function calls.
|
Man pages for function calls.
|
||||||
|
|||||||
1041
aclocal.m4
vendored
35
autogen.sh
@@ -4,22 +4,31 @@
|
|||||||
#
|
#
|
||||||
# WARNING: if you run this you will change the versions
|
# WARNING: if you run this you will change the versions
|
||||||
# of the tools which are used and, maybe, required!
|
# of the tools which are used and, maybe, required!
|
||||||
touch Makefile.am configure.ac
|
|
||||||
|
# You can define your own replacements in your environment.
|
||||||
|
# $AUTOCONF, $AUTOMAKE, $AUTOHEADER, $AUTOPOINT, $ACLOCAL and $LIBTOOLIZE
|
||||||
|
|
||||||
|
touch Makefile.am configure.ac
|
||||||
{
|
{
|
||||||
echo "running libtoolize" >&2
|
LT=${LIBTOOLIZE-libtoolize}
|
||||||
libtoolize --force --copy --automake
|
echo "running $LT" >&2
|
||||||
|
$LT --force --copy --automake
|
||||||
} && {
|
} && {
|
||||||
echo "running aclocal" >&2
|
AL=${ACLOCAL-aclocal}
|
||||||
aclocal
|
echo "running $AL" >&2
|
||||||
|
$AL
|
||||||
} && {
|
} && {
|
||||||
echo "running autoheader [ignore the warnings]" >&2
|
AH=${AUTOHEADER-autoheader}
|
||||||
autoheader
|
echo "running $AH [ignore the warnings]" >&2
|
||||||
|
$AH
|
||||||
} && {
|
} && {
|
||||||
echo "running automake" >&2
|
AM=${AUTOMAKE-automake}
|
||||||
automake --force-missing --foreign -a -c
|
echo "running $AM" >&2
|
||||||
|
$AM --force-missing --foreign -a -c
|
||||||
} && {
|
} && {
|
||||||
echo "running autoconf" >&2
|
AC=${AUTOCONF-autoconf}
|
||||||
autoconf
|
echo "running $AC" >&2
|
||||||
|
$AC
|
||||||
} &&
|
} &&
|
||||||
echo "autogen complete" >&2 ||
|
echo "autogen complete" >&2 ||
|
||||||
echo "ERROR: autogen.sh failed, autogen is incomplete" >&2
|
echo "ERROR: autogen.sh failed, autogen is incomplete" >&2
|
||||||
|
|||||||
196
config.guess
vendored
@@ -1,10 +1,10 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Attempt to guess a canonical system name.
|
# Attempt to guess a canonical system name.
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
|
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||||
# Free Software Foundation, Inc.
|
# Free Software Foundation, Inc.
|
||||||
|
|
||||||
timestamp='2009-04-27'
|
timestamp='2009-11-20'
|
||||||
|
|
||||||
# This file is free software; you can redistribute it and/or modify it
|
# This file is free software; you can redistribute it and/or modify it
|
||||||
# under the terms of the GNU General Public License as published by
|
# under the terms of the GNU General Public License as published by
|
||||||
@@ -27,16 +27,16 @@ timestamp='2009-04-27'
|
|||||||
# the same distribution terms that you use for the rest of that program.
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
|
||||||
# Originally written by Per Bothner <per@bothner.com>.
|
# Originally written by Per Bothner. Please send patches (context
|
||||||
# Please send patches to <config-patches@gnu.org>. Submit a context
|
# diff format) to <config-patches@gnu.org> and include a ChangeLog
|
||||||
# diff and a properly formatted ChangeLog entry.
|
# entry.
|
||||||
#
|
#
|
||||||
# This script attempts to guess a canonical system name similar to
|
# This script attempts to guess a canonical system name similar to
|
||||||
# config.sub. If it succeeds, it prints the system name on stdout, and
|
# config.sub. If it succeeds, it prints the system name on stdout, and
|
||||||
# exits with 0. Otherwise, it exits with 1.
|
# exits with 0. Otherwise, it exits with 1.
|
||||||
#
|
#
|
||||||
# The plan is that this can be called by configure scripts if you
|
# You can get the latest version of this script from:
|
||||||
# don't specify an explicit build system type.
|
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
|
||||||
|
|
||||||
me=`echo "$0" | sed -e 's,.*/,,'`
|
me=`echo "$0" | sed -e 's,.*/,,'`
|
||||||
|
|
||||||
@@ -170,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||||||
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
||||||
eval $set_cc_for_build
|
eval $set_cc_for_build
|
||||||
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||||
| grep __ELF__ >/dev/null
|
| grep -q __ELF__
|
||||||
then
|
then
|
||||||
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
|
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
|
||||||
# Return netbsd for either. FIX?
|
# Return netbsd for either. FIX?
|
||||||
@@ -333,6 +333,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||||||
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
|
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
|
||||||
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||||
exit ;;
|
exit ;;
|
||||||
|
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
|
||||||
|
echo i386-pc-auroraux${UNAME_RELEASE}
|
||||||
|
exit ;;
|
||||||
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
|
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
|
||||||
eval $set_cc_for_build
|
eval $set_cc_for_build
|
||||||
SUN_ARCH="i386"
|
SUN_ARCH="i386"
|
||||||
@@ -656,7 +659,7 @@ EOF
|
|||||||
# => hppa64-hp-hpux11.23
|
# => hppa64-hp-hpux11.23
|
||||||
|
|
||||||
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
|
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
|
||||||
grep __LP64__ >/dev/null
|
grep -q __LP64__
|
||||||
then
|
then
|
||||||
HP_ARCH="hppa2.0w"
|
HP_ARCH="hppa2.0w"
|
||||||
else
|
else
|
||||||
@@ -807,12 +810,12 @@ EOF
|
|||||||
i*:PW*:*)
|
i*:PW*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-pw32
|
echo ${UNAME_MACHINE}-pc-pw32
|
||||||
exit ;;
|
exit ;;
|
||||||
*:Interix*:[3456]*)
|
*:Interix*:*)
|
||||||
case ${UNAME_MACHINE} in
|
case ${UNAME_MACHINE} in
|
||||||
x86)
|
x86)
|
||||||
echo i586-pc-interix${UNAME_RELEASE}
|
echo i586-pc-interix${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
EM64T | authenticamd | genuineintel)
|
authenticamd | genuineintel | EM64T)
|
||||||
echo x86_64-unknown-interix${UNAME_RELEASE}
|
echo x86_64-unknown-interix${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
IA64)
|
IA64)
|
||||||
@@ -822,6 +825,9 @@ EOF
|
|||||||
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
|
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
|
||||||
echo i${UNAME_MACHINE}-pc-mks
|
echo i${UNAME_MACHINE}-pc-mks
|
||||||
exit ;;
|
exit ;;
|
||||||
|
8664:Windows_NT:*)
|
||||||
|
echo x86_64-pc-mks
|
||||||
|
exit ;;
|
||||||
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
||||||
# How do we know it's Interix rather than the generic POSIX subsystem?
|
# How do we know it's Interix rather than the generic POSIX subsystem?
|
||||||
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
||||||
@@ -851,6 +857,20 @@ EOF
|
|||||||
i*86:Minix:*:*)
|
i*86:Minix:*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-minix
|
echo ${UNAME_MACHINE}-pc-minix
|
||||||
exit ;;
|
exit ;;
|
||||||
|
alpha:Linux:*:*)
|
||||||
|
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
||||||
|
EV5) UNAME_MACHINE=alphaev5 ;;
|
||||||
|
EV56) UNAME_MACHINE=alphaev56 ;;
|
||||||
|
PCA56) UNAME_MACHINE=alphapca56 ;;
|
||||||
|
PCA57) UNAME_MACHINE=alphapca56 ;;
|
||||||
|
EV6) UNAME_MACHINE=alphaev6 ;;
|
||||||
|
EV67) UNAME_MACHINE=alphaev67 ;;
|
||||||
|
EV68*) UNAME_MACHINE=alphaev68 ;;
|
||||||
|
esac
|
||||||
|
objdump --private-headers /bin/sh | grep -q ld.so.1
|
||||||
|
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
||||||
|
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
||||||
|
exit ;;
|
||||||
arm*:Linux:*:*)
|
arm*:Linux:*:*)
|
||||||
eval $set_cc_for_build
|
eval $set_cc_for_build
|
||||||
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||||
@@ -873,6 +893,17 @@ EOF
|
|||||||
frv:Linux:*:*)
|
frv:Linux:*:*)
|
||||||
echo frv-unknown-linux-gnu
|
echo frv-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
|
i*86:Linux:*:*)
|
||||||
|
LIBC=gnu
|
||||||
|
eval $set_cc_for_build
|
||||||
|
sed 's/^ //' << EOF >$dummy.c
|
||||||
|
#ifdef __dietlibc__
|
||||||
|
LIBC=dietlibc
|
||||||
|
#endif
|
||||||
|
EOF
|
||||||
|
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
|
||||||
|
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
|
||||||
|
exit ;;
|
||||||
ia64:Linux:*:*)
|
ia64:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
@@ -882,78 +913,34 @@ EOF
|
|||||||
m68*:Linux:*:*)
|
m68*:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
mips:Linux:*:*)
|
mips:Linux:*:* | mips64:Linux:*:*)
|
||||||
eval $set_cc_for_build
|
eval $set_cc_for_build
|
||||||
sed 's/^ //' << EOF >$dummy.c
|
sed 's/^ //' << EOF >$dummy.c
|
||||||
#undef CPU
|
#undef CPU
|
||||||
#undef mips
|
#undef ${UNAME_MACHINE}
|
||||||
#undef mipsel
|
#undef ${UNAME_MACHINE}el
|
||||||
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
||||||
CPU=mipsel
|
CPU=${UNAME_MACHINE}el
|
||||||
#else
|
#else
|
||||||
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
||||||
CPU=mips
|
CPU=${UNAME_MACHINE}
|
||||||
#else
|
#else
|
||||||
CPU=
|
CPU=
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
EOF
|
EOF
|
||||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
|
||||||
/^CPU/{
|
|
||||||
s: ::g
|
|
||||||
p
|
|
||||||
}'`"
|
|
||||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
|
||||||
;;
|
|
||||||
mips64:Linux:*:*)
|
|
||||||
eval $set_cc_for_build
|
|
||||||
sed 's/^ //' << EOF >$dummy.c
|
|
||||||
#undef CPU
|
|
||||||
#undef mips64
|
|
||||||
#undef mips64el
|
|
||||||
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
|
||||||
CPU=mips64el
|
|
||||||
#else
|
|
||||||
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
|
||||||
CPU=mips64
|
|
||||||
#else
|
|
||||||
CPU=
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
EOF
|
|
||||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
|
||||||
/^CPU/{
|
|
||||||
s: ::g
|
|
||||||
p
|
|
||||||
}'`"
|
|
||||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
||||||
;;
|
;;
|
||||||
or32:Linux:*:*)
|
or32:Linux:*:*)
|
||||||
echo or32-unknown-linux-gnu
|
echo or32-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
ppc:Linux:*:*)
|
|
||||||
echo powerpc-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
ppc64:Linux:*:*)
|
|
||||||
echo powerpc64-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
alpha:Linux:*:*)
|
|
||||||
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
|
||||||
EV5) UNAME_MACHINE=alphaev5 ;;
|
|
||||||
EV56) UNAME_MACHINE=alphaev56 ;;
|
|
||||||
PCA56) UNAME_MACHINE=alphapca56 ;;
|
|
||||||
PCA57) UNAME_MACHINE=alphapca56 ;;
|
|
||||||
EV6) UNAME_MACHINE=alphaev6 ;;
|
|
||||||
EV67) UNAME_MACHINE=alphaev67 ;;
|
|
||||||
EV68*) UNAME_MACHINE=alphaev68 ;;
|
|
||||||
esac
|
|
||||||
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
|
|
||||||
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
|
||||||
exit ;;
|
|
||||||
padre:Linux:*:*)
|
padre:Linux:*:*)
|
||||||
echo sparc-unknown-linux-gnu
|
echo sparc-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
|
parisc64:Linux:*:* | hppa64:Linux:*:*)
|
||||||
|
echo hppa64-unknown-linux-gnu
|
||||||
|
exit ;;
|
||||||
parisc:Linux:*:* | hppa:Linux:*:*)
|
parisc:Linux:*:* | hppa:Linux:*:*)
|
||||||
# Look for CPU level
|
# Look for CPU level
|
||||||
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
|
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
|
||||||
@@ -962,8 +949,11 @@ EOF
|
|||||||
*) echo hppa-unknown-linux-gnu ;;
|
*) echo hppa-unknown-linux-gnu ;;
|
||||||
esac
|
esac
|
||||||
exit ;;
|
exit ;;
|
||||||
parisc64:Linux:*:* | hppa64:Linux:*:*)
|
ppc64:Linux:*:*)
|
||||||
echo hppa64-unknown-linux-gnu
|
echo powerpc64-unknown-linux-gnu
|
||||||
|
exit ;;
|
||||||
|
ppc:Linux:*:*)
|
||||||
|
echo powerpc-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
s390:Linux:*:* | s390x:Linux:*:*)
|
s390:Linux:*:* | s390x:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-ibm-linux
|
echo ${UNAME_MACHINE}-ibm-linux
|
||||||
@@ -986,66 +976,6 @@ EOF
|
|||||||
xtensa*:Linux:*:*)
|
xtensa*:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:Linux:*:*)
|
|
||||||
# The BFD linker knows what the default object file format is, so
|
|
||||||
# first see if it will tell us. cd to the root directory to prevent
|
|
||||||
# problems with other programs or directories called `ld' in the path.
|
|
||||||
# Set LC_ALL=C to ensure ld outputs messages in English.
|
|
||||||
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
|
|
||||||
| sed -ne '/supported targets:/!d
|
|
||||||
s/[ ][ ]*/ /g
|
|
||||||
s/.*supported targets: *//
|
|
||||||
s/ .*//
|
|
||||||
p'`
|
|
||||||
case "$ld_supported_targets" in
|
|
||||||
elf32-i386)
|
|
||||||
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
|
|
||||||
;;
|
|
||||||
a.out-i386-linux)
|
|
||||||
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
|
|
||||||
exit ;;
|
|
||||||
"")
|
|
||||||
# Either a pre-BFD a.out linker (linux-gnuoldld) or
|
|
||||||
# one that does not give us useful --help.
|
|
||||||
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
|
|
||||||
exit ;;
|
|
||||||
esac
|
|
||||||
# Determine whether the default compiler is a.out or elf
|
|
||||||
eval $set_cc_for_build
|
|
||||||
sed 's/^ //' << EOF >$dummy.c
|
|
||||||
#include <features.h>
|
|
||||||
#ifdef __ELF__
|
|
||||||
# ifdef __GLIBC__
|
|
||||||
# if __GLIBC__ >= 2
|
|
||||||
LIBC=gnu
|
|
||||||
# else
|
|
||||||
LIBC=gnulibc1
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
LIBC=gnulibc1
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
|
|
||||||
LIBC=gnu
|
|
||||||
#else
|
|
||||||
LIBC=gnuaout
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#ifdef __dietlibc__
|
|
||||||
LIBC=dietlibc
|
|
||||||
#endif
|
|
||||||
EOF
|
|
||||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
|
||||||
/^LIBC/{
|
|
||||||
s: ::g
|
|
||||||
p
|
|
||||||
}'`"
|
|
||||||
test x"${LIBC}" != x && {
|
|
||||||
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
|
|
||||||
;;
|
|
||||||
i*86:DYNIX/ptx:4*:*)
|
i*86:DYNIX/ptx:4*:*)
|
||||||
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
|
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
|
||||||
# earlier versions are messed up and put the nodename in both
|
# earlier versions are messed up and put the nodename in both
|
||||||
@@ -1074,7 +1004,7 @@ EOF
|
|||||||
i*86:syllable:*:*)
|
i*86:syllable:*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-syllable
|
echo ${UNAME_MACHINE}-pc-syllable
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
|
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
|
||||||
echo i386-unknown-lynxos${UNAME_RELEASE}
|
echo i386-unknown-lynxos${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
i*86:*DOS:*:*)
|
i*86:*DOS:*:*)
|
||||||
@@ -1182,7 +1112,7 @@ EOF
|
|||||||
rs6000:LynxOS:2.*:*)
|
rs6000:LynxOS:2.*:*)
|
||||||
echo rs6000-unknown-lynxos${UNAME_RELEASE}
|
echo rs6000-unknown-lynxos${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
|
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
|
||||||
echo powerpc-unknown-lynxos${UNAME_RELEASE}
|
echo powerpc-unknown-lynxos${UNAME_RELEASE}
|
||||||
exit ;;
|
exit ;;
|
||||||
SM[BE]S:UNIX_SV:*:*)
|
SM[BE]S:UNIX_SV:*:*)
|
||||||
@@ -1275,6 +1205,16 @@ EOF
|
|||||||
*:Darwin:*:*)
|
*:Darwin:*:*)
|
||||||
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
|
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
|
||||||
case $UNAME_PROCESSOR in
|
case $UNAME_PROCESSOR in
|
||||||
|
i386)
|
||||||
|
eval $set_cc_for_build
|
||||||
|
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
|
||||||
|
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
|
||||||
|
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||||
|
grep IS_64BIT_ARCH >/dev/null
|
||||||
|
then
|
||||||
|
UNAME_PROCESSOR="x86_64"
|
||||||
|
fi
|
||||||
|
fi ;;
|
||||||
unknown) UNAME_PROCESSOR=powerpc ;;
|
unknown) UNAME_PROCESSOR=powerpc ;;
|
||||||
esac
|
esac
|
||||||
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
|
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
|
||||||
|
|||||||
43
config.sub
vendored
@@ -1,10 +1,10 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Configuration validation subroutine script.
|
# Configuration validation subroutine script.
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
|
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||||
# Free Software Foundation, Inc.
|
# Free Software Foundation, Inc.
|
||||||
|
|
||||||
timestamp='2009-04-17'
|
timestamp='2009-11-20'
|
||||||
|
|
||||||
# This file is (in principle) common to ALL GNU software.
|
# This file is (in principle) common to ALL GNU software.
|
||||||
# The presence of a machine in this file suggests that SOME GNU software
|
# The presence of a machine in this file suggests that SOME GNU software
|
||||||
@@ -32,13 +32,16 @@ timestamp='2009-04-17'
|
|||||||
|
|
||||||
|
|
||||||
# Please send patches to <config-patches@gnu.org>. Submit a context
|
# Please send patches to <config-patches@gnu.org>. Submit a context
|
||||||
# diff and a properly formatted ChangeLog entry.
|
# diff and a properly formatted GNU ChangeLog entry.
|
||||||
#
|
#
|
||||||
# Configuration subroutine to validate and canonicalize a configuration type.
|
# Configuration subroutine to validate and canonicalize a configuration type.
|
||||||
# Supply the specified configuration type as an argument.
|
# Supply the specified configuration type as an argument.
|
||||||
# If it is invalid, we print an error message on stderr and exit with code 1.
|
# If it is invalid, we print an error message on stderr and exit with code 1.
|
||||||
# Otherwise, we print the canonical config type on stdout and succeed.
|
# Otherwise, we print the canonical config type on stdout and succeed.
|
||||||
|
|
||||||
|
# You can get the latest version of this script from:
|
||||||
|
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
|
||||||
|
|
||||||
# This file is supposed to be the same for all GNU packages
|
# This file is supposed to be the same for all GNU packages
|
||||||
# and recognize all the CPU types, system types and aliases
|
# and recognize all the CPU types, system types and aliases
|
||||||
# that are meaningful with *any* GNU software.
|
# that are meaningful with *any* GNU software.
|
||||||
@@ -149,10 +152,13 @@ case $os in
|
|||||||
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
|
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
|
||||||
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
|
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
|
||||||
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
|
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
|
||||||
-apple | -axis | -knuth | -cray)
|
-apple | -axis | -knuth | -cray | -microblaze)
|
||||||
os=
|
os=
|
||||||
basic_machine=$1
|
basic_machine=$1
|
||||||
;;
|
;;
|
||||||
|
-bluegene*)
|
||||||
|
os=-cnk
|
||||||
|
;;
|
||||||
-sim | -cisco | -oki | -wec | -winbond)
|
-sim | -cisco | -oki | -wec | -winbond)
|
||||||
os=
|
os=
|
||||||
basic_machine=$1
|
basic_machine=$1
|
||||||
@@ -281,6 +287,7 @@ case $basic_machine in
|
|||||||
| pdp10 | pdp11 | pj | pjl \
|
| pdp10 | pdp11 | pj | pjl \
|
||||||
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
||||||
| pyramid \
|
| pyramid \
|
||||||
|
| rx \
|
||||||
| score \
|
| score \
|
||||||
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
||||||
| sh64 | sh64le \
|
| sh64 | sh64le \
|
||||||
@@ -288,13 +295,14 @@ case $basic_machine in
|
|||||||
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
|
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
|
||||||
| spu | strongarm \
|
| spu | strongarm \
|
||||||
| tahoe | thumb | tic4x | tic80 | tron \
|
| tahoe | thumb | tic4x | tic80 | tron \
|
||||||
|
| ubicom32 \
|
||||||
| v850 | v850e \
|
| v850 | v850e \
|
||||||
| we32k \
|
| we32k \
|
||||||
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
|
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
|
||||||
| z8k | z80)
|
| z8k | z80)
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
;;
|
;;
|
||||||
m6811 | m68hc11 | m6812 | m68hc12)
|
m6811 | m68hc11 | m6812 | m68hc12 | picochip)
|
||||||
# Motorola 68HC11/12.
|
# Motorola 68HC11/12.
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
os=-none
|
os=-none
|
||||||
@@ -337,7 +345,7 @@ case $basic_machine in
|
|||||||
| lm32-* \
|
| lm32-* \
|
||||||
| m32c-* | m32r-* | m32rle-* \
|
| m32c-* | m32r-* | m32rle-* \
|
||||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||||||
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
|
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
|
||||||
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
||||||
| mips16-* \
|
| mips16-* \
|
||||||
| mips64-* | mips64el-* \
|
| mips64-* | mips64el-* \
|
||||||
@@ -365,7 +373,7 @@ case $basic_machine in
|
|||||||
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
||||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
||||||
| pyramid-* \
|
| pyramid-* \
|
||||||
| romp-* | rs6000-* \
|
| romp-* | rs6000-* | rx-* \
|
||||||
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
||||||
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
||||||
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
||||||
@@ -374,6 +382,7 @@ case $basic_machine in
|
|||||||
| tahoe-* | thumb-* \
|
| tahoe-* | thumb-* \
|
||||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
|
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
|
||||||
| tron-* \
|
| tron-* \
|
||||||
|
| ubicom32-* \
|
||||||
| v850-* | v850e-* | vax-* \
|
| v850-* | v850e-* | vax-* \
|
||||||
| we32k-* \
|
| we32k-* \
|
||||||
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
|
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
|
||||||
@@ -467,6 +476,10 @@ case $basic_machine in
|
|||||||
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
os=-linux
|
os=-linux
|
||||||
;;
|
;;
|
||||||
|
bluegene*)
|
||||||
|
basic_machine=powerpc-ibm
|
||||||
|
os=-cnk
|
||||||
|
;;
|
||||||
c90)
|
c90)
|
||||||
basic_machine=c90-cray
|
basic_machine=c90-cray
|
||||||
os=-unicos
|
os=-unicos
|
||||||
@@ -719,6 +732,9 @@ case $basic_machine in
|
|||||||
basic_machine=ns32k-utek
|
basic_machine=ns32k-utek
|
||||||
os=-sysv
|
os=-sysv
|
||||||
;;
|
;;
|
||||||
|
microblaze)
|
||||||
|
basic_machine=microblaze-xilinx
|
||||||
|
;;
|
||||||
mingw32)
|
mingw32)
|
||||||
basic_machine=i386-pc
|
basic_machine=i386-pc
|
||||||
os=-mingw32
|
os=-mingw32
|
||||||
@@ -1240,6 +1256,9 @@ case $os in
|
|||||||
# First match some system type aliases
|
# First match some system type aliases
|
||||||
# that might get confused with valid system types.
|
# that might get confused with valid system types.
|
||||||
# -solaris* is a basic system type, with this one exception.
|
# -solaris* is a basic system type, with this one exception.
|
||||||
|
-auroraux)
|
||||||
|
os=-auroraux
|
||||||
|
;;
|
||||||
-solaris1 | -solaris1.*)
|
-solaris1 | -solaris1.*)
|
||||||
os=`echo $os | sed -e 's|solaris1|sunos4|'`
|
os=`echo $os | sed -e 's|solaris1|sunos4|'`
|
||||||
;;
|
;;
|
||||||
@@ -1260,9 +1279,9 @@ case $os in
|
|||||||
# Each alternative MUST END IN A *, to match a version number.
|
# Each alternative MUST END IN A *, to match a version number.
|
||||||
# -sysv* is not here because it comes later, after sysvr4.
|
# -sysv* is not here because it comes later, after sysvr4.
|
||||||
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
||||||
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
|
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
||||||
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
|
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
|
||||||
| -kopensolaris* \
|
| -sym* | -kopensolaris* \
|
||||||
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
||||||
| -aos* | -aros* \
|
| -aos* | -aros* \
|
||||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||||
@@ -1283,7 +1302,7 @@ case $os in
|
|||||||
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
||||||
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
||||||
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
||||||
| -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
|
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
|
||||||
# Remember, each alternative MUST END IN *, to match a version number.
|
# Remember, each alternative MUST END IN *, to match a version number.
|
||||||
;;
|
;;
|
||||||
-qnx*)
|
-qnx*)
|
||||||
@@ -1613,7 +1632,7 @@ case $basic_machine in
|
|||||||
-sunos*)
|
-sunos*)
|
||||||
vendor=sun
|
vendor=sun
|
||||||
;;
|
;;
|
||||||
-aix*)
|
-cnk*|-aix*)
|
||||||
vendor=ibm
|
vendor=ibm
|
||||||
;;
|
;;
|
||||||
-beos*)
|
-beos*)
|
||||||
|
|||||||
51
configure.ac
@@ -16,17 +16,17 @@ dnl should not be necessary to regenerate configure if the time
|
|||||||
dnl stamps are correct
|
dnl stamps are correct
|
||||||
AC_PREREQ(2.59)
|
AC_PREREQ(2.59)
|
||||||
|
|
||||||
dnl Version number stuff here:
|
AC_INIT([libpng], [1.4.12], [png-mng-implement@lists.sourceforge.net])
|
||||||
|
|
||||||
AC_INIT([libpng], [1.4.0], [png-mng-implement@lists.sourceforge.net])
|
|
||||||
AM_INIT_AUTOMAKE
|
AM_INIT_AUTOMAKE
|
||||||
dnl stop configure from automagically running automake
|
dnl stop configure from automagically running automake
|
||||||
AM_MAINTAINER_MODE
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
PNGLIB_VERSION=1.4.0
|
dnl Version number stuff here:
|
||||||
|
|
||||||
|
PNGLIB_VERSION=1.4.12
|
||||||
PNGLIB_MAJOR=1
|
PNGLIB_MAJOR=1
|
||||||
PNGLIB_MINOR=4
|
PNGLIB_MINOR=4
|
||||||
PNGLIB_RELEASE=0
|
PNGLIB_RELEASE=12
|
||||||
|
|
||||||
dnl End of version number stuff
|
dnl End of version number stuff
|
||||||
|
|
||||||
@@ -38,11 +38,10 @@ AC_PROG_CC
|
|||||||
AC_PROG_LD
|
AC_PROG_LD
|
||||||
AC_PROG_CPP
|
AC_PROG_CPP
|
||||||
AC_CHECK_TOOL(SED, sed, :)
|
AC_CHECK_TOOL(SED, sed, :)
|
||||||
AC_LIBTOOL_WIN32_DLL
|
|
||||||
AC_PROG_INSTALL
|
AC_PROG_INSTALL
|
||||||
AC_PROG_LN_S
|
AC_PROG_LN_S
|
||||||
AC_PROG_MAKE_SET
|
AC_PROG_MAKE_SET
|
||||||
AC_PROG_LIBTOOL
|
LT_INIT([win32-dll])
|
||||||
|
|
||||||
# Checks for header files.
|
# Checks for header files.
|
||||||
AC_HEADER_STDC
|
AC_HEADER_STDC
|
||||||
@@ -59,12 +58,43 @@ AC_CHECK_FUNCS([memset], , AC_ERROR([memset not found in libc]))
|
|||||||
AC_CHECK_FUNCS([pow], , AC_CHECK_LIB(m, pow, , AC_ERROR([cannot find pow])) )
|
AC_CHECK_FUNCS([pow], , AC_CHECK_LIB(m, pow, , AC_ERROR([cannot find pow])) )
|
||||||
AC_CHECK_LIB(z, zlibVersion, , AC_ERROR([zlib not installed]))
|
AC_CHECK_LIB(z, zlibVersion, , AC_ERROR([zlib not installed]))
|
||||||
|
|
||||||
LIBPNG_DEFINES=-DPNG_CONFIGURE_LIBPNG
|
case $host_os in
|
||||||
|
aix*)
|
||||||
|
LIBPNG_DEFINES="-DPNG_CONFIGURE_LIBPNG -D_ALL_SOURCE";;
|
||||||
|
*)
|
||||||
|
LIBPNG_DEFINES=-DPNG_CONFIGURE_LIBPNG;;
|
||||||
|
esac
|
||||||
LIBPNG_DEFINES=$LIBPNG_DEFINES
|
LIBPNG_DEFINES=$LIBPNG_DEFINES
|
||||||
AC_SUBST(LIBPNG_DEFINES)
|
AC_SUBST(LIBPNG_DEFINES)
|
||||||
|
|
||||||
AC_MSG_CHECKING([if libraries can be versioned])
|
AC_MSG_CHECKING([if libraries can be versioned])
|
||||||
GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
|
# Special case for PE/COFF platforms: ld reports
|
||||||
|
# support for version-script, but doesn't actually
|
||||||
|
# DO anything with it.
|
||||||
|
case $host in
|
||||||
|
*cygwin* | *mingw32* )
|
||||||
|
have_ld_version_script=no
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([if using Solaris linker])
|
||||||
|
SLD=`$LD --version 2>&1 | grep Solaris`
|
||||||
|
if test "$SLD"; then
|
||||||
|
have_solaris_ld=yes
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
else
|
||||||
|
have_solaris_ld=no
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(HAVE_SOLARIS_LD, test "$have_solaris_ld" = "yes")
|
||||||
|
|
||||||
|
if test "$have_solaris_ld" = "yes"; then
|
||||||
|
GLD=`$LD --help < /dev/null 2>&1 | grep 'M mapfile'`
|
||||||
|
else
|
||||||
|
GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
|
||||||
|
fi
|
||||||
|
|
||||||
if test "$GLD"; then
|
if test "$GLD"; then
|
||||||
have_ld_version_script=yes
|
have_ld_version_script=yes
|
||||||
AC_MSG_RESULT(yes)
|
AC_MSG_RESULT(yes)
|
||||||
@@ -73,6 +103,9 @@ else
|
|||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(no)
|
||||||
AC_MSG_WARN(*** You have not enabled versioned symbols.)
|
AC_MSG_WARN(*** You have not enabled versioned symbols.)
|
||||||
fi
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
|
AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
|
||||||
|
|
||||||
if test "$have_ld_version_script" = "yes"; then
|
if test "$have_ld_version_script" = "yes"; then
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ RUNNING THE PROGRAMS: (VERY) BRIEF INTRO
|
|||||||
rpng is a simple PNG viewer that can display transparent PNGs with a
|
rpng is a simple PNG viewer that can display transparent PNGs with a
|
||||||
specified background color; for example,
|
specified background color; for example,
|
||||||
|
|
||||||
rpng -bgcolor #ff0000 toucan.png
|
rpng -bgcolor \#ff0000 toucan.png
|
||||||
|
|
||||||
would display the image with a red background. rpng2 is a progressive
|
would display the image with a red background. rpng2 is a progressive
|
||||||
viewer that simulates a web browser in some respects; it can display
|
viewer that simulates a web browser in some respects; it can display
|
||||||
|
|||||||
@@ -73,84 +73,10 @@ static void readpng2_error_handler(png_structp png_ptr, png_const_charp msg);
|
|||||||
|
|
||||||
void readpng2_version_info(void)
|
void readpng2_version_info(void)
|
||||||
{
|
{
|
||||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && \
|
fprintf(stderr, " Compiled with libpng %s; using libpng %s\n",
|
||||||
(defined(__i386__) || defined(_M_IX86) || defined(__x86_64__)) && \
|
PNG_LIBPNG_VER_STRING, png_libpng_ver);
|
||||||
defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
|
|
||||||
/*
|
|
||||||
* WARNING: This preprocessor approach means that the following code
|
|
||||||
* cannot be used with a libpng DLL older than 1.2.0--the
|
|
||||||
* compiled-in symbols for the new functions will not exist.
|
|
||||||
* (Could use dlopen() and dlsym() on Unix and corresponding
|
|
||||||
* calls for Windows, but not portable...)
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
int mmxsupport = png_mmx_support();
|
|
||||||
if (mmxsupport < 0)
|
|
||||||
fprintf(stderr, " Compiled with libpng %s; using libpng %s "
|
|
||||||
"without MMX support.\n", PNG_LIBPNG_VER_STRING, png_libpng_ver);
|
|
||||||
else {
|
|
||||||
int compilerID;
|
|
||||||
png_uint_32 mmx_mask = png_get_mmx_flagmask(
|
|
||||||
PNG_SELECT_READ | PNG_SELECT_WRITE, &compilerID);
|
|
||||||
|
|
||||||
fprintf(stderr, " Compiled with libpng %s; using libpng %s "
|
fprintf(stderr, " and with zlib %s; using zlib %s.\n",
|
||||||
"with MMX support\n (%s version).", PNG_LIBPNG_VER_STRING,
|
|
||||||
png_libpng_ver, compilerID == 1? "MSVC++" :
|
|
||||||
(compilerID == 2? "GNU C" : "unknown"));
|
|
||||||
fprintf(stderr, " Processor (x86%s) %s MMX instructions.\n",
|
|
||||||
#if defined(__x86_64__)
|
|
||||||
"_64",
|
|
||||||
#else
|
|
||||||
"",
|
|
||||||
#endif
|
|
||||||
mmxsupport? "supports" : "does not support");
|
|
||||||
if (mmxsupport > 0) {
|
|
||||||
int num_optims = 0;
|
|
||||||
|
|
||||||
fprintf(stderr,
|
|
||||||
" Potential MMX optimizations supported by libpng:\n");
|
|
||||||
if (mmx_mask & PNG_ASM_FLAG_MMX_READ_FILTER_SUB)
|
|
||||||
++num_optims;
|
|
||||||
if (mmx_mask & PNG_ASM_FLAG_MMX_READ_FILTER_UP)
|
|
||||||
++num_optims;
|
|
||||||
if (mmx_mask & PNG_ASM_FLAG_MMX_READ_FILTER_AVG)
|
|
||||||
++num_optims;
|
|
||||||
if (mmx_mask & PNG_ASM_FLAG_MMX_READ_FILTER_PAETH)
|
|
||||||
++num_optims;
|
|
||||||
if (num_optims)
|
|
||||||
fprintf(stderr,
|
|
||||||
" decoding %s row filters (reading)\n",
|
|
||||||
(num_optims == 4)? "all non-trivial" : "some");
|
|
||||||
if (mmx_mask & PNG_ASM_FLAG_MMX_READ_COMBINE_ROW) {
|
|
||||||
fprintf(stderr, " combining rows (reading)\n");
|
|
||||||
++num_optims;
|
|
||||||
}
|
|
||||||
if (mmx_mask & PNG_ASM_FLAG_MMX_READ_INTERLACE) {
|
|
||||||
fprintf(stderr,
|
|
||||||
" expanding interlacing (reading)\n");
|
|
||||||
++num_optims;
|
|
||||||
}
|
|
||||||
mmx_mask &= ~( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \
|
|
||||||
| PNG_ASM_FLAG_MMX_READ_INTERLACE \
|
|
||||||
| PNG_ASM_FLAG_MMX_READ_FILTER_SUB \
|
|
||||||
| PNG_ASM_FLAG_MMX_READ_FILTER_UP \
|
|
||||||
| PNG_ASM_FLAG_MMX_READ_FILTER_AVG \
|
|
||||||
| PNG_ASM_FLAG_MMX_READ_FILTER_PAETH );
|
|
||||||
if (mmx_mask) {
|
|
||||||
fprintf(stderr, " other (unknown)\n");
|
|
||||||
++num_optims;
|
|
||||||
}
|
|
||||||
if (num_optims == 0)
|
|
||||||
fprintf(stderr, " (none)\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
fprintf(stderr, " Compiled with libpng %s; using libpng %s "
|
|
||||||
"without MMX support.\n", PNG_LIBPNG_VER_STRING, png_libpng_ver);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
fprintf(stderr, " Compiled with zlib %s; using zlib %s.\n",
|
|
||||||
ZLIB_VERSION, zlib_version);
|
ZLIB_VERSION, zlib_version);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,7 +129,7 @@ int readpng2_init(mainprog_info *mainprog_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
|
#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||||
/* prepare the reader to ignore all recognized chunks whose data won't be
|
/* prepare the reader to ignore all recognized chunks whose data won't be
|
||||||
* used, i.e., all chunks recognized by libpng except for IHDR, PLTE, IDAT,
|
* used, i.e., all chunks recognized by libpng except for IHDR, PLTE, IDAT,
|
||||||
* IEND, tRNS, bKGD, gAMA, and sRGB (small performance improvement) */
|
* IEND, tRNS, bKGD, gAMA, and sRGB (small performance improvement) */
|
||||||
@@ -212,7 +138,7 @@ int readpng2_init(mainprog_info *mainprog_ptr)
|
|||||||
* version recognizes more chunks, add them to this list. If a
|
* version recognizes more chunks, add them to this list. If a
|
||||||
* future version of readpng2.c recognizes more chunks, delete them
|
* future version of readpng2.c recognizes more chunks, delete them
|
||||||
* from this list. */
|
* from this list. */
|
||||||
static const png_byte chunks_to_ignore[] = {
|
static /* const */ png_byte chunks_to_ignore[] = {
|
||||||
99, 72, 82, 77, '\0', /* cHRM */
|
99, 72, 82, 77, '\0', /* cHRM */
|
||||||
104, 73, 83, 84, '\0', /* hIST */
|
104, 73, 83, 84, '\0', /* hIST */
|
||||||
105, 67, 67, 80, '\0', /* iCCP */
|
105, 67, 67, 80, '\0', /* iCCP */
|
||||||
@@ -232,7 +158,7 @@ int readpng2_init(mainprog_info *mainprog_ptr)
|
|||||||
png_set_keep_unknown_chunks(png_ptr, 1 /* PNG_HANDLE_CHUNK_NEVER */,
|
png_set_keep_unknown_chunks(png_ptr, 1 /* PNG_HANDLE_CHUNK_NEVER */,
|
||||||
chunks_to_ignore, sizeof(chunks_to_ignore)/5);
|
chunks_to_ignore, sizeof(chunks_to_ignore)/5);
|
||||||
}
|
}
|
||||||
#endif /* PNG_UNKNOWN_CHUNKS_SUPPORTED */
|
#endif /* PNG_HANDLE_AS_UNKNOWN_SUPPORTED */
|
||||||
|
|
||||||
|
|
||||||
/* instead of doing png_init_io() here, now we set up our callback
|
/* instead of doing png_init_io() here, now we set up our callback
|
||||||
@@ -242,96 +168,6 @@ int readpng2_init(mainprog_info *mainprog_ptr)
|
|||||||
readpng2_info_callback, readpng2_row_callback, readpng2_end_callback);
|
readpng2_info_callback, readpng2_row_callback, readpng2_end_callback);
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* may as well enable or disable MMX routines here, if supported;
|
|
||||||
*
|
|
||||||
* to enable all: mask = png_get_mmx_flagmask (
|
|
||||||
* PNG_SELECT_READ | PNG_SELECT_WRITE, &compilerID);
|
|
||||||
* flags = png_get_asm_flags (png_ptr);
|
|
||||||
* flags |= mask;
|
|
||||||
* png_set_asm_flags (png_ptr, flags);
|
|
||||||
*
|
|
||||||
* to disable all: mask = png_get_mmx_flagmask (
|
|
||||||
* PNG_SELECT_READ | PNG_SELECT_WRITE, &compilerID);
|
|
||||||
* flags = png_get_asm_flags (png_ptr);
|
|
||||||
* flags &= ~mask;
|
|
||||||
* png_set_asm_flags (png_ptr, flags);
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__)) && \
|
|
||||||
defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
|
|
||||||
/*
|
|
||||||
* WARNING: This preprocessor approach means that the following code
|
|
||||||
* cannot be used with a libpng DLL older than 1.2.0--the
|
|
||||||
* compiled-in symbols for the new functions will not exist.
|
|
||||||
* (Could use dlopen() and dlsym() on Unix and corresponding
|
|
||||||
* calls for Windows, but not portable...)
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
|
|
||||||
png_uint_32 mmx_disable_mask = 0;
|
|
||||||
png_uint_32 asm_flags, mmx_mask;
|
|
||||||
int compilerID;
|
|
||||||
|
|
||||||
if (mainprog_ptr->nommxfilters)
|
|
||||||
mmx_disable_mask |= ( PNG_ASM_FLAG_MMX_READ_FILTER_SUB \
|
|
||||||
| PNG_ASM_FLAG_MMX_READ_FILTER_UP \
|
|
||||||
| PNG_ASM_FLAG_MMX_READ_FILTER_AVG \
|
|
||||||
| PNG_ASM_FLAG_MMX_READ_FILTER_PAETH );
|
|
||||||
if (mainprog_ptr->nommxcombine)
|
|
||||||
mmx_disable_mask |= PNG_ASM_FLAG_MMX_READ_COMBINE_ROW;
|
|
||||||
if (mainprog_ptr->nommxinterlace)
|
|
||||||
mmx_disable_mask |= PNG_ASM_FLAG_MMX_READ_INTERLACE;
|
|
||||||
asm_flags = png_get_asm_flags(png_ptr);
|
|
||||||
png_set_asm_flags(png_ptr, asm_flags & ~mmx_disable_mask);
|
|
||||||
|
|
||||||
|
|
||||||
/* Now query libpng's asm settings, just for yuks. Note that this
|
|
||||||
* differs from the querying of its *potential* MMX capabilities
|
|
||||||
* in readpng2_version_info(); this is true runtime verification. */
|
|
||||||
|
|
||||||
asm_flags = png_get_asm_flags(png_ptr);
|
|
||||||
mmx_mask = png_get_mmx_flagmask(PNG_SELECT_READ | PNG_SELECT_WRITE,
|
|
||||||
&compilerID);
|
|
||||||
if (asm_flags & PNG_ASM_FLAG_MMX_SUPPORT_COMPILED)
|
|
||||||
fprintf(stderr,
|
|
||||||
" MMX support (%s version) is compiled into libpng\n",
|
|
||||||
compilerID == 1? "MSVC++" :
|
|
||||||
(compilerID == 2? "GNU C" : "unknown"));
|
|
||||||
else
|
|
||||||
fprintf(stderr, " MMX support is not compiled into libpng\n");
|
|
||||||
fprintf(stderr, " MMX instructions are %ssupported by CPU\n",
|
|
||||||
(asm_flags & PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU)? "" : "not ");
|
|
||||||
fprintf(stderr, " MMX read support for combining rows is %sabled\n",
|
|
||||||
(asm_flags & PNG_ASM_FLAG_MMX_READ_COMBINE_ROW)? "en" : "dis");
|
|
||||||
fprintf(stderr,
|
|
||||||
" MMX read support for expanding interlacing is %sabled\n",
|
|
||||||
(asm_flags & PNG_ASM_FLAG_MMX_READ_INTERLACE)? "en" : "dis");
|
|
||||||
fprintf(stderr, " MMX read support for \"sub\" filter is %sabled\n",
|
|
||||||
(asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_SUB)? "en" : "dis");
|
|
||||||
fprintf(stderr, " MMX read support for \"up\" filter is %sabled\n",
|
|
||||||
(asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_UP)? "en" : "dis");
|
|
||||||
fprintf(stderr, " MMX read support for \"avg\" filter is %sabled\n",
|
|
||||||
(asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_AVG)? "en" : "dis");
|
|
||||||
fprintf(stderr, " MMX read support for \"Paeth\" filter is %sabled\n",
|
|
||||||
(asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_PAETH)? "en" : "dis");
|
|
||||||
asm_flags &= (mmx_mask & ~( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \
|
|
||||||
| PNG_ASM_FLAG_MMX_READ_INTERLACE \
|
|
||||||
| PNG_ASM_FLAG_MMX_READ_FILTER_SUB \
|
|
||||||
| PNG_ASM_FLAG_MMX_READ_FILTER_UP \
|
|
||||||
| PNG_ASM_FLAG_MMX_READ_FILTER_AVG \
|
|
||||||
| PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ));
|
|
||||||
if (asm_flags)
|
|
||||||
fprintf(stderr,
|
|
||||||
" additional MMX support is also enabled (0x%02lx)\n",
|
|
||||||
asm_flags);
|
|
||||||
#else /* !PNG_ASSEMBLER_CODE_SUPPORTED */
|
|
||||||
fprintf(stderr, " MMX querying is disabled in libpng.\n");
|
|
||||||
#endif /* ?PNG_ASSEMBLER_CODE_SUPPORTED */
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* make sure we save our pointers for use in readpng2_decode_data() */
|
/* make sure we save our pointers for use in readpng2_decode_data() */
|
||||||
|
|
||||||
mainprog_ptr->png_ptr = png_ptr;
|
mainprog_ptr->png_ptr = png_ptr;
|
||||||
|
|||||||
@@ -96,11 +96,6 @@ typedef struct _mainprog_info {
|
|||||||
int rowbytes;
|
int rowbytes;
|
||||||
int channels;
|
int channels;
|
||||||
int need_bgcolor;
|
int need_bgcolor;
|
||||||
#if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__))
|
|
||||||
int nommxfilters;
|
|
||||||
int nommxcombine;
|
|
||||||
int nommxinterlace;
|
|
||||||
#endif
|
|
||||||
int state;
|
int state;
|
||||||
uch bg_red;
|
uch bg_red;
|
||||||
uch bg_green;
|
uch bg_green;
|
||||||
|
|||||||
@@ -85,7 +85,33 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
#ifdef __CYGWIN__
|
||||||
|
/* getch replacement. Turns out, we don't really need this,
|
||||||
|
* but leave it here if we ever enable any of the uses of
|
||||||
|
* _getch in the main code
|
||||||
|
*/
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <termio.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
int repl_getch( void )
|
||||||
|
{
|
||||||
|
char ch;
|
||||||
|
int fd = fileno(stdin);
|
||||||
|
struct termio old_tty, new_tty;
|
||||||
|
|
||||||
|
ioctl(fd, TCGETA, &old_tty);
|
||||||
|
new_tty = old_tty;
|
||||||
|
new_tty.c_lflag &= ~(ICANON | ECHO | ISIG);
|
||||||
|
ioctl(fd, TCSETA, &new_tty);
|
||||||
|
fread(&ch, 1, sizeof(ch), stdin);
|
||||||
|
ioctl(fd, TCSETA, &old_tty);
|
||||||
|
|
||||||
|
return ch;
|
||||||
|
}
|
||||||
|
#define _getch repl_getch
|
||||||
|
#else
|
||||||
#include <conio.h> /* only for _getch() */
|
#include <conio.h> /* only for _getch() */
|
||||||
|
#endif
|
||||||
|
|
||||||
/* #define DEBUG : this enables the Trace() macros */
|
/* #define DEBUG : this enables the Trace() macros */
|
||||||
|
|
||||||
@@ -153,7 +179,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
|||||||
|
|
||||||
filename = (char *)NULL;
|
filename = (char *)NULL;
|
||||||
|
|
||||||
|
#ifndef __CYGWIN__
|
||||||
/* First reenable console output, which normally goes to the bit bucket
|
/* First reenable console output, which normally goes to the bit bucket
|
||||||
* for windowed apps. Closing the console window will terminate the
|
* for windowed apps. Closing the console window will terminate the
|
||||||
* app. Thanks to David.Geldreich@realviz.com for supplying the magical
|
* app. Thanks to David.Geldreich@realviz.com for supplying the magical
|
||||||
@@ -162,6 +188,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
|||||||
AllocConsole();
|
AllocConsole();
|
||||||
freopen("CONOUT$", "a", stderr);
|
freopen("CONOUT$", "a", stderr);
|
||||||
freopen("CONOUT$", "a", stdout);
|
freopen("CONOUT$", "a", stdout);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Next set the default value for our display-system exponent, i.e.,
|
/* Next set the default value for our display-system exponent, i.e.,
|
||||||
@@ -279,7 +306,9 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
|||||||
/* print usage screen if any errors up to this point */
|
/* print usage screen if any errors up to this point */
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
|
#ifndef __CYGWIN__
|
||||||
int ch;
|
int ch;
|
||||||
|
#endif
|
||||||
|
|
||||||
fprintf(stderr, "\n%s %s: %s\n\n", PROGNAME, VERSION, appname);
|
fprintf(stderr, "\n%s %s: %s\n\n", PROGNAME, VERSION, appname);
|
||||||
readpng_version_info();
|
readpng_version_info();
|
||||||
@@ -293,11 +322,15 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
|||||||
"\t\t (e.g., ``#ff7700'' for orange: same as HTML colors);\n"
|
"\t\t (e.g., ``#ff7700'' for orange: same as HTML colors);\n"
|
||||||
"\t\t used with transparent images\n"
|
"\t\t used with transparent images\n"
|
||||||
"\nPress Q, Esc or mouse button 1 after image is displayed to quit.\n"
|
"\nPress Q, Esc or mouse button 1 after image is displayed to quit.\n"
|
||||||
|
#ifndef __CYGWIN__
|
||||||
"Press Q or Esc to quit this usage screen.\n"
|
"Press Q or Esc to quit this usage screen.\n"
|
||||||
|
#endif
|
||||||
"\n", PROGNAME, default_display_exponent);
|
"\n", PROGNAME, default_display_exponent);
|
||||||
|
#ifndef __CYGWIN__
|
||||||
do
|
do
|
||||||
ch = _getch();
|
ch = _getch();
|
||||||
while (ch != 'q' && ch != 'Q' && ch != 0x1B);
|
while (ch != 'q' && ch != 'Q' && ch != 0x1B);
|
||||||
|
#endif
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -333,18 +366,24 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
|||||||
|
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
|
#ifndef __CYGWIN__
|
||||||
int ch;
|
int ch;
|
||||||
|
#endif
|
||||||
|
|
||||||
fprintf(stderr, PROGNAME ": aborting.\n");
|
fprintf(stderr, PROGNAME ": aborting.\n");
|
||||||
|
#ifndef __CYGWIN__
|
||||||
do
|
do
|
||||||
ch = _getch();
|
ch = _getch();
|
||||||
while (ch != 'q' && ch != 'Q' && ch != 0x1B);
|
while (ch != 'q' && ch != 'Q' && ch != 0x1B);
|
||||||
|
#endif
|
||||||
exit(2);
|
exit(2);
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr, "\n%s %s: %s\n", PROGNAME, VERSION, appname);
|
fprintf(stderr, "\n%s %s: %s\n", PROGNAME, VERSION, appname);
|
||||||
|
#ifndef __CYGWIN__
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"\n [console window: closing this window will terminate %s]\n\n",
|
"\n [console window: closing this window will terminate %s]\n\n",
|
||||||
PROGNAME);
|
PROGNAME);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -417,7 +456,12 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
|||||||
/* wait for the user to tell us when to quit */
|
/* wait for the user to tell us when to quit */
|
||||||
|
|
||||||
printf(
|
printf(
|
||||||
"Done. Press Q, Esc or mouse button 1 (within image window) to quit.\n");
|
#ifndef __CYGWIN__
|
||||||
|
"Done. Press Q, Esc or mouse button 1 (within image window) to quit.\n"
|
||||||
|
#else
|
||||||
|
"Done. Press mouse button 1 (within image window) to quit.\n"
|
||||||
|
#endif
|
||||||
|
);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|
||||||
while (GetMessage(&msg, NULL, 0, 0)) {
|
while (GetMessage(&msg, NULL, 0, 0)) {
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
- 2.01: fixed 64-bit typo in readpng2.c
|
- 2.01: fixed 64-bit typo in readpng2.c
|
||||||
- 2.02: fixed improper display of usage screen on PNG error(s); fixed
|
- 2.02: fixed improper display of usage screen on PNG error(s); fixed
|
||||||
unexpected-EOF and file-read-error cases
|
unexpected-EOF and file-read-error cases
|
||||||
|
- 2.03: removed runtime MMX-enabling/disabling and obsolete -mmx* options
|
||||||
|
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -95,7 +96,33 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <math.h> /* only for PvdM background code */
|
#include <math.h> /* only for PvdM background code */
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
#ifdef __CYGWIN__
|
||||||
|
/* getch replacement. Turns out, we don't really need this,
|
||||||
|
* but leave it here if we ever enable any of the uses of
|
||||||
|
* _getch in the main code
|
||||||
|
*/
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <termio.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
int repl_getch( void )
|
||||||
|
{
|
||||||
|
char ch;
|
||||||
|
int fd = fileno(stdin);
|
||||||
|
struct termio old_tty, new_tty;
|
||||||
|
|
||||||
|
ioctl(fd, TCGETA, &old_tty);
|
||||||
|
new_tty = old_tty;
|
||||||
|
new_tty.c_lflag &= ~(ICANON | ECHO | ISIG);
|
||||||
|
ioctl(fd, TCSETA, &new_tty);
|
||||||
|
fread(&ch, 1, sizeof(ch), stdin);
|
||||||
|
ioctl(fd, TCSETA, &old_tty);
|
||||||
|
|
||||||
|
return ch;
|
||||||
|
}
|
||||||
|
#define _getch repl_getch
|
||||||
|
#else
|
||||||
#include <conio.h> /* only for _getch() */
|
#include <conio.h> /* only for _getch() */
|
||||||
|
#endif
|
||||||
|
|
||||||
/* all for PvdM background code: */
|
/* all for PvdM background code: */
|
||||||
#ifndef PI
|
#ifndef PI
|
||||||
@@ -269,7 +296,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
|||||||
filename = (char *)NULL;
|
filename = (char *)NULL;
|
||||||
memset(&rpng2_info, 0, sizeof(mainprog_info));
|
memset(&rpng2_info, 0, sizeof(mainprog_info));
|
||||||
|
|
||||||
|
#ifndef __CYGWIN__
|
||||||
/* Next reenable console output, which normally goes to the bit bucket
|
/* Next reenable console output, which normally goes to the bit bucket
|
||||||
* for windowed apps. Closing the console window will terminate the
|
* for windowed apps. Closing the console window will terminate the
|
||||||
* app. Thanks to David.Geldreich@realviz.com for supplying the magical
|
* app. Thanks to David.Geldreich@realviz.com for supplying the magical
|
||||||
@@ -278,7 +305,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
|||||||
AllocConsole();
|
AllocConsole();
|
||||||
freopen("CONOUT$", "a", stderr);
|
freopen("CONOUT$", "a", stderr);
|
||||||
freopen("CONOUT$", "a", stdout);
|
freopen("CONOUT$", "a", stdout);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Set the default value for our display-system exponent, i.e., the
|
/* Set the default value for our display-system exponent, i.e., the
|
||||||
* product of the CRT exponent and the exponent corresponding to
|
* product of the CRT exponent and the exponent corresponding to
|
||||||
@@ -395,18 +422,6 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
|||||||
}
|
}
|
||||||
} else if (!strncmp(*argv, "-timing", 2)) {
|
} else if (!strncmp(*argv, "-timing", 2)) {
|
||||||
timing = TRUE;
|
timing = TRUE;
|
||||||
#if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__))
|
|
||||||
} else if (!strncmp(*argv, "-nommxfilters", 7)) {
|
|
||||||
rpng2_info.nommxfilters = TRUE;
|
|
||||||
} else if (!strncmp(*argv, "-nommxcombine", 7)) {
|
|
||||||
rpng2_info.nommxcombine = TRUE;
|
|
||||||
} else if (!strncmp(*argv, "-nommxinterlace", 7)) {
|
|
||||||
rpng2_info.nommxinterlace = TRUE;
|
|
||||||
} else if (!strcmp(*argv, "-nommx")) {
|
|
||||||
rpng2_info.nommxfilters = TRUE;
|
|
||||||
rpng2_info.nommxcombine = TRUE;
|
|
||||||
rpng2_info.nommxinterlace = TRUE;
|
|
||||||
#endif
|
|
||||||
} else {
|
} else {
|
||||||
if (**argv != '-') {
|
if (**argv != '-') {
|
||||||
filename = *argv;
|
filename = *argv;
|
||||||
@@ -424,15 +439,14 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
|||||||
/* print usage screen if any errors up to this point */
|
/* print usage screen if any errors up to this point */
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
|
#ifndef __CYGWIN__
|
||||||
int ch;
|
int ch;
|
||||||
|
#endif
|
||||||
|
|
||||||
fprintf(stderr, "\n%s %s: %s\n\n", PROGNAME, VERSION, appname);
|
fprintf(stderr, "\n%s %s: %s\n\n", PROGNAME, VERSION, appname);
|
||||||
readpng2_version_info();
|
readpng2_version_info();
|
||||||
fprintf(stderr, "\n"
|
fprintf(stderr, "\n"
|
||||||
"Usage: %s [-gamma exp] [-bgcolor bg | -bgpat pat] [-timing]\n"
|
"Usage: %s [-gamma exp] [-bgcolor bg | -bgpat pat] [-timing]\n"
|
||||||
#if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__))
|
|
||||||
" %*s [[-nommxfilters] [-nommxcombine] [-nommxinterlace] | -nommx]\n"
|
|
||||||
#endif
|
|
||||||
" %*s file.png\n\n"
|
" %*s file.png\n\n"
|
||||||
" exp \ttransfer-function exponent (``gamma'') of the display\n"
|
" exp \ttransfer-function exponent (``gamma'') of the display\n"
|
||||||
"\t\t system in floating-point format (e.g., ``%.1f''); equal\n"
|
"\t\t system in floating-point format (e.g., ``%.1f''); equal\n"
|
||||||
@@ -445,21 +459,24 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
|||||||
"\t\t transparent images; overrides -bgcolor option\n"
|
"\t\t transparent images; overrides -bgcolor option\n"
|
||||||
" -timing\tenables delay for every block read, to simulate modem\n"
|
" -timing\tenables delay for every block read, to simulate modem\n"
|
||||||
"\t\t download of image (~36 Kbps)\n"
|
"\t\t download of image (~36 Kbps)\n"
|
||||||
#if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__))
|
|
||||||
" -nommx*\tdisable optimized MMX routines for decoding row filters,\n"
|
|
||||||
"\t\t combining rows, and expanding interlacing, respectively\n"
|
|
||||||
#endif
|
|
||||||
"\nPress Q, Esc or mouse button 1 after image is displayed to quit.\n"
|
"\nPress Q, Esc or mouse button 1 after image is displayed to quit.\n"
|
||||||
|
#ifndef __CYGWIN__
|
||||||
"Press Q or Esc to quit this usage screen. ",
|
"Press Q or Esc to quit this usage screen. ",
|
||||||
|
#else
|
||||||
|
,
|
||||||
|
#endif
|
||||||
PROGNAME,
|
PROGNAME,
|
||||||
#if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__))
|
#if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__)) && \
|
||||||
|
!(defined(__CYGWIN__) || defined(__MINGW32__))
|
||||||
(int)strlen(PROGNAME), " ",
|
(int)strlen(PROGNAME), " ",
|
||||||
#endif
|
#endif
|
||||||
(int)strlen(PROGNAME), " ", default_display_exponent, num_bgpat);
|
(int)strlen(PROGNAME), " ", default_display_exponent, num_bgpat);
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
|
#ifndef __CYGWIN__
|
||||||
do
|
do
|
||||||
ch = _getch();
|
ch = _getch();
|
||||||
while (ch != 'q' && ch != 'Q' && ch != 0x1B);
|
while (ch != 'q' && ch != 'Q' && ch != 0x1B);
|
||||||
|
#endif
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -496,18 +513,24 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
|||||||
|
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
|
#ifndef __CYGWIN__
|
||||||
int ch;
|
int ch;
|
||||||
|
#endif
|
||||||
|
|
||||||
fprintf(stderr, PROGNAME ": aborting.\n");
|
fprintf(stderr, PROGNAME ": aborting.\n");
|
||||||
|
#ifndef __CYGWIN__
|
||||||
do
|
do
|
||||||
ch = _getch();
|
ch = _getch();
|
||||||
while (ch != 'q' && ch != 'Q' && ch != 0x1B);
|
while (ch != 'q' && ch != 'Q' && ch != 0x1B);
|
||||||
|
#endif
|
||||||
exit(2);
|
exit(2);
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr, "\n%s %s: %s\n", PROGNAME, VERSION, appname);
|
fprintf(stderr, "\n%s %s: %s\n", PROGNAME, VERSION, appname);
|
||||||
|
#ifndef __CYGWIN__
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"\n [console window: closing this window will terminate %s]\n\n",
|
"\n [console window: closing this window will terminate %s]\n\n",
|
||||||
PROGNAME);
|
PROGNAME);
|
||||||
|
#endif
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1150,7 +1173,12 @@ static void rpng2_win_finish_display()
|
|||||||
|
|
||||||
rpng2_info.state = kDone;
|
rpng2_info.state = kDone;
|
||||||
printf(
|
printf(
|
||||||
"Done. Press Q, Esc or mouse button 1 (within image window) to quit.\n");
|
#ifndef __CYGWIN__
|
||||||
|
"Done. Press Q, Esc or mouse button 1 (within image window) to quit.\n"
|
||||||
|
#else
|
||||||
|
"Done. Press mouse button 1 (within image window) to quit.\n"
|
||||||
|
#endif
|
||||||
|
);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
- 2.02: fixed improper display of usage screen on PNG error(s); fixed
|
- 2.02: fixed improper display of usage screen on PNG error(s); fixed
|
||||||
unexpected-EOF and file-read-error cases; fixed Trace() cut-and-
|
unexpected-EOF and file-read-error cases; fixed Trace() cut-and-
|
||||||
paste bugs
|
paste bugs
|
||||||
|
- 2.03: deleted runtime MMX-enabling/disabling and obsolete -mmx* options
|
||||||
|
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -94,7 +95,7 @@
|
|||||||
|
|
||||||
#define PROGNAME "rpng2-x"
|
#define PROGNAME "rpng2-x"
|
||||||
#define LONGNAME "Progressive PNG Viewer for X"
|
#define LONGNAME "Progressive PNG Viewer for X"
|
||||||
#define VERSION "2.02 of 16 March 2008"
|
#define VERSION "2.03 of 25 February 2010"
|
||||||
#define RESNAME "rpng2" /* our X resource application name */
|
#define RESNAME "rpng2" /* our X resource application name */
|
||||||
#define RESCLASS "Rpng" /* our X resource class name */
|
#define RESCLASS "Rpng" /* our X resource class name */
|
||||||
|
|
||||||
@@ -434,18 +435,6 @@ int main(int argc, char **argv)
|
|||||||
else if (loop_interval > 100000) /* bit more than one day */
|
else if (loop_interval > 100000) /* bit more than one day */
|
||||||
loop_interval = 100000;
|
loop_interval = 100000;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__))
|
|
||||||
} else if (!strncmp(*argv, "-nommxfilters", 7)) {
|
|
||||||
rpng2_info.nommxfilters = TRUE;
|
|
||||||
} else if (!strncmp(*argv, "-nommxcombine", 7)) {
|
|
||||||
rpng2_info.nommxcombine = TRUE;
|
|
||||||
} else if (!strncmp(*argv, "-nommxinterlace", 7)) {
|
|
||||||
rpng2_info.nommxinterlace = TRUE;
|
|
||||||
} else if (!strcmp(*argv, "-nommx")) {
|
|
||||||
rpng2_info.nommxfilters = TRUE;
|
|
||||||
rpng2_info.nommxcombine = TRUE;
|
|
||||||
rpng2_info.nommxinterlace = TRUE;
|
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
if (**argv != '-') {
|
if (**argv != '-') {
|
||||||
@@ -468,9 +457,6 @@ int main(int argc, char **argv)
|
|||||||
readpng2_version_info();
|
readpng2_version_info();
|
||||||
fprintf(stderr, "\n"
|
fprintf(stderr, "\n"
|
||||||
"Usage: %s [-display xdpy] [-gamma exp] [-bgcolor bg | -bgpat pat]\n"
|
"Usage: %s [-display xdpy] [-gamma exp] [-bgcolor bg | -bgpat pat]\n"
|
||||||
#if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__))
|
|
||||||
" %*s [[-nommxfilters] [-nommxcombine] [-nommxinterlace] | -nommx]\n"
|
|
||||||
#endif
|
|
||||||
#ifdef FEATURE_LOOP
|
#ifdef FEATURE_LOOP
|
||||||
" %*s [-usleep dur | -timing] [-pause] [-loop [sec]] file.png\n\n"
|
" %*s [-usleep dur | -timing] [-pause] [-loop [sec]] file.png\n\n"
|
||||||
#else
|
#else
|
||||||
@@ -490,10 +476,6 @@ int main(int argc, char **argv)
|
|||||||
" -loop\tloops through background images after initial display\n"
|
" -loop\tloops through background images after initial display\n"
|
||||||
"\t\t is complete (depends on -bgpat)\n"
|
"\t\t is complete (depends on -bgpat)\n"
|
||||||
" sec \tseconds to display each background image (default = 2)\n"
|
" sec \tseconds to display each background image (default = 2)\n"
|
||||||
#endif
|
|
||||||
#if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__))
|
|
||||||
" -nommx*\tdisable optimized MMX routines for decoding row filters,\n"
|
|
||||||
"\t\t combining rows, and expanding interlacing, respectively\n"
|
|
||||||
#endif
|
#endif
|
||||||
" dur \tduration in microseconds to wait after displaying each\n"
|
" dur \tduration in microseconds to wait after displaying each\n"
|
||||||
"\t\t row (for demo purposes)\n"
|
"\t\t row (for demo purposes)\n"
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
cp ../../pngminus/png2pnm.c pngm2pnm.c
|
cp ../../pngminus/png2pnm.c pngm2pnm.c
|
||||||
cp ../../../*.h .
|
cp ../../../*.h .
|
||||||
cp ../../../*.c .
|
cp ../../../*.c .
|
||||||
@@ -5,4 +7,4 @@ rm example.c pngtest.c pngpread.c pngw*.c
|
|||||||
# change the following 2 lines if zlib is somewhere else
|
# change the following 2 lines if zlib is somewhere else
|
||||||
cp ../../../../zlib/*.h .
|
cp ../../../../zlib/*.h .
|
||||||
cp ../../../../zlib/*.c .
|
cp ../../../../zlib/*.c .
|
||||||
rm minigzip.c example.c compress.c deflate.c
|
rm minigzip.c example.c compress.c deflate.c gz*
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ O=.o
|
|||||||
L=.a
|
L=.a
|
||||||
E=
|
E=
|
||||||
|
|
||||||
ZOBJS = adler32$(O) crc32$(O) gzio$(O) \
|
ZOBJS = adler32$(O) crc32$(O) \
|
||||||
infback$(O) inffast$(O) inflate$(O) inftrees$(O) \
|
infback$(O) inffast$(O) inflate$(O) inftrees$(O) \
|
||||||
trees$(O) uncompr$(O) zutil$(O)
|
trees$(O) uncompr$(O) zutil$(O)
|
||||||
|
|
||||||
@@ -34,7 +34,6 @@ all: pngm2pnm$(E)
|
|||||||
|
|
||||||
pngm2pnm$(E): $(OBJS)
|
pngm2pnm$(E): $(OBJS)
|
||||||
$(LD) -o pngm2pnm$(E) $(OBJS)
|
$(LD) -o pngm2pnm$(E) $(OBJS)
|
||||||
strip pngm2pnm$(E)
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) pngm2pnm$(O)
|
$(RM) pngm2pnm$(O)
|
||||||
|
|||||||
@@ -12,10 +12,6 @@
|
|||||||
#ifndef MINRDPNGCONF_H
|
#ifndef MINRDPNGCONF_H
|
||||||
#define MINRDPNGCONF_H
|
#define MINRDPNGCONF_H
|
||||||
|
|
||||||
#ifdef NJET
|
|
||||||
/* No 16-bit support beyond reading with strip_16 */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PNG_NO_WARNINGS
|
#define PNG_NO_WARNINGS
|
||||||
#define png_warning(s1,s2) ""
|
#define png_warning(s1,s2) ""
|
||||||
#define png_chunk_warning(s1,s2) ""
|
#define png_chunk_warning(s1,s2) ""
|
||||||
@@ -23,9 +19,10 @@
|
|||||||
#define png_error(s1,s2) png_err(s1)
|
#define png_error(s1,s2) png_err(s1)
|
||||||
#define png_chunk_error(s1,s2) png_err(s1)
|
#define png_chunk_error(s1,s2) png_err(s1)
|
||||||
|
|
||||||
|
#define PNG_NO_READ_BGR
|
||||||
#define PNG_NO_READ_GAMMA
|
#define PNG_NO_READ_GAMMA
|
||||||
#define PNG_NO_READ_BACKGROUND
|
#define PNG_NO_READ_BACKGROUND
|
||||||
#define PNG_NO_READ_DITHER
|
#define PNG_NO_READ_QUANTIZE
|
||||||
#define PNG_NO_READ_INVERT
|
#define PNG_NO_READ_INVERT
|
||||||
#define PNG_NO_READ_SHIFT
|
#define PNG_NO_READ_SHIFT
|
||||||
#define PNG_NO_READ_PACK
|
#define PNG_NO_READ_PACK
|
||||||
@@ -41,6 +38,7 @@
|
|||||||
#define PNG_NO_READ_gAMA
|
#define PNG_NO_READ_gAMA
|
||||||
#define PNG_NO_READ_hIST
|
#define PNG_NO_READ_hIST
|
||||||
#define PNG_NO_READ_iCCP
|
#define PNG_NO_READ_iCCP
|
||||||
|
#define PNG_NO_READ_oFFs
|
||||||
#define PNG_NO_READ_pCAL
|
#define PNG_NO_READ_pCAL
|
||||||
#define PNG_NO_READ_pHYs
|
#define PNG_NO_READ_pHYs
|
||||||
#define PNG_NO_READ_sBIT
|
#define PNG_NO_READ_sBIT
|
||||||
@@ -54,11 +52,11 @@
|
|||||||
#define PNG_NO_READ_EMPTY_PLTE
|
#define PNG_NO_READ_EMPTY_PLTE
|
||||||
#define PNG_NO_READ_OPT_PLTE
|
#define PNG_NO_READ_OPT_PLTE
|
||||||
#define PNG_NO_READ_STRIP_ALPHA
|
#define PNG_NO_READ_STRIP_ALPHA
|
||||||
#define PNG_NO_READ_oFFs
|
|
||||||
|
|
||||||
#define PNG_NO_WRITE_SUPPORTED
|
#define PNG_NO_WRITE_SUPPORTED
|
||||||
|
|
||||||
#define PNG_NO_INFO_IMAGE
|
#define PNG_NO_INFO_IMAGE
|
||||||
|
#define PNG_NO_IO_STATE
|
||||||
#define PNG_NO_USER_MEM
|
#define PNG_NO_USER_MEM
|
||||||
#define PNG_NO_FIXED_POINT_SUPPORTED
|
#define PNG_NO_FIXED_POINT_SUPPORTED
|
||||||
#define PNG_NO_MNG_FEATURES
|
#define PNG_NO_MNG_FEATURES
|
||||||
@@ -69,5 +67,9 @@
|
|||||||
#define PNG_NO_ERROR_NUMBERS
|
#define PNG_NO_ERROR_NUMBERS
|
||||||
#define PNG_NO_EASY_ACCESS
|
#define PNG_NO_EASY_ACCESS
|
||||||
#define PNG_NO_PROGRESSIVE_READ
|
#define PNG_NO_PROGRESSIVE_READ
|
||||||
|
#define PNG_NO_USER_LIMITS
|
||||||
|
#define PNG_NO_SET_USER_LIMITS
|
||||||
|
#define PNG_NO_TIME_RFC1123
|
||||||
|
|
||||||
#endif /* MINRDPNGCONF_H */
|
#endif /* MINRDPNGCONF_H */
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
#include "zlib.h"
|
|
||||||
|
|
||||||
int ZEXPORT inflate(strm, flush)
|
|
||||||
z_streamp strm;
|
|
||||||
int flush;
|
|
||||||
{ return Z_OK ; }
|
|
||||||
|
|
||||||
int ZEXPORT inflateReset(strm)
|
|
||||||
z_streamp strm;
|
|
||||||
{ return Z_OK ; }
|
|
||||||
|
|
||||||
int ZEXPORT inflateEnd(strm)
|
|
||||||
z_streamp strm;
|
|
||||||
{ return Z_STREAM_ERROR ; }
|
|
||||||
|
|
||||||
int ZEXPORT inflateInit_(strm, version, stream_size)
|
|
||||||
z_streamp strm;
|
|
||||||
const char *version;
|
|
||||||
int stream_size;
|
|
||||||
{ return Z_OK ; }
|
|
||||||
|
|
||||||
int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size)
|
|
||||||
z_streamp strm;
|
|
||||||
int windowBits;
|
|
||||||
const char *version;
|
|
||||||
int stream_size;
|
|
||||||
{ return Z_STREAM_ERROR ; }
|
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
cp ../../pngminus/pnm2png.c pnm2pngm.c
|
cp ../../pngminus/pnm2png.c pnm2pngm.c
|
||||||
cp ../../../*.h .
|
cp ../../../*.h .
|
||||||
cp ../../../*.c .
|
cp ../../../*.c .
|
||||||
@@ -6,4 +8,4 @@ rm example.c pngtest.c pngr*.c pngpread.c
|
|||||||
cp ../../../../zlib/*.h .
|
cp ../../../../zlib/*.h .
|
||||||
cp ../../../../zlib/*.c .
|
cp ../../../../zlib/*.c .
|
||||||
rm inf*.[ch]
|
rm inf*.[ch]
|
||||||
rm minigzip.c example.c
|
rm uncompr.c minigzip.c example.c gz*
|
||||||
|
|||||||
@@ -14,9 +14,8 @@ O=.o
|
|||||||
L=.a
|
L=.a
|
||||||
E=
|
E=
|
||||||
|
|
||||||
ZOBJS = adler32$(O) compress$(O) crc32$(O) deflate$(O) gzio$(O) \
|
ZOBJS = adler32$(O) compress$(O) crc32$(O) deflate$(O) \
|
||||||
dummy_inflate$(O) \
|
trees$(O) zutil$(O)
|
||||||
trees$(O) uncompr$(O) zutil$(O)
|
|
||||||
|
|
||||||
OBJS = pnm2pngm$(O) png$(O) pngerror$(O) pngget$(O) pngmem$(O) \
|
OBJS = pnm2pngm$(O) png$(O) pngerror$(O) pngget$(O) pngmem$(O) \
|
||||||
pngset$(O) pngtrans$(O) pngwio$(O) pngwrite$(O) \
|
pngset$(O) pngtrans$(O) pngwio$(O) pngwrite$(O) \
|
||||||
@@ -33,7 +32,6 @@ all: pnm2pngm$(E)
|
|||||||
|
|
||||||
pnm2pngm$(E): $(OBJS)
|
pnm2pngm$(E): $(OBJS)
|
||||||
$(LD) -o pnm2pngm$(E) $(OBJS)
|
$(LD) -o pnm2pngm$(E) $(OBJS)
|
||||||
strip pnm2pngm$(E)
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) pnm2pngm$(O)
|
$(RM) pnm2pngm$(O)
|
||||||
|
|||||||
@@ -22,8 +22,8 @@
|
|||||||
#define png_chunk_error(s1,s2) png_err(s1)
|
#define png_chunk_error(s1,s2) png_err(s1)
|
||||||
|
|
||||||
#define PNG_NO_WRITE_BACKGROUND
|
#define PNG_NO_WRITE_BACKGROUND
|
||||||
#define PNG_NO_WRITE_GAMMA
|
#define PNG_NO_WRITE_BGR
|
||||||
#define PNG_NO_WRITE_DITHER
|
#define PNG_NO_WRITE_QUANTIZE
|
||||||
#define PNG_NO_WRITE_INVERT
|
#define PNG_NO_WRITE_INVERT
|
||||||
#define PNG_NO_WRITE_SHIFT
|
#define PNG_NO_WRITE_SHIFT
|
||||||
#define PNG_NO_WRITE_PACK
|
#define PNG_NO_WRITE_PACK
|
||||||
@@ -58,6 +58,7 @@
|
|||||||
#define PNG_NO_WRITE_FLUSH
|
#define PNG_NO_WRITE_FLUSH
|
||||||
|
|
||||||
#define PNG_NO_INFO_IMAGE
|
#define PNG_NO_INFO_IMAGE
|
||||||
|
#define PNG_NO_IO_STATE
|
||||||
#define PNG_NO_USER_MEM
|
#define PNG_NO_USER_MEM
|
||||||
#define PNG_NO_FIXED_POINT_SUPPORTED
|
#define PNG_NO_FIXED_POINT_SUPPORTED
|
||||||
#define PNG_NO_MNG_FEATURES
|
#define PNG_NO_MNG_FEATURES
|
||||||
@@ -67,5 +68,8 @@
|
|||||||
#define PNG_NO_ZALLOC_ZERO
|
#define PNG_NO_ZALLOC_ZERO
|
||||||
#define PNG_NO_ERROR_NUMBERS
|
#define PNG_NO_ERROR_NUMBERS
|
||||||
#define PNG_NO_EASY_ACCESS
|
#define PNG_NO_EASY_ACCESS
|
||||||
|
#define PNG_NO_USER_LIMITS
|
||||||
|
#define PNG_NO_SET_USER_LIMITS
|
||||||
|
#define PNG_NO_TIME_RFC1123
|
||||||
|
|
||||||
#endif /* MINWRPNGCONF_H */
|
#endif /* MINWRPNGCONF_H */
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
cp ../../gregbook/rpng2-x.c ../../gregbook/readpng2.[ch] .
|
cp ../../gregbook/rpng2-x.c ../../gregbook/readpng2.[ch] .
|
||||||
cp ../../gregbook/COPYING ../../gregbook/LICENSE .
|
cp ../../gregbook/COPYING ../../gregbook/LICENSE .
|
||||||
cp ../../../*.h .
|
cp ../../../*.h .
|
||||||
@@ -6,4 +8,4 @@ rm example.c pngtest.c pngw*.c
|
|||||||
# change the following 2 lines if zlib is somewhere else
|
# change the following 2 lines if zlib is somewhere else
|
||||||
cp ../../../../zlib/*.h .
|
cp ../../../../zlib/*.h .
|
||||||
cp ../../../../zlib/*.c .
|
cp ../../../../zlib/*.c .
|
||||||
rm minigzip.c example.c compress.c deflate.c
|
rm minigzip.c example.c compress.c deflate.c gz*
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ O=.o
|
|||||||
L=.a
|
L=.a
|
||||||
E=
|
E=
|
||||||
|
|
||||||
ZOBJS = adler32$(O) crc32$(O) gzio$(O) \
|
ZOBJS = adler32$(O) crc32$(O) \
|
||||||
infback$(O) inffast$(O) inflate$(O) inftrees$(O) \
|
infback$(O) inffast$(O) inflate$(O) inftrees$(O) \
|
||||||
trees$(O) uncompr$(O) zutil$(O)
|
trees$(O) uncompr$(O) zutil$(O)
|
||||||
|
|
||||||
@@ -50,7 +50,6 @@ all: 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)
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) rpng2-x$(O)
|
$(RM) rpng2-x$(O)
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
#define png_error(s1,s2) png_err(s1)
|
#define png_error(s1,s2) png_err(s1)
|
||||||
#define png_chunk_error(s1,s2) png_err(s1)
|
#define png_chunk_error(s1,s2) png_err(s1)
|
||||||
|
|
||||||
|
#define PNG_NO_READ_BGR
|
||||||
#define PNG_NO_READ_DITHER
|
#define PNG_NO_READ_DITHER
|
||||||
#define PNG_NO_READ_INVERT
|
#define PNG_NO_READ_INVERT
|
||||||
#define PNG_NO_READ_SHIFT
|
#define PNG_NO_READ_SHIFT
|
||||||
@@ -33,6 +34,7 @@
|
|||||||
#define PNG_NO_READ_cHRM
|
#define PNG_NO_READ_cHRM
|
||||||
#define PNG_NO_READ_hIST
|
#define PNG_NO_READ_hIST
|
||||||
#define PNG_NO_READ_iCCP
|
#define PNG_NO_READ_iCCP
|
||||||
|
#define PNG_NO_READ_oFFs
|
||||||
#define PNG_NO_READ_pCAL
|
#define PNG_NO_READ_pCAL
|
||||||
#define PNG_NO_READ_pHYs
|
#define PNG_NO_READ_pHYs
|
||||||
#define PNG_NO_READ_sBIT
|
#define PNG_NO_READ_sBIT
|
||||||
@@ -45,11 +47,11 @@
|
|||||||
#define PNG_NO_READ_EMPTY_PLTE
|
#define PNG_NO_READ_EMPTY_PLTE
|
||||||
#define PNG_NO_READ_OPT_PLTE
|
#define PNG_NO_READ_OPT_PLTE
|
||||||
#define PNG_NO_READ_STRIP_ALPHA
|
#define PNG_NO_READ_STRIP_ALPHA
|
||||||
#define PNG_NO_READ_oFFs
|
|
||||||
|
|
||||||
#define PNG_NO_WRITE_SUPPORTED
|
#define PNG_NO_WRITE_SUPPORTED
|
||||||
|
|
||||||
#define PNG_NO_INFO_IMAGE
|
#define PNG_NO_INFO_IMAGE
|
||||||
|
#define PNG_NO_IO_STATE
|
||||||
#define PNG_NO_USER_MEM
|
#define PNG_NO_USER_MEM
|
||||||
#define PNG_NO_FIXED_POINT_SUPPORTED
|
#define PNG_NO_FIXED_POINT_SUPPORTED
|
||||||
#define PNG_NO_MNG_FEATURES
|
#define PNG_NO_MNG_FEATURES
|
||||||
@@ -59,5 +61,8 @@
|
|||||||
#define PNG_NO_ZALLOC_ZERO
|
#define PNG_NO_ZALLOC_ZERO
|
||||||
#define PNG_NO_ERROR_NUMBERS
|
#define PNG_NO_ERROR_NUMBERS
|
||||||
#define PNG_NO_EASY_ACCESS
|
#define PNG_NO_EASY_ACCESS
|
||||||
|
#define PNG_NO_USER_LIMITS
|
||||||
|
#define PNG_NO_SET_USER_LIMITS
|
||||||
|
#define PNG_NO_TIME_RFC1123
|
||||||
|
|
||||||
#endif /* MINPRDPNGCONF_H */
|
#endif /* MINPRDPNGCONF_H */
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ LD=$(CC)
|
|||||||
RM=rm -f
|
RM=rm -f
|
||||||
|
|
||||||
#PNGPATH = /usr/local
|
#PNGPATH = /usr/local
|
||||||
#PNGINC = -I$(PNGPATH)/include/libpng12
|
#PNGINC = -I$(PNGPATH)/include/libpng14
|
||||||
#PNGLIB = -L$(PNGPATH)/lib -lpng12
|
#PNGLIB = -L$(PNGPATH)/lib -lpng14
|
||||||
#PNGLIBS = $(PNGPATH)/lib/libpng12.a
|
#PNGLIBS = $(PNGPATH)/lib/libpng14.a
|
||||||
PNGINC = -I../..
|
PNGINC = -I../..
|
||||||
PNGLIB = -L../.. -lpng
|
PNGLIB = -L../.. -lpng
|
||||||
PNGLIBS = ../../libpng.a
|
PNGLIBS = ../../libpng.a
|
||||||
@@ -23,9 +23,9 @@ ZINC = -I../../../zlib
|
|||||||
ZLIB = -L../../../zlib -lz
|
ZLIB = -L../../../zlib -lz
|
||||||
ZLIBS = ../../../zlib/libz.a
|
ZLIBS = ../../../zlib/libz.a
|
||||||
|
|
||||||
CFLAGS=-O3 $(PNGINC) $(ZINC)
|
CFLAGS=$(PNGINC) $(ZINC)
|
||||||
LDFLAGS=$(PNGLIB) $(ZLIB)
|
LDLIBS=$(PNGLIB) $(ZLIB)
|
||||||
LDFLAGSS=$(PNGLIBS) $(ZLIBS)
|
LDLIBSS=$(PNGLIBS) $(ZLIBS)
|
||||||
C=.c
|
C=.c
|
||||||
O=.o
|
O=.o
|
||||||
L=.a
|
L=.a
|
||||||
@@ -40,19 +40,19 @@ png2pnm$(O): png2pnm$(C)
|
|||||||
$(CC) -c $(CFLAGS) png2pnm$(C)
|
$(CC) -c $(CFLAGS) png2pnm$(C)
|
||||||
|
|
||||||
png2pnm$(E): png2pnm$(O)
|
png2pnm$(E): png2pnm$(O)
|
||||||
$(LD) -o png2pnm$(E) png2pnm$(O) $(LDFLAGS) -lm
|
$(LD) $(LDFLAGS) -o png2pnm$(E) png2pnm$(O) $(LDLIBS) -lm
|
||||||
|
|
||||||
png2pnm-static$(E): png2pnm$(O)
|
png2pnm-static$(E): png2pnm$(O)
|
||||||
$(LD) -o png2pnm-static$(E) png2pnm$(O) $(LDFLAGSS) -lm
|
$(LD) $(LDFLAGS) -o png2pnm-static$(E) png2pnm$(O) $(LDLIBSS) -lm
|
||||||
|
|
||||||
pnm2png$(O): pnm2png$(C)
|
pnm2png$(O): pnm2png$(C)
|
||||||
$(CC) -c $(CFLAGS) pnm2png$(C)
|
$(CC) -c $(CFLAGS) pnm2png$(C)
|
||||||
|
|
||||||
pnm2png$(E): pnm2png$(O)
|
pnm2png$(E): pnm2png$(O)
|
||||||
$(LD) -o pnm2png$(E) pnm2png$(O) $(LDFLAGS) -lm
|
$(LD) $(LDFLAGS) -o pnm2png$(E) pnm2png$(O) $(LDLIBS) -lm
|
||||||
|
|
||||||
pnm2png-static$(E): pnm2png$(O)
|
pnm2png-static$(E): pnm2png$(O)
|
||||||
$(LD) -o pnm2png-static$(E) pnm2png$(O) $(LDFLAGSS) -lm
|
$(LD) $(LDFLAGS) -o pnm2png-static$(E) pnm2png$(O) $(LDLIBSS) -lm
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) png2pnm$(O)
|
$(RM) png2pnm$(O)
|
||||||
|
|||||||
@@ -1,41 +1,61 @@
|
|||||||
|
|
||||||
pngsuite
|
pngsuite
|
||||||
--------
|
--------
|
||||||
(c) Willem van Schaik, 1999
|
(c) Willem van Schaik, 1999, 2011, 2012
|
||||||
|
Two images are by Glenn Randers-Pehrson, 2012
|
||||||
|
|
||||||
Permission to use, copy, and distribute these images for any purpose and
|
Permission to use, copy, modify, and distribute these images for any
|
||||||
without fee is hereby granted.
|
purpose and without fee is hereby granted.
|
||||||
|
|
||||||
These 15 images are part of the much larger PngSuite test-set of
|
The 15 "bas*.png" images are part of the much larger PngSuite test-set of
|
||||||
images, available for developers of PNG supporting software. The
|
images, available for developers of PNG supporting software. The
|
||||||
complete set, available at http:/www.schaik.com/pngsuite/, contains
|
complete set, available at http:/www.schaik.com/pngsuite/, contains
|
||||||
a variety of images to test interlacing, gamma settings, ancillary
|
a variety of images to test interlacing, gamma settings, ancillary
|
||||||
chunks, etc.
|
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:
|
The images in this directory represent the basic PNG color-types:
|
||||||
grayscale (1-16 bit deep), full color (8 or 16 bit), paletted
|
grayscale (1-16 bit deep), full color (8 or 16 bit), paletted
|
||||||
(1-8 bit) and grayscale or color images with alpha channel. You
|
(1-8 bit) and grayscale or color images with alpha channel. You
|
||||||
can use them to test the proper functioning of PNG software.
|
can use them to test the proper functioning of PNG software.
|
||||||
|
|
||||||
filename depth type
|
filename depth type
|
||||||
------------ ------ --------------
|
------------ ------ --------------
|
||||||
basn0g01.png 1-bit grayscale
|
basn0g01.png 1-bit grayscale
|
||||||
basn0g02.png 2-bit grayscale
|
basn0g02.png 2-bit grayscale
|
||||||
basn0g04.png 4-bit grayscale
|
basn0g04.png 4-bit grayscale
|
||||||
basn0g08.png 8-bit grayscale
|
basn0g08.png 8-bit grayscale
|
||||||
basn0g16.png 16-bit grayscale
|
basn0g16.png 16-bit grayscale
|
||||||
basn2c08.png 8-bit truecolor
|
basn2c08.png 8-bit truecolor
|
||||||
basn2c16.png 16-bit truecolor
|
basn2c16.png 16-bit truecolor
|
||||||
basn3p01.png 1-bit paletted
|
basn3p01.png 1-bit paletted
|
||||||
basn3p02.png 2-bit paletted
|
basn3p02.png 2-bit paletted
|
||||||
basn3p04.png 4-bit paletted
|
basn3p04.png 4-bit paletted
|
||||||
basn3p08.png 8-bit paletted
|
basn3p08.png 8-bit paletted
|
||||||
basn4a08.png 8-bit gray with alpha
|
basn4a08.png 8-bit gray with alpha
|
||||||
basn4a16.png 16-bit gray with alpha
|
basn4a16.png 16-bit gray with alpha
|
||||||
basn6a08.png 8-bit RGBA
|
basn6a08.png 8-bit RGBA
|
||||||
basn6a16.png 16-bit RGBA
|
basn6a16.png 16-bit RGBA
|
||||||
|
|
||||||
Here is the correct result of typing "pngtest -m *.png" in
|
ftbbn0g01.png 1-bit grayscale, black bKGD
|
||||||
|
ftbbn0g02.png 2-bit grayscale, black bKGD
|
||||||
|
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:
|
this directory:
|
||||||
|
|
||||||
Testing basn0g01.png: PASS (524 zero samples)
|
Testing basn0g01.png: PASS (524 zero samples)
|
||||||
|
|||||||
BIN
contrib/pngsuite/ftbbn0g01.png
Normal file
|
After Width: | Height: | Size: 176 B |
BIN
contrib/pngsuite/ftbbn0g02.png
Normal file
|
After Width: | Height: | Size: 197 B |
BIN
contrib/pngsuite/ftbbn0g04.png
Normal file
|
After Width: | Height: | Size: 429 B |
BIN
contrib/pngsuite/ftbbn2c16.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
contrib/pngsuite/ftbbn3p08.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
contrib/pngsuite/ftbgn2c16.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
contrib/pngsuite/ftbgn3p08.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
contrib/pngsuite/ftbrn2c08.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
contrib/pngsuite/ftbwn0g16.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
contrib/pngsuite/ftbwn3p08.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
contrib/pngsuite/ftbyn3p08.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
contrib/pngsuite/ftp0n0g08.png
Normal file
|
After Width: | Height: | Size: 719 B |
BIN
contrib/pngsuite/ftp0n2c08.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
contrib/pngsuite/ftp0n3p08.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
contrib/pngsuite/ftp1n3p08.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
41
example.c
@@ -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.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.2 [May 6, 2010]
|
||||||
* 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-2010 Glenn Randers-Pehrson
|
* Maintained 1998-2010 Glenn Randers-Pehrson
|
||||||
* Maintained 1996, 1997 Andreas Dilger)
|
* Maintained 1996, 1997 Andreas Dilger)
|
||||||
@@ -160,7 +160,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
|
|||||||
* If you have enough memory to read in the entire image at once,
|
* If you have enough memory to read in the entire image at once,
|
||||||
* and you need to specify only transforms that can be controlled
|
* and you need to specify only transforms that can be controlled
|
||||||
* with one of the PNG_TRANSFORM_* bits (this presently excludes
|
* with one of the PNG_TRANSFORM_* bits (this presently excludes
|
||||||
* dithering, filling, setting background, and doing gamma
|
* quantizing, filling, setting background, and doing gamma
|
||||||
* adjustment), then you can read the entire image (including
|
* adjustment), then you can read the entire image (including
|
||||||
* pixels) into the info structure with this call:
|
* pixels) into the info structure with this call:
|
||||||
*/
|
*/
|
||||||
@@ -271,7 +271,8 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
|
|||||||
png_set_gamma(png_ptr, screen_gamma, 0.45455);
|
png_set_gamma(png_ptr, screen_gamma, 0.45455);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Dither RGB files down to 8 bit palette or reduce palettes
|
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||||
|
/* Quantize RGB files down to 8 bit palette or reduce palettes
|
||||||
* to the number of colors available on your screen.
|
* to the number of colors available on your screen.
|
||||||
*/
|
*/
|
||||||
if (color_type & PNG_COLOR_MASK_COLOR)
|
if (color_type & PNG_COLOR_MASK_COLOR)
|
||||||
@@ -282,10 +283,11 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
|
|||||||
/* This reduces the image to the application supplied palette */
|
/* This reduces the image to the application supplied palette */
|
||||||
if (/* We have our own palette */)
|
if (/* We have our own palette */)
|
||||||
{
|
{
|
||||||
/* An array of colors to which the image should be dithered */
|
/* An array of colors to which the image should be quantized */
|
||||||
png_color std_color_cube[MAX_SCREEN_COLORS];
|
png_color std_color_cube[MAX_SCREEN_COLORS];
|
||||||
|
|
||||||
png_set_dither(png_ptr, std_color_cube, MAX_SCREEN_COLORS,
|
/* Prior to libpng-1.4.2, this was png_set_dither(). */
|
||||||
|
png_set_quantize(png_ptr, std_color_cube, MAX_SCREEN_COLORS,
|
||||||
MAX_SCREEN_COLORS, NULL, 0);
|
MAX_SCREEN_COLORS, NULL, 0);
|
||||||
}
|
}
|
||||||
/* This reduces the image to the palette supplied in the file */
|
/* This reduces the image to the palette supplied in the file */
|
||||||
@@ -295,10 +297,11 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
|
|||||||
|
|
||||||
png_get_hIST(png_ptr, info_ptr, &histogram);
|
png_get_hIST(png_ptr, info_ptr, &histogram);
|
||||||
|
|
||||||
png_set_dither(png_ptr, palette, num_palette,
|
png_set_quantize(png_ptr, palette, num_palette,
|
||||||
max_screen_colors, histogram, 0);
|
max_screen_colors, histogram, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* PNG_READ_QUANTIZE_SUPPORTED */
|
||||||
|
|
||||||
/* Invert monochrome files to have 0 as white and 1 as black */
|
/* Invert monochrome files to have 0 as white and 1 as black */
|
||||||
png_set_invert_mono(png_ptr);
|
png_set_invert_mono(png_ptr);
|
||||||
@@ -509,20 +512,17 @@ row_callback(png_structp png_ptr, png_bytep new_row,
|
|||||||
* shown below:
|
* shown below:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Check if row_num is in bounds. */
|
/* Get pointer to corresponding row in our
|
||||||
if ((row_num >= 0) && (row_num < height))
|
* PNG read buffer.
|
||||||
{
|
*/
|
||||||
/* Get pointer to corresponding row in our
|
png_bytep old_row = ((png_bytep *)our_data)[row_num];
|
||||||
* PNG read buffer.
|
|
||||||
*/
|
/* If both rows are allocated then copy the new row
|
||||||
png_bytep old_row = ((png_bytep *)our_data)[row_num];
|
* data to the corresponding row data.
|
||||||
|
*/
|
||||||
|
if ((old_row != NULL) && (new_row != NULL))
|
||||||
|
png_progressive_combine_row(png_ptr, old_row, new_row);
|
||||||
|
|
||||||
/* If both rows are allocated then copy the new row
|
|
||||||
* data to the corresponding row data.
|
|
||||||
*/
|
|
||||||
if ((old_row != NULL) && (new_row != NULL))
|
|
||||||
png_progressive_combine_row(png_ptr, old_row, new_row);
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
* The rows and passes are called in order, so you don't really
|
* The rows and passes are called in order, so you don't really
|
||||||
* need the row_num and pass, but I'm supplying them because it
|
* need the row_num and pass, but I'm supplying them because it
|
||||||
@@ -684,8 +684,11 @@ void write_png(char *file_name /* , ... other image information ... */)
|
|||||||
text_ptr[2].compression = PNG_TEXT_COMPRESSION_zTXt;
|
text_ptr[2].compression = PNG_TEXT_COMPRESSION_zTXt;
|
||||||
#ifdef PNG_iTXt_SUPPORTED
|
#ifdef PNG_iTXt_SUPPORTED
|
||||||
text_ptr[0].lang = NULL;
|
text_ptr[0].lang = NULL;
|
||||||
|
text_ptr[0].lang_key = NULL;
|
||||||
text_ptr[1].lang = NULL;
|
text_ptr[1].lang = NULL;
|
||||||
|
text_ptr[1].lang_key = NULL;
|
||||||
text_ptr[2].lang = NULL;
|
text_ptr[2].lang = NULL;
|
||||||
|
text_ptr[2].lang_key = NULL;
|
||||||
#endif
|
#endif
|
||||||
png_set_text(png_ptr, info_ptr, text_ptr, 3);
|
png_set_text(png_ptr, info_ptr, text_ptr, 3);
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
libpng.txt - A description on how to use and modify libpng
|
libpng.txt - A description on how to use and modify libpng
|
||||||
|
|
||||||
libpng version 1.4.0 - January 3, 2010
|
libpng version 1.4.12 - July 10, 2012
|
||||||
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-2009 Glenn Randers-Pehrson
|
Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
||||||
|
|
||||||
This document is released under the libpng license.
|
This document is released under the libpng license.
|
||||||
For conditions of distribution and use, see the disclaimer
|
For conditions of distribution and use, see the disclaimer
|
||||||
@@ -11,9 +11,9 @@ libpng.txt - A description on how to use and modify libpng
|
|||||||
|
|
||||||
Based on:
|
Based on:
|
||||||
|
|
||||||
libpng versions 0.97, January 1998, through 1.4.0 - January 3, 2010
|
libpng versions 0.97, January 1998, through 1.4.12 - July 10, 2012
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
||||||
|
|
||||||
libpng 1.0 beta 6 version 0.96 May 28, 1997
|
libpng 1.0 beta 6 version 0.96 May 28, 1997
|
||||||
Updated and distributed by Andreas Dilger
|
Updated and distributed by Andreas Dilger
|
||||||
@@ -241,9 +241,13 @@ free any memory.
|
|||||||
}
|
}
|
||||||
|
|
||||||
If you would rather avoid the complexity of setjmp/longjmp issues,
|
If you would rather avoid the complexity of setjmp/longjmp issues,
|
||||||
you can compile libpng with PNG_SETJMP_NOT_SUPPORTED, in which case
|
you can compile libpng with PNG_NO_SETJMP, in which case
|
||||||
errors will result in a call to PNG_ABORT() which defaults to abort().
|
errors will result in a call to PNG_ABORT() which defaults to abort().
|
||||||
|
|
||||||
|
You can #define PNG_ABORT() to a function that does something
|
||||||
|
more useful than abort(), as long as your function does not
|
||||||
|
return.
|
||||||
|
|
||||||
Now you need to set up the input code. The default for libpng is to
|
Now you need to set up the input code. The default for libpng is to
|
||||||
use the C function fread(). If you use this, you will need to pass a
|
use the C function fread(). If you use this, you will need to pass a
|
||||||
valid FILE * in the function png_init_io(). Be sure that the file is
|
valid FILE * in the function png_init_io(). Be sure that the file is
|
||||||
@@ -260,12 +264,21 @@ libpng know that there are some bytes missing from the start of the file.
|
|||||||
|
|
||||||
png_set_sig_bytes(png_ptr, number);
|
png_set_sig_bytes(png_ptr, number);
|
||||||
|
|
||||||
|
You can change the zlib compression buffer size to be used while
|
||||||
|
reading compressed data with
|
||||||
|
|
||||||
|
png_set_compression_buffer_size(png_ptr, buffer_size);
|
||||||
|
|
||||||
|
where the default size is 8192 bytes. Note that the buffer size
|
||||||
|
is changed immediately and the buffer is reallocated immediately,
|
||||||
|
instead of setting a flag to be acted upon later.
|
||||||
|
|
||||||
Setting up callback code
|
Setting up callback code
|
||||||
|
|
||||||
You can set up a callback function to handle any unknown chunks in the
|
You can set up a callback function to handle any unknown chunks in the
|
||||||
input stream. You must supply the function
|
input stream. You must supply the function
|
||||||
|
|
||||||
read_chunk_callback(png_ptr ptr,
|
read_chunk_callback(png_structp png_ptr,
|
||||||
png_unknown_chunkp chunk);
|
png_unknown_chunkp chunk);
|
||||||
{
|
{
|
||||||
/* The unknown chunk structure contains your
|
/* The unknown chunk structure contains your
|
||||||
@@ -311,8 +324,8 @@ called after each row has been read, which you can use to control
|
|||||||
a progress meter or the like. It's demonstrated in pngtest.c.
|
a progress meter or the like. It's demonstrated in pngtest.c.
|
||||||
You must supply a function
|
You must supply a function
|
||||||
|
|
||||||
void read_row_callback(png_ptr ptr, png_uint_32 row,
|
void read_row_callback(png_structp png_ptr,
|
||||||
int pass);
|
png_uint_32 row, int pass);
|
||||||
{
|
{
|
||||||
/* put your code here */
|
/* put your code here */
|
||||||
}
|
}
|
||||||
@@ -423,6 +436,18 @@ where 0x7fffffffL means unlimited. You can retrieve this limit with
|
|||||||
This limit also applies to the number of buffers that can be allocated
|
This limit also applies to the number of buffers that can be allocated
|
||||||
by png_decompress_chunk() while decompressing iTXt, zTXt, and iCCP chunks.
|
by png_decompress_chunk() while decompressing iTXt, zTXt, and iCCP chunks.
|
||||||
|
|
||||||
|
You can also set a limit on the amount of memory that a compressed chunk
|
||||||
|
other than IDAT can occupy, with
|
||||||
|
|
||||||
|
png_set_chunk_malloc_max(png_ptr, user_chunk_malloc_max);
|
||||||
|
|
||||||
|
and you can retrieve the limit with
|
||||||
|
|
||||||
|
chunk_malloc_max = png_get_chunk_malloc_max(png_ptr);
|
||||||
|
|
||||||
|
Any chunks that would cause either of these limits to be exceeded will
|
||||||
|
be ignored.
|
||||||
|
|
||||||
The high-level read interface
|
The high-level read interface
|
||||||
|
|
||||||
At this point there are two ways to proceed; through the high-level
|
At this point there are two ways to proceed; through the high-level
|
||||||
@@ -454,7 +479,7 @@ you want to do are limited to the following set:
|
|||||||
to RGB (or GA to RGBA)
|
to RGB (or GA to RGBA)
|
||||||
|
|
||||||
(This excludes setting a background color, doing gamma transformation,
|
(This excludes setting a background color, doing gamma transformation,
|
||||||
dithering, and setting filler.) If this is the case, simply do this:
|
quantizing, and setting filler.) If this is the case, simply do this:
|
||||||
|
|
||||||
png_read_png(png_ptr, info_ptr, png_transforms, NULL)
|
png_read_png(png_ptr, info_ptr, png_transforms, NULL)
|
||||||
|
|
||||||
@@ -551,15 +576,17 @@ in until png_read_end() has read the chunk data following the image.
|
|||||||
PNG_COLOR_MASK_COLOR
|
PNG_COLOR_MASK_COLOR
|
||||||
PNG_COLOR_MASK_ALPHA
|
PNG_COLOR_MASK_ALPHA
|
||||||
|
|
||||||
|
interlace_type - (PNG_INTERLACE_NONE or
|
||||||
|
PNG_INTERLACE_ADAM7)
|
||||||
|
|
||||||
|
compression_type - (must be PNG_COMPRESSION_TYPE_BASE
|
||||||
|
for PNG 1.0)
|
||||||
|
|
||||||
filter_method - (must be PNG_FILTER_TYPE_BASE
|
filter_method - (must be PNG_FILTER_TYPE_BASE
|
||||||
for PNG 1.0, and can also be
|
for PNG 1.0, and can also be
|
||||||
PNG_INTRAPIXEL_DIFFERENCING if
|
PNG_INTRAPIXEL_DIFFERENCING if
|
||||||
the PNG datastream is embedded in
|
the PNG datastream is embedded in
|
||||||
a MNG-1.0 datastream)
|
a MNG-1.0 datastream)
|
||||||
compression_type - (must be PNG_COMPRESSION_TYPE_BASE
|
|
||||||
for PNG 1.0)
|
|
||||||
interlace_type - (PNG_INTERLACE_NONE or
|
|
||||||
PNG_INTERLACE_ADAM7)
|
|
||||||
|
|
||||||
Any or all of interlace_type, compression_type, or
|
Any or all of interlace_type, compression_type, or
|
||||||
filter_method can be NULL if you are
|
filter_method can be NULL if you are
|
||||||
@@ -580,11 +607,11 @@ in until png_read_end() has read the chunk data following the image.
|
|||||||
info_ptr);
|
info_ptr);
|
||||||
color_type = png_get_color_type(png_ptr,
|
color_type = png_get_color_type(png_ptr,
|
||||||
info_ptr);
|
info_ptr);
|
||||||
filter_method = png_get_filter_type(png_ptr,
|
interlace_type = png_get_interlace_type(png_ptr,
|
||||||
info_ptr);
|
info_ptr);
|
||||||
compression_type = png_get_compression_type(png_ptr,
|
compression_type = png_get_compression_type(png_ptr,
|
||||||
info_ptr);
|
info_ptr);
|
||||||
interlace_type = png_get_interlace_type(png_ptr,
|
filter_method = png_get_filter_type(png_ptr,
|
||||||
info_ptr);
|
info_ptr);
|
||||||
|
|
||||||
channels = png_get_channels(png_ptr, info_ptr);
|
channels = png_get_channels(png_ptr, info_ptr);
|
||||||
@@ -633,14 +660,14 @@ pointer into the info_ptr is returned for any complex types.
|
|||||||
|
|
||||||
png_get_iCCP(png_ptr, info_ptr, &name,
|
png_get_iCCP(png_ptr, info_ptr, &name,
|
||||||
&compression_type, &profile, &proflen);
|
&compression_type, &profile, &proflen);
|
||||||
name - The profile name.
|
name - The profile name.
|
||||||
compression - The compression type; always
|
compression_type - The compression type; always
|
||||||
PNG_COMPRESSION_TYPE_BASE for PNG 1.0.
|
PNG_COMPRESSION_TYPE_BASE for PNG 1.0.
|
||||||
You may give NULL to this argument to
|
You may give NULL to this argument to
|
||||||
ignore it.
|
ignore it.
|
||||||
profile - International Color Consortium color
|
profile - International Color Consortium color
|
||||||
profile data. May contain NULs.
|
profile data. May contain NULs.
|
||||||
proflen - length of profile data in bytes.
|
proflen - length of profile data in bytes.
|
||||||
|
|
||||||
png_get_sBIT(png_ptr, info_ptr, &sig_bit);
|
png_get_sBIT(png_ptr, info_ptr, &sig_bit);
|
||||||
sig_bit - the number of significant bits for
|
sig_bit - the number of significant bits for
|
||||||
@@ -653,11 +680,11 @@ pointer into the info_ptr is returned for any complex types.
|
|||||||
&num_trans, &trans_color);
|
&num_trans, &trans_color);
|
||||||
trans_alpha - array of alpha (transparency)
|
trans_alpha - array of alpha (transparency)
|
||||||
entries for palette (PNG_INFO_tRNS)
|
entries for palette (PNG_INFO_tRNS)
|
||||||
|
num_trans - number of transparent entries
|
||||||
|
(PNG_INFO_tRNS)
|
||||||
trans_color - graylevel or color sample values of
|
trans_color - graylevel or color sample values of
|
||||||
the single transparent color for
|
the single transparent color for
|
||||||
non-paletted images (PNG_INFO_tRNS)
|
non-paletted images (PNG_INFO_tRNS)
|
||||||
num_trans - number of transparent entries
|
|
||||||
(PNG_INFO_tRNS)
|
|
||||||
|
|
||||||
png_get_hIST(png_ptr, info_ptr, &hist);
|
png_get_hIST(png_ptr, info_ptr, &hist);
|
||||||
(PNG_INFO_hIST)
|
(PNG_INFO_hIST)
|
||||||
@@ -669,7 +696,8 @@ pointer into the info_ptr is returned for any complex types.
|
|||||||
(PNG_VALID_tIME)
|
(PNG_VALID_tIME)
|
||||||
|
|
||||||
png_get_bKGD(png_ptr, info_ptr, &background);
|
png_get_bKGD(png_ptr, info_ptr, &background);
|
||||||
background - background color (PNG_VALID_bKGD)
|
background - background color (of type
|
||||||
|
png_color_16p) (PNG_VALID_bKGD)
|
||||||
valid 16-bit red, green and blue
|
valid 16-bit red, green and blue
|
||||||
values, regardless of color_type
|
values, regardless of color_type
|
||||||
|
|
||||||
@@ -878,7 +906,7 @@ 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.4.0, not all possible expansions are supported.
|
As of libpng version 1.4.12, not all possible expansions are supported.
|
||||||
|
|
||||||
In the following table, the 01 means grayscale with depth<8, 31 means
|
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
|
indexed with depth<8, other numerals represent the color type, "T" means
|
||||||
@@ -1138,6 +1166,39 @@ recommended that PNG viewers support gamma correction.
|
|||||||
else
|
else
|
||||||
png_set_gamma(png_ptr, screen_gamma, 0.45455);
|
png_set_gamma(png_ptr, screen_gamma, 0.45455);
|
||||||
|
|
||||||
|
If you need to reduce an RGB file to a paletted file, or if a paletted
|
||||||
|
file has more entries then will fit on your screen, png_set_quantize()
|
||||||
|
will do that. Note that this is a simple match dither that merely
|
||||||
|
finds the closest color available. This should work fairly well with
|
||||||
|
optimized palettes, and fairly badly with linear color cubes. If you
|
||||||
|
pass a palette that is larger then maximum_colors, the file will
|
||||||
|
reduce the number of colors in the palette so it will fit into
|
||||||
|
maximum_colors. If there is a histogram, it will use it to make
|
||||||
|
more intelligent choices when reducing the palette. If there is no
|
||||||
|
histogram, it may not do as good a job.
|
||||||
|
|
||||||
|
if (color_type & PNG_COLOR_MASK_COLOR)
|
||||||
|
{
|
||||||
|
if (png_get_valid(png_ptr, info_ptr,
|
||||||
|
PNG_INFO_PLTE))
|
||||||
|
{
|
||||||
|
png_uint_16p histogram = NULL;
|
||||||
|
png_get_hIST(png_ptr, info_ptr,
|
||||||
|
&histogram);
|
||||||
|
png_set_quantize(png_ptr, palette, num_palette,
|
||||||
|
max_screen_colors, histogram, 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
png_color std_color_cube[MAX_SCREEN_COLORS] =
|
||||||
|
{ ... colors ... };
|
||||||
|
|
||||||
|
png_set_quantize(png_ptr, std_color_cube,
|
||||||
|
MAX_SCREEN_COLORS, MAX_SCREEN_COLORS,
|
||||||
|
NULL,0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
PNG files describe monochrome as black being zero and white being one.
|
PNG files describe monochrome as black being zero and white being one.
|
||||||
The following code will reverse this (make black be one and white be
|
The following code will reverse this (make black be one and white be
|
||||||
zero):
|
zero):
|
||||||
@@ -1174,8 +1235,8 @@ with
|
|||||||
|
|
||||||
You must supply the function
|
You must supply the function
|
||||||
|
|
||||||
void read_transform_fn(png_ptr ptr, row_info_ptr
|
void read_transform_fn(png_structp png_ptr, png_row_infop
|
||||||
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
|
||||||
after all of the other transformations have been processed.
|
after all of the other transformations have been processed.
|
||||||
@@ -1667,9 +1728,13 @@ section below for more information on the libpng error handling.
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
If you would rather avoid the complexity of setjmp/longjmp issues,
|
If you would rather avoid the complexity of setjmp/longjmp issues,
|
||||||
you can compile libpng with PNG_SETJMP_NOT_SUPPORTED, in which case
|
you can compile libpng with PNG_NO_SETJMP, in which case
|
||||||
errors will result in a call to PNG_ABORT() which defaults to abort().
|
errors will result in a call to PNG_ABORT() which defaults to abort().
|
||||||
|
|
||||||
|
You can #define PNG_ABORT() to a function that does something
|
||||||
|
more useful than abort(), as long as your function does not
|
||||||
|
return.
|
||||||
|
|
||||||
Now you need to set up the output code. The default for libpng is to
|
Now you need to set up the output code. The default for libpng is to
|
||||||
use the C function fwrite(). If you use this, you will need to pass a
|
use the C function fwrite(). If you use this, you will need to pass a
|
||||||
valid FILE * in the function png_init_io(). Be sure that the file is
|
valid FILE * in the function png_init_io(). Be sure that the file is
|
||||||
@@ -1694,7 +1759,7 @@ called after each row has been written, which you can use to control
|
|||||||
a progress meter or the like. It's demonstrated in pngtest.c.
|
a progress meter or the like. It's demonstrated in pngtest.c.
|
||||||
You must supply a function
|
You must supply a function
|
||||||
|
|
||||||
void write_row_callback(png_ptr, png_uint_32 row,
|
void write_row_callback(png_structp png_ptr, png_uint_32 row,
|
||||||
int pass);
|
int pass);
|
||||||
{
|
{
|
||||||
/* put your code here */
|
/* put your code here */
|
||||||
@@ -1869,14 +1934,14 @@ width, height, bit_depth, and color_type must be the same in each call.
|
|||||||
|
|
||||||
png_set_iCCP(png_ptr, info_ptr, name, compression_type,
|
png_set_iCCP(png_ptr, info_ptr, name, compression_type,
|
||||||
profile, proflen);
|
profile, proflen);
|
||||||
name - The profile name.
|
name - The profile name.
|
||||||
compression - The compression type; always
|
compression_type - The compression type; always
|
||||||
PNG_COMPRESSION_TYPE_BASE for PNG 1.0.
|
PNG_COMPRESSION_TYPE_BASE for PNG 1.0.
|
||||||
You may give NULL to this argument to
|
You may give NULL to this argument to
|
||||||
ignore it.
|
ignore it.
|
||||||
profile - International Color Consortium color
|
profile - International Color Consortium color
|
||||||
profile data. May contain NULs.
|
profile data. May contain NULs.
|
||||||
proflen - length of profile data in bytes.
|
proflen - length of profile data in bytes.
|
||||||
|
|
||||||
png_set_sBIT(png_ptr, info_ptr, sig_bit);
|
png_set_sBIT(png_ptr, info_ptr, sig_bit);
|
||||||
sig_bit - the number of significant bits for
|
sig_bit - the number of significant bits for
|
||||||
@@ -1906,7 +1971,8 @@ width, height, bit_depth, and color_type must be the same in each call.
|
|||||||
(PNG_VALID_tIME)
|
(PNG_VALID_tIME)
|
||||||
|
|
||||||
png_set_bKGD(png_ptr, info_ptr, background);
|
png_set_bKGD(png_ptr, info_ptr, background);
|
||||||
background - background color (PNG_VALID_bKGD)
|
background - background color (of type
|
||||||
|
png_color_16p) (PNG_VALID_bKGD)
|
||||||
|
|
||||||
png_set_text(png_ptr, info_ptr, text_ptr, num_text);
|
png_set_text(png_ptr, info_ptr, text_ptr, num_text);
|
||||||
text_ptr - array of png_text holding image
|
text_ptr - array of png_text holding image
|
||||||
@@ -2251,7 +2317,7 @@ with
|
|||||||
|
|
||||||
You must supply the function
|
You must supply the function
|
||||||
|
|
||||||
void write_transform_fn(png_ptr ptr, row_info_ptr
|
void write_transform_fn(png_structp png_ptr, png_row_infop
|
||||||
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
|
||||||
@@ -2479,7 +2545,7 @@ via
|
|||||||
Your replacement memory functions must have prototypes as follows:
|
Your replacement memory functions must have prototypes as follows:
|
||||||
|
|
||||||
png_voidp malloc_fn(png_structp png_ptr,
|
png_voidp malloc_fn(png_structp png_ptr,
|
||||||
png_size_t size);
|
png_alloc_size_t size);
|
||||||
void free_fn(png_structp png_ptr, png_voidp ptr);
|
void free_fn(png_structp png_ptr, png_voidp ptr);
|
||||||
|
|
||||||
Your malloc_fn() must return NULL in case of failure. The png_malloc()
|
Your malloc_fn() must return NULL in case of failure. The png_malloc()
|
||||||
@@ -2530,8 +2596,9 @@ Error handling in libpng is done through png_error() and png_warning().
|
|||||||
Errors handled through png_error() are fatal, meaning that png_error()
|
Errors handled through png_error() are fatal, meaning that png_error()
|
||||||
should never return to its caller. Currently, this is handled via
|
should never return to its caller. Currently, this is handled via
|
||||||
setjmp() and longjmp() (unless you have compiled libpng with
|
setjmp() and longjmp() (unless you have compiled libpng with
|
||||||
PNG_SETJMP_NOT_SUPPORTED, in which case it is handled via PNG_ABORT()),
|
PNG_NO_SETJMP, in which case it is handled via PNG_ABORT()),
|
||||||
but you could change this to do things like exit() if you should wish.
|
but you could change this to do things like exit() if you should wish,
|
||||||
|
as long as your function does not return.
|
||||||
|
|
||||||
On non-fatal errors, png_warning() is called
|
On non-fatal errors, png_warning() is called
|
||||||
to print a warning message, and then control returns to the calling code.
|
to print a warning message, and then control returns to the calling code.
|
||||||
@@ -2567,7 +2634,8 @@ However, there are some uncertainties about the status of local variables
|
|||||||
after a longjmp, so the user may want to be careful about doing anything
|
after a longjmp, so the user may want to be careful about doing anything
|
||||||
after setjmp returns non-zero besides returning itself. Consult your
|
after setjmp returns non-zero besides returning itself. Consult your
|
||||||
compiler documentation for more details. For an alternative approach, you
|
compiler documentation for more details. For an alternative approach, you
|
||||||
may wish to use the "cexcept" facility (see http://cexcept.sourceforge.net).
|
may wish to use the "cexcept" facility (see http://cexcept.sourceforge.net),
|
||||||
|
which is illustrated in pngvalid.c and in contrib/visupng.
|
||||||
|
|
||||||
Custom chunks
|
Custom chunks
|
||||||
|
|
||||||
@@ -2585,8 +2653,11 @@ and look at how other chunks were designed, so you can do things
|
|||||||
similarly. Second, check out the sections of libpng that read and
|
similarly. Second, check out the sections of libpng that read and
|
||||||
write chunks. Try to find a chunk that is similar to yours and use
|
write chunks. Try to find a chunk that is similar to yours and use
|
||||||
it as a template. More details can be found in the comments inside
|
it as a template. More details can be found in the comments inside
|
||||||
the code. It is best to handle unknown chunks in a generic method,
|
the code. It is best to handle private or unknown chunks in a generic method,
|
||||||
via callback functions, instead of by modifying libpng functions.
|
via callback functions, instead of by modifying libpng functions. This
|
||||||
|
is illustrated in pngtest.c, which uses a callback function to handle a
|
||||||
|
private "vpAg" chunk and the new "sTER" chunk, which are both unknown to
|
||||||
|
libpng.
|
||||||
|
|
||||||
If you wish to write your own transformation for the data, look through
|
If you wish to write your own transformation for the data, look through
|
||||||
the part of the code that does the transformations, and check out some of
|
the part of the code that does the transformations, and check out some of
|
||||||
@@ -2775,8 +2846,8 @@ capability, which you'll still have).
|
|||||||
All the reading and writing specific code are in separate files, so the
|
All the reading and writing specific code are in separate files, so the
|
||||||
linker should only grab the files it needs. However, if you want to
|
linker should only grab the files it needs. However, if you want to
|
||||||
make sure, or if you are building a stand alone library, all the
|
make sure, or if you are building a stand alone library, all the
|
||||||
reading files start with pngr and all the writing files start with
|
reading files start with "pngr" and all the writing files start with "pngw".
|
||||||
pngw. The files that don't match either (like png.c, pngtrans.c, etc.)
|
The files that don't match either (like png.c, pngtrans.c, etc.)
|
||||||
are used for both reading and writing, and always need to be included.
|
are used for both reading and writing, and always need to be included.
|
||||||
The progressive reader is in pngpread.c
|
The progressive reader is in pngpread.c
|
||||||
|
|
||||||
@@ -3058,11 +3129,19 @@ 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 palette images.
|
expanded palette images.
|
||||||
|
|
||||||
|
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
|
||||||
|
functions. Unfortunately,
|
||||||
|
from libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the
|
||||||
|
function) incorrectly returned a value of type png_uint_32.
|
||||||
|
|
||||||
We changed the prototype for png_malloc() from
|
We changed the prototype for png_malloc() from
|
||||||
png_malloc(png_structp png_ptr, png_uint_32 size)
|
png_malloc(png_structp png_ptr, png_uint_32 size)
|
||||||
to
|
to
|
||||||
png_malloc(png_structp png_ptr, png_alloc_size_t size)
|
png_malloc(png_structp png_ptr, png_alloc_size_t size)
|
||||||
|
|
||||||
|
This also applies to the prototype for the user replacement malloc_fn().
|
||||||
|
|
||||||
The png_calloc() function was added and is used in place of
|
The png_calloc() function was added and is used in place of
|
||||||
of "png_malloc(); png_memset();" except in the case in png_read_png()
|
of "png_malloc(); png_memset();" except in the case in png_read_png()
|
||||||
where the array consists of pointers; in this case a "for" loop is used
|
where the array consists of pointers; in this case a "for" loop is used
|
||||||
@@ -3082,6 +3161,16 @@ The png_zalloc() and png_zfree() functions are no longer exported.
|
|||||||
The png_zalloc() function no longer zeroes out the memory that it
|
The png_zalloc() function no longer zeroes out the memory that it
|
||||||
allocates.
|
allocates.
|
||||||
|
|
||||||
|
Support for dithering was disabled by default in libpng-1.4.0, because
|
||||||
|
it has not been well tested and doesn't actually "dither".
|
||||||
|
The code was not
|
||||||
|
removed, however, and could be enabled by building libpng with
|
||||||
|
PNG_READ_DITHER_SUPPORTED defined. In libpng-1.4.2, this support
|
||||||
|
was reenabled, but the function was renamed png_set_quantize() to
|
||||||
|
reflect more accurately what it actually does. At the same time,
|
||||||
|
the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros were also renamed to
|
||||||
|
PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS.
|
||||||
|
|
||||||
We removed the trailing '.' from the warning and error messages.
|
We removed the trailing '.' from the warning and error messages.
|
||||||
|
|
||||||
X. Detecting libpng
|
X. Detecting libpng
|
||||||
@@ -3151,12 +3240,12 @@ the statement that follows the comment:
|
|||||||
/* Single-line comment */
|
/* Single-line comment */
|
||||||
statement;
|
statement;
|
||||||
|
|
||||||
/* Multiple-line
|
/* This is a multiple-line
|
||||||
* comment
|
* comment.
|
||||||
*/
|
*/
|
||||||
statement;
|
statement;
|
||||||
|
|
||||||
Very short comments can be placed at the end of the statement
|
Very short comments can be placed after the end of the statement
|
||||||
to which they pertain:
|
to which they pertain:
|
||||||
|
|
||||||
statement; /* comment */
|
statement; /* comment */
|
||||||
@@ -3197,15 +3286,16 @@ above the comment that says
|
|||||||
|
|
||||||
/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
|
/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
|
||||||
|
|
||||||
The names of all exported functions and variables begin
|
To avoid polluting the global namespace, the names of all exported
|
||||||
with "png_", and all publicly visible C preprocessor
|
functions and variables begin with "png_", and all publicly visible C
|
||||||
macros begin with "PNG_".
|
preprocessor macros begin with "PNG". We request that applications that
|
||||||
|
use libpng *not* begin any of their own symbols with either of these strings.
|
||||||
|
|
||||||
We put a space after each comma and after each semicolon
|
We put a space after each comma and after each semicolon
|
||||||
in "for" statments, and we put spaces before and after each
|
in "for" statments, and we put spaces before and after each
|
||||||
C binary operator and after "for" or "while". We don't
|
C binary operator and after "for" or "while", and before
|
||||||
put a space between a typecast and the expression being
|
"?". We don't put a space between a typecast and the expression
|
||||||
cast, nor do we put one between a function name and the
|
being cast, nor do we put one between a function name and the
|
||||||
left parenthesis that follows it:
|
left parenthesis that follows it:
|
||||||
|
|
||||||
for (i = 2; i > 0; --i)
|
for (i = 2; i > 0; --i)
|
||||||
@@ -3222,13 +3312,13 @@ Other rules can be inferred by inspecting the libpng source.
|
|||||||
|
|
||||||
XIII. Y2K Compliance in libpng
|
XIII. Y2K Compliance in libpng
|
||||||
|
|
||||||
January 3, 2010
|
July 10, 2012
|
||||||
|
|
||||||
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.4.0 are Y2K compliant. It is my belief that earlier
|
upward through 1.4.12 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
|
||||||
30
libpngpf.3
@@ -1,6 +1,6 @@
|
|||||||
.TH LIBPNGPF 3 "January 3, 2010"
|
.TH LIBPNGPF 3 "July 10, 2012"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0
|
libpng \- Portable Network Graphics (PNG) Reference Library 1.4.12
|
||||||
(private functions)
|
(private functions)
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
\fB#include <png.h>\fP
|
\fB#include <png.h>\fP
|
||||||
@@ -145,14 +145,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0
|
|||||||
|
|
||||||
\fI\fB
|
\fI\fB
|
||||||
|
|
||||||
\fI\fB
|
|
||||||
|
|
||||||
\fBvoid png_do_dither (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_bytep \fP\fIpalette_lookup\fP\fB, png_bytep \fIdither_lookup\fP\fB);\fP
|
|
||||||
|
|
||||||
\fI\fB
|
|
||||||
|
|
||||||
\fI\fB
|
|
||||||
|
|
||||||
\fBvoid png_do_expand (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_color_16p \fItrans_value\fP\fB);\fP
|
\fBvoid png_do_expand (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_color_16p \fItrans_value\fP\fB);\fP
|
||||||
|
|
||||||
\fI\fB
|
\fI\fB
|
||||||
@@ -195,6 +187,12 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0
|
|||||||
|
|
||||||
\fI\fB
|
\fI\fB
|
||||||
|
|
||||||
|
\fBvoid png_do_quantize (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_bytep \fP\fIpalette_lookup\fP\fB, png_bytep \fIquantize_lookup\fP\fB);\fP
|
||||||
|
|
||||||
|
\fI\fB
|
||||||
|
|
||||||
|
\fI\fB
|
||||||
|
|
||||||
\fBvoid png_do_read_filler (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_uint_32 \fP\fIfiller\fP\fB, png_uint_32 \fIflags\fP\fB);\fP
|
\fBvoid png_do_read_filler (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_uint_32 \fP\fIfiller\fP\fB, png_uint_32 \fIflags\fP\fB);\fP
|
||||||
|
|
||||||
\fI\fB
|
\fI\fB
|
||||||
@@ -583,32 +581,26 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0
|
|||||||
|
|
||||||
\fI\fB
|
\fI\fB
|
||||||
|
|
||||||
\fI\fB
|
|
||||||
|
|
||||||
\fBvoid png_read_push_finish_row (png_structp \fIpng_ptr\fP\fB);\fP
|
\fBvoid png_read_push_finish_row (png_structp \fIpng_ptr\fP\fB);\fP
|
||||||
|
|
||||||
\fI\fB
|
\fI\fB
|
||||||
|
|
||||||
|
\fBvoid png_read_sig (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP
|
||||||
|
|
||||||
\fI\fB
|
\fI\fB
|
||||||
|
|
||||||
\fBvoid png_read_start_row (png_structp \fIpng_ptr\fP\fB);\fP
|
\fBvoid png_read_start_row (png_structp \fIpng_ptr\fP\fB);\fP
|
||||||
|
|
||||||
\fI\fB
|
\fI\fB
|
||||||
|
|
||||||
\fI\fB
|
|
||||||
|
|
||||||
\fBvoid png_read_transform_info (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP
|
\fBvoid png_read_transform_info (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP
|
||||||
|
|
||||||
\fI\fB
|
\fI\fB
|
||||||
|
|
||||||
\fI\fB
|
|
||||||
|
|
||||||
\fBvoid png_reset_crc (png_structp \fIpng_ptr\fP\fB);\fP
|
\fBvoid png_reset_crc (png_structp \fIpng_ptr\fP\fB);\fP
|
||||||
|
|
||||||
\fI\fB
|
\fI\fB
|
||||||
|
|
||||||
\fI\fB
|
|
||||||
|
|
||||||
\fBint png_set_text_2 (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_textp \fP\fItext_ptr\fP\fB, int \fInum_text\fP\fB);\fP
|
\fBint png_set_text_2 (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_textp \fP\fItext_ptr\fP\fB, int \fInum_text\fP\fB);\fP
|
||||||
|
|
||||||
\fI\fB
|
\fI\fB
|
||||||
@@ -805,6 +797,6 @@ are listed alphabetically here as an aid to libpng maintainers.
|
|||||||
See png.h for more information on these functions.
|
See png.h for more information on these functions.
|
||||||
|
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
libpng(3), png(5)
|
.BR "png"(5), " libpng"(3), " zlib"(3), " deflate"(5), " " and " zlib"(5)
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
Glenn Randers-Pehrson
|
Glenn Randers-Pehrson
|
||||||
|
|||||||
162
mkinstalldirs
@@ -1,162 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
# mkinstalldirs --- make directory hierarchy
|
|
||||||
|
|
||||||
scriptversion=2009-04-28.21; # UTC
|
|
||||||
|
|
||||||
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
|
|
||||||
# Created: 1993-05-16
|
|
||||||
# Public domain.
|
|
||||||
#
|
|
||||||
# This file is maintained in Automake, please report
|
|
||||||
# bugs to <bug-automake@gnu.org> or send patches to
|
|
||||||
# <automake-patches@gnu.org>.
|
|
||||||
|
|
||||||
nl='
|
|
||||||
'
|
|
||||||
IFS=" "" $nl"
|
|
||||||
errstatus=0
|
|
||||||
dirmode=
|
|
||||||
|
|
||||||
usage="\
|
|
||||||
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
|
|
||||||
|
|
||||||
Create each directory DIR (with mode MODE, if specified), including all
|
|
||||||
leading file name components.
|
|
||||||
|
|
||||||
Report bugs to <bug-automake@gnu.org>."
|
|
||||||
|
|
||||||
# process command line arguments
|
|
||||||
while test $# -gt 0 ; do
|
|
||||||
case $1 in
|
|
||||||
-h | --help | --h*) # -h for help
|
|
||||||
echo "$usage"
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
-m) # -m PERM arg
|
|
||||||
shift
|
|
||||||
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
|
|
||||||
dirmode=$1
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--version)
|
|
||||||
echo "$0 $scriptversion"
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
--) # stop option processing
|
|
||||||
shift
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
-*) # unknown option
|
|
||||||
echo "$usage" 1>&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
*) # first non-opt arg
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
for file
|
|
||||||
do
|
|
||||||
if test -d "$file"; then
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
case $# in
|
|
||||||
0) exit 0 ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
|
|
||||||
# mkdir -p a/c at the same time, both will detect that a is missing,
|
|
||||||
# one will create a, then the other will try to create a and die with
|
|
||||||
# a "File exists" error. This is a problem when calling mkinstalldirs
|
|
||||||
# from a parallel make. We use --version in the probe to restrict
|
|
||||||
# ourselves to GNU mkdir, which is thread-safe.
|
|
||||||
case $dirmode in
|
|
||||||
'')
|
|
||||||
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
|
|
||||||
echo "mkdir -p -- $*"
|
|
||||||
exec mkdir -p -- "$@"
|
|
||||||
else
|
|
||||||
# On NextStep and OpenStep, the `mkdir' command does not
|
|
||||||
# recognize any option. It will interpret all options as
|
|
||||||
# directories to create, and then abort because `.' already
|
|
||||||
# exists.
|
|
||||||
test -d ./-p && rmdir ./-p
|
|
||||||
test -d ./--version && rmdir ./--version
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
|
|
||||||
test ! -d ./--version; then
|
|
||||||
echo "mkdir -m $dirmode -p -- $*"
|
|
||||||
exec mkdir -m "$dirmode" -p -- "$@"
|
|
||||||
else
|
|
||||||
# Clean up after NextStep and OpenStep mkdir.
|
|
||||||
for d in ./-m ./-p ./--version "./$dirmode";
|
|
||||||
do
|
|
||||||
test -d $d && rmdir $d
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
for file
|
|
||||||
do
|
|
||||||
case $file in
|
|
||||||
/*) pathcomp=/ ;;
|
|
||||||
*) pathcomp= ;;
|
|
||||||
esac
|
|
||||||
oIFS=$IFS
|
|
||||||
IFS=/
|
|
||||||
set fnord $file
|
|
||||||
shift
|
|
||||||
IFS=$oIFS
|
|
||||||
|
|
||||||
for d
|
|
||||||
do
|
|
||||||
test "x$d" = x && continue
|
|
||||||
|
|
||||||
pathcomp=$pathcomp$d
|
|
||||||
case $pathcomp in
|
|
||||||
-*) pathcomp=./$pathcomp ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if test ! -d "$pathcomp"; then
|
|
||||||
echo "mkdir $pathcomp"
|
|
||||||
|
|
||||||
mkdir "$pathcomp" || lasterr=$?
|
|
||||||
|
|
||||||
if test ! -d "$pathcomp"; then
|
|
||||||
errstatus=$lasterr
|
|
||||||
else
|
|
||||||
if test ! -z "$dirmode"; then
|
|
||||||
echo "chmod $dirmode $pathcomp"
|
|
||||||
lasterr=
|
|
||||||
chmod "$dirmode" "$pathcomp" || lasterr=$?
|
|
||||||
|
|
||||||
if test ! -z "$lasterr"; then
|
|
||||||
errstatus=$lasterr
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
pathcomp=$pathcomp/
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
exit $errstatus
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# mode: shell-script
|
|
||||||
# sh-indentation: 2
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-time-zone: "UTC"
|
|
||||||
# time-stamp-end: "; # UTC"
|
|
||||||
# End:
|
|
||||||
4
png.5
@@ -1,4 +1,4 @@
|
|||||||
.TH PNG 5 "January 3, 2010"
|
.TH PNG 5 "July 10, 2012"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
png \- Portable Network Graphics (PNG) format
|
png \- Portable Network Graphics (PNG) format
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
@@ -18,7 +18,7 @@ gamma and chromaticity data for improved color matching on heterogeneous
|
|||||||
platforms.
|
platforms.
|
||||||
|
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.IR libpng(3), zlib(3), deflate(5), and zlib(5)
|
.BR "libpng"(3), " libpngpf"(3), " zlib"(3), " deflate"(5), " " and " zlib"(5)
|
||||||
.LP
|
.LP
|
||||||
PNG specification (second edition), November 2003:
|
PNG specification (second edition), November 2003:
|
||||||
.IP
|
.IP
|
||||||
|
|||||||
34
png.c
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* png.c - location for general purpose libpng functions
|
/* png.c - location for general purpose libpng functions
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.6 [March 8, 2011]
|
||||||
* Copyright (c) 1998-2010 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.)
|
||||||
*
|
*
|
||||||
@@ -17,11 +17,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 version_1_4_0 Your_png_h_is_not_version_1_4_0;
|
typedef version_1_4_12 Your_png_h_is_not_version_1_4_12;
|
||||||
|
|
||||||
/* Version information for C files. This had better match the version
|
|
||||||
* string defined in png.h.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* 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
|
||||||
@@ -543,21 +539,21 @@ png_convert_to_rfc1123(png_structp png_ptr, png_timep ptime)
|
|||||||
#endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */
|
#endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */
|
||||||
|
|
||||||
png_charp PNGAPI
|
png_charp PNGAPI
|
||||||
png_get_copyright(png_structp png_ptr)
|
png_get_copyright(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
png_ptr = png_ptr; /* Silence compiler warning about unused png_ptr */
|
PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */
|
||||||
#ifdef PNG_STRING_COPYRIGHT
|
#ifdef PNG_STRING_COPYRIGHT
|
||||||
return PNG_STRING_COPYRIGHT
|
return PNG_STRING_COPYRIGHT
|
||||||
#else
|
#else
|
||||||
#ifdef __STDC__
|
#ifdef __STDC__
|
||||||
return ((png_charp) PNG_STRING_NEWLINE \
|
return ((png_charp) PNG_STRING_NEWLINE \
|
||||||
"libpng version 1.4.0 - January 3, 2010" PNG_STRING_NEWLINE \
|
"libpng version 1.4.12 - July 10, 2012" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1998-2010 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
|
"Copyright (c) 1998-2010 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 ((png_charp) "libpng version 1.4.0 - January 3, 2010\
|
return ((png_charp) "libpng version 1.4.12 - July 10, 2012\
|
||||||
Copyright (c) 1998-2010 Glenn Randers-Pehrson\
|
Copyright (c) 1998-2010 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.");
|
||||||
@@ -574,23 +570,23 @@ png_get_copyright(png_structp png_ptr)
|
|||||||
* it is guaranteed that png.c uses the correct version of png.h.
|
* it is guaranteed that png.c uses the correct version of png.h.
|
||||||
*/
|
*/
|
||||||
png_charp PNGAPI
|
png_charp PNGAPI
|
||||||
png_get_libpng_ver(png_structp png_ptr)
|
png_get_libpng_ver(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
/* Version of *.c files used when building libpng */
|
/* Version of *.c files used when building libpng */
|
||||||
png_ptr = png_ptr; /* Silence compiler warning about unused png_ptr */
|
PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */
|
||||||
return ((png_charp) PNG_LIBPNG_VER_STRING);
|
return ((png_charp) PNG_LIBPNG_VER_STRING);
|
||||||
}
|
}
|
||||||
|
|
||||||
png_charp PNGAPI
|
png_charp PNGAPI
|
||||||
png_get_header_ver(png_structp png_ptr)
|
png_get_header_ver(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
/* Version of *.h files used when building libpng */
|
/* Version of *.h files used when building libpng */
|
||||||
png_ptr = png_ptr; /* Silence compiler warning about unused png_ptr */
|
PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */
|
||||||
return ((png_charp) PNG_LIBPNG_VER_STRING);
|
return ((png_charp) PNG_LIBPNG_VER_STRING);
|
||||||
}
|
}
|
||||||
|
|
||||||
png_charp PNGAPI
|
png_charp PNGAPI
|
||||||
png_get_header_version(png_structp png_ptr)
|
png_get_header_version(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
/* Returns longer string containing both version and date */
|
/* Returns longer string containing both version and date */
|
||||||
png_ptr = png_ptr; /* Silence compiler warning about unused png_ptr */
|
png_ptr = png_ptr; /* Silence compiler warning about unused png_ptr */
|
||||||
@@ -622,7 +618,9 @@ png_handle_as_unknown(png_structp png_ptr, png_bytep chunk_name)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */
|
||||||
|
|
||||||
|
#ifdef PNG_READ_SUPPORTED
|
||||||
/* This function, added to libpng-1.0.6g, is untested. */
|
/* This function, added to libpng-1.0.6g, is untested. */
|
||||||
int PNGAPI
|
int PNGAPI
|
||||||
png_reset_zstream(png_structp png_ptr)
|
png_reset_zstream(png_structp png_ptr)
|
||||||
@@ -631,7 +629,7 @@ png_reset_zstream(png_structp png_ptr)
|
|||||||
return Z_STREAM_ERROR;
|
return Z_STREAM_ERROR;
|
||||||
return (inflateReset(&png_ptr->zstream));
|
return (inflateReset(&png_ptr->zstream));
|
||||||
}
|
}
|
||||||
#endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */
|
#endif /* PNG_READ_SUPPORTED */
|
||||||
|
|
||||||
/* This function was added to libpng-1.0.7 */
|
/* This function was added to libpng-1.0.7 */
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
@@ -676,7 +674,7 @@ png_convert_size(size_t size)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
void /* PRIVATE */
|
void /* PRIVATE */
|
||||||
png_64bit_product (long v1, long v2, unsigned long *hi_product,
|
png_64bit_product(long v1, long v2, unsigned long *hi_product,
|
||||||
unsigned long *lo_product)
|
unsigned long *lo_product)
|
||||||
{
|
{
|
||||||
int a, b, c, d;
|
int a, b, c, d;
|
||||||
|
|||||||
240
pngconf.h
@@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
/* pngconf.h - machine configurable file for libpng
|
/* pngconf.h - machine configurable file for libpng
|
||||||
*
|
*
|
||||||
* libpng version 1.4.0 - January 3, 2010
|
* libpng version 1.4.12 - July 10, 2012
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2010 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.)
|
||||||
*
|
*
|
||||||
@@ -28,7 +28,9 @@
|
|||||||
|
|
||||||
/* Added at libpng-1.2.9 */
|
/* Added at libpng-1.2.9 */
|
||||||
|
|
||||||
/* config.h is created by and PNG_CONFIGURE_LIBPNG is set by the "configure" script. */
|
/* config.h is created by and PNG_CONFIGURE_LIBPNG is set by the "configure"
|
||||||
|
* script.
|
||||||
|
*/
|
||||||
#ifdef PNG_CONFIGURE_LIBPNG
|
#ifdef PNG_CONFIGURE_LIBPNG
|
||||||
# ifdef HAVE_CONFIG_H
|
# ifdef HAVE_CONFIG_H
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
@@ -42,14 +44,14 @@
|
|||||||
* includes the resource compiler for Windows DLL configurations.
|
* includes the resource compiler for Windows DLL configurations.
|
||||||
*/
|
*/
|
||||||
#ifdef PNG_USER_CONFIG
|
#ifdef PNG_USER_CONFIG
|
||||||
|
# include "pngusr.h"
|
||||||
# ifndef PNG_USER_PRIVATEBUILD
|
# ifndef PNG_USER_PRIVATEBUILD
|
||||||
# define PNG_USER_PRIVATEBUILD
|
# define PNG_USER_PRIVATEBUILD
|
||||||
# endif
|
# endif
|
||||||
# include "pngusr.h"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If you create a private DLL you need to define in "pngusr.h" the followings:
|
* If you create a private DLL you should define in "pngusr.h" the following:
|
||||||
* #define PNG_USER_PRIVATEBUILD <Describes by whom and why this version of
|
* #define PNG_USER_PRIVATEBUILD <Describes by whom and why this version of
|
||||||
* the DLL was built>
|
* the DLL was built>
|
||||||
* e.g. #define PNG_USER_PRIVATEBUILD "Build by MyCompany for xyz reasons."
|
* e.g. #define PNG_USER_PRIVATEBUILD "Build by MyCompany for xyz reasons."
|
||||||
@@ -57,7 +59,7 @@
|
|||||||
* distinguish your DLL from those of the official release. These
|
* distinguish your DLL from those of the official release. These
|
||||||
* correspond to the trailing letters that come after the version
|
* correspond to the trailing letters that come after the version
|
||||||
* number and must match your private DLL name>
|
* number and must match your private DLL name>
|
||||||
* e.g. // private DLL "libpng13gx.dll"
|
* e.g. // private DLL "libpng14gx.dll"
|
||||||
* #define PNG_USER_DLLFNAME_POSTFIX "gx"
|
* #define PNG_USER_DLLFNAME_POSTFIX "gx"
|
||||||
*
|
*
|
||||||
* The following macros are also at your disposal if you want to complete the
|
* The following macros are also at your disposal if you want to complete the
|
||||||
@@ -82,6 +84,18 @@
|
|||||||
|
|
||||||
/* End of material added to libpng-1.2.8 */
|
/* End of material added to libpng-1.2.8 */
|
||||||
|
|
||||||
|
/* Added at libpng-1.4.6 */
|
||||||
|
#ifndef PNG_UNUSED
|
||||||
|
/* Unused formal parameter warnings are silenced using the following macro
|
||||||
|
* which is expected to have no bad effects on performance (optimizing
|
||||||
|
* compilers will probably remove it entirely). Note that if you replace
|
||||||
|
* it with something other than whitespace, you must include the terminating
|
||||||
|
* semicolon.
|
||||||
|
*/
|
||||||
|
# define PNG_UNUSED(param) (void)param;
|
||||||
|
#endif
|
||||||
|
/* End of material added to libpng-1.4.6 */
|
||||||
|
|
||||||
#ifndef PNG_VERSION_INFO_ONLY
|
#ifndef PNG_VERSION_INFO_ONLY
|
||||||
|
|
||||||
/* This is the size of the compression buffer, and thus the size of
|
/* This is the size of the compression buffer, and thus the size of
|
||||||
@@ -267,11 +281,19 @@
|
|||||||
* #define PNG_NO_STDIO
|
* #define PNG_NO_STDIO
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
# define PNG_NO_CONSOLE_IO
|
||||||
|
# define PNG_NO_STDIO
|
||||||
|
# define PNG_NO_TIME_RFC1123
|
||||||
|
# ifdef PNG_DEBUG
|
||||||
|
# undef PNG_DEBUG
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined(PNG_NO_STDIO) && !defined(PNG_STDIO_SUPPORTED)
|
#if !defined(PNG_NO_STDIO) && !defined(PNG_STDIO_SUPPORTED)
|
||||||
# define PNG_STDIO_SUPPORTED
|
# define PNG_STDIO_SUPPORTED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef PNG_BUILD_DLL
|
#ifdef PNG_BUILD_DLL
|
||||||
# if !defined(PNG_CONSOLE_IO_SUPPORTED) && !defined(PNG_NO_CONSOLE_IO)
|
# if !defined(PNG_CONSOLE_IO_SUPPORTED) && !defined(PNG_NO_CONSOLE_IO)
|
||||||
# define PNG_NO_CONSOLE_IO
|
# define PNG_NO_CONSOLE_IO
|
||||||
@@ -389,18 +411,32 @@
|
|||||||
|
|
||||||
/* Other defines for things like memory and the like can go here. */
|
/* Other defines for things like memory and the like can go here. */
|
||||||
|
|
||||||
/* This controls how fine the dithering gets. As this allocates
|
/* This controls how fine the quantizing gets. As this allocates
|
||||||
* a largish chunk of memory (32K), those who are not as concerned
|
* a largish chunk of memory (32K), those who are not as concerned
|
||||||
* with dithering quality can decrease some or all of these.
|
* with quantizing quality can decrease some or all of these.
|
||||||
*/
|
*/
|
||||||
#ifndef PNG_DITHER_RED_BITS
|
|
||||||
# define PNG_DITHER_RED_BITS 5
|
/* Prior to libpng-1.4.2, these were PNG_DITHER_*_BITS
|
||||||
|
* These migration aids will be removed from libpng-1.5.0.
|
||||||
|
*/
|
||||||
|
#ifdef PNG_DITHER_RED_BITS
|
||||||
|
# define PNG_QUANTIZE_RED_BITS PNG_DITHER_RED_BITS
|
||||||
#endif
|
#endif
|
||||||
#ifndef PNG_DITHER_GREEN_BITS
|
#ifdef PNG_DITHER_GREEN_BITS
|
||||||
# define PNG_DITHER_GREEN_BITS 5
|
# define PNG_QUANTIZE_GREEN_BITS PNG_DITHER_GREEN_BITS
|
||||||
#endif
|
#endif
|
||||||
#ifndef PNG_DITHER_BLUE_BITS
|
#ifdef PNG_DITHER_BLUE_BITS
|
||||||
# define PNG_DITHER_BLUE_BITS 5
|
# define PNG_QUANTIZE_BLUE_BITS PNG_DITHER_BLUE_BITS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PNG_QUANTIZE_RED_BITS
|
||||||
|
# define PNG_QUANTIZE_RED_BITS 5
|
||||||
|
#endif
|
||||||
|
#ifndef PNG_QUANTIZE_GREEN_BITS
|
||||||
|
# define PNG_QUANTIZE_GREEN_BITS 5
|
||||||
|
#endif
|
||||||
|
#ifndef PNG_QUANTIZE_BLUE_BITS
|
||||||
|
# define PNG_QUANTIZE_BLUE_BITS 5
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* This controls how fine the gamma correction becomes when you
|
/* This controls how fine the gamma correction becomes when you
|
||||||
@@ -423,7 +459,7 @@
|
|||||||
|
|
||||||
/* The following uses const char * instead of char * for error
|
/* The following uses const char * instead of char * for error
|
||||||
* and warning message functions, so some compilers won't complain.
|
* and warning message functions, so some compilers won't complain.
|
||||||
* If you do not want to use const, define PNG_NO_CONST here.
|
* If you do not want to use const, define PNG_NO_CONST.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef PNG_CONST
|
#ifndef PNG_CONST
|
||||||
@@ -438,8 +474,10 @@
|
|||||||
* library that you will not be using. I wish I could figure out how to
|
* library that you will not be using. I wish I could figure out how to
|
||||||
* automate this, but I can't do that without making it seriously hard
|
* automate this, but I can't do that without making it seriously hard
|
||||||
* on the users. So if you are not using an ability, change the #define
|
* on the users. So if you are not using an ability, change the #define
|
||||||
* to and #undef, and that part of the library will not be compiled. If
|
* to an #undef, or pass in PNG_NO_feature and that part of the library
|
||||||
* your linker can't find a function, you may want to make sure the
|
* will not be compiled.
|
||||||
|
|
||||||
|
* If your linker can't find a function, you may want to make sure the
|
||||||
* ability is defined here. Some of these depend upon some others being
|
* ability is defined here. Some of these depend upon some others being
|
||||||
* defined. I haven't figured out all the interactions here, so you may
|
* defined. I haven't figured out all the interactions here, so you may
|
||||||
* have to experiment awhile to get everything to compile. If you are
|
* have to experiment awhile to get everything to compile. If you are
|
||||||
@@ -497,11 +535,12 @@
|
|||||||
# ifndef PNG_NO_READ_INVERT
|
# ifndef PNG_NO_READ_INVERT
|
||||||
# define PNG_READ_INVERT_SUPPORTED
|
# define PNG_READ_INVERT_SUPPORTED
|
||||||
# endif
|
# endif
|
||||||
#if 0 /* removed from libpng-1.4.0 */
|
# ifndef PNG_NO_READ_QUANTIZE
|
||||||
# ifndef PNG_NO_READ_DITHER
|
/* Prior to libpng-1.4.0 this was PNG_READ_DITHER_SUPPORTED */
|
||||||
# define PNG_READ_DITHER_SUPPORTED
|
# ifndef PNG_NO_READ_DITHER /* This migration aid will be removed */
|
||||||
|
# define PNG_READ_QUANTIZE_SUPPORTED
|
||||||
|
# endif
|
||||||
# endif
|
# endif
|
||||||
#endif /* 0 */
|
|
||||||
# ifndef PNG_NO_READ_BACKGROUND
|
# ifndef PNG_NO_READ_BACKGROUND
|
||||||
# define PNG_READ_BACKGROUND_SUPPORTED
|
# define PNG_READ_BACKGROUND_SUPPORTED
|
||||||
# endif
|
# endif
|
||||||
@@ -672,14 +711,29 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Added at libpng-1.2.6 */
|
/* Added at libpng-1.2.6 */
|
||||||
#ifndef PNG_SET_USER_LIMITS_SUPPORTED
|
#ifndef PNG_NO_SET_USER_LIMITS
|
||||||
# ifndef PNG_NO_SET_USER_LIMITS
|
# ifndef PNG_SET_USER_LIMITS_SUPPORTED
|
||||||
# define PNG_SET_USER_LIMITS_SUPPORTED
|
# define PNG_SET_USER_LIMITS_SUPPORTED
|
||||||
|
# endif
|
||||||
|
/* Feature added at libpng-1.4.0, this flag added at 1.4.1 */
|
||||||
|
# ifndef PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED
|
||||||
|
# define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED
|
||||||
|
# endif
|
||||||
|
/* Feature added at libpng-1.4.1, this flag added at 1.4.1 */
|
||||||
|
# ifndef PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
|
||||||
|
# define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Added at libpng-1.2.43 */
|
||||||
|
#ifndef PNG_USER_LIMITS_SUPPORTED
|
||||||
|
# ifndef PNG_NO_USER_LIMITS
|
||||||
|
# define PNG_USER_LIMITS_SUPPORTED
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Added at libpng-1.0.16 and 1.2.6. To accept all valid PNGs no matter
|
/* Added at libpng-1.0.16 and 1.2.6. To accept all valid PNGs no matter
|
||||||
* how large, set these limits to 0x7fffffffL
|
* how large, set these two limits to 0x7fffffffL
|
||||||
*/
|
*/
|
||||||
#ifndef PNG_USER_WIDTH_MAX
|
#ifndef PNG_USER_WIDTH_MAX
|
||||||
# define PNG_USER_WIDTH_MAX 1000000L
|
# define PNG_USER_WIDTH_MAX 1000000L
|
||||||
@@ -688,9 +742,16 @@
|
|||||||
# define PNG_USER_HEIGHT_MAX 1000000L
|
# define PNG_USER_HEIGHT_MAX 1000000L
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Added at libpng-1.4.0 */
|
/* Added at libpng-1.2.43. To accept all valid PNGs no matter
|
||||||
|
* how large, set these two limits to 0.
|
||||||
|
*/
|
||||||
#ifndef PNG_USER_CHUNK_CACHE_MAX
|
#ifndef PNG_USER_CHUNK_CACHE_MAX
|
||||||
# define PNG_USER_CHUNK_CACHE_MAX 0x7fffffffL
|
# define PNG_USER_CHUNK_CACHE_MAX 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Added at libpng-1.2.43 */
|
||||||
|
#ifndef PNG_USER_CHUNK_MALLOC_MAX
|
||||||
|
# define PNG_USER_CHUNK_MALLOC_MAX 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Added at libpng-1.4.0 */
|
/* Added at libpng-1.4.0 */
|
||||||
@@ -861,20 +922,22 @@
|
|||||||
#endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */
|
#endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */
|
||||||
|
|
||||||
#ifndef PNG_NO_READ_UNKNOWN_CHUNKS
|
#ifndef PNG_NO_READ_UNKNOWN_CHUNKS
|
||||||
# define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
|
# ifndef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
|
# define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
|
# endif
|
||||||
# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
|
# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
# define PNG_UNKNOWN_CHUNKS_SUPPORTED
|
# define PNG_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
# endif
|
# endif
|
||||||
#endif
|
# ifndef PNG_READ_USER_CHUNKS_SUPPORTED
|
||||||
#if !defined(PNG_NO_READ_USER_CHUNKS) && \
|
# define PNG_READ_USER_CHUNKS_SUPPORTED
|
||||||
defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
|
|
||||||
# define PNG_READ_USER_CHUNKS_SUPPORTED
|
|
||||||
# define PNG_USER_CHUNKS_SUPPORTED
|
|
||||||
# ifdef PNG_NO_READ_UNKNOWN_CHUNKS
|
|
||||||
# undef PNG_NO_READ_UNKNOWN_CHUNKS
|
|
||||||
# endif
|
# endif
|
||||||
# ifdef PNG_NO_HANDLE_AS_UNKNOWN
|
#endif
|
||||||
# undef PNG_NO_HANDLE_AS_UNKNOWN
|
#ifndef PNG_NO_READ_USER_CHUNKS
|
||||||
|
# ifndef PNG_READ_USER_CHUNKS_SUPPORTED
|
||||||
|
# define PNG_READ_USER_CHUNKS_SUPPORTED
|
||||||
|
# endif
|
||||||
|
# ifndef PNG_USER_CHUNKS_SUPPORTED
|
||||||
|
# define PNG_USER_CHUNKS_SUPPORTED
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#ifndef PNG_NO_HANDLE_AS_UNKNOWN
|
#ifndef PNG_NO_HANDLE_AS_UNKNOWN
|
||||||
@@ -1016,8 +1079,10 @@
|
|||||||
|
|
||||||
#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */
|
#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */
|
||||||
|
|
||||||
#if !defined(PNG_NO_WRITE_FILTER) && !defined(PNG_WRITE_FILTER_SUPPORTED)
|
#ifndef PNG_NO_WRITE_FILTER
|
||||||
# define PNG_WRITE_FILTER_SUPPORTED
|
# ifndef PNG_WRITE_FILTER_SUPPORTED
|
||||||
|
# define PNG_WRITE_FILTER_SUPPORTED
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS
|
#ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS
|
||||||
@@ -1071,7 +1136,7 @@ typedef unsigned char png_byte;
|
|||||||
#else
|
#else
|
||||||
typedef size_t png_size_t;
|
typedef size_t png_size_t;
|
||||||
#endif
|
#endif
|
||||||
#define png_sizeof(x) sizeof(x)
|
#define png_sizeof(x) (sizeof (x))
|
||||||
|
|
||||||
/* The following is needed for medium model support. It cannot be in the
|
/* The following is needed for medium model support. It cannot be in the
|
||||||
* pngpriv.h header. Needs modification for other compilers besides
|
* pngpriv.h header. Needs modification for other compilers besides
|
||||||
@@ -1193,6 +1258,13 @@ typedef char FAR * FAR * FAR * png_charppp;
|
|||||||
# define PNG_DLL
|
# define PNG_DLL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall",
|
||||||
|
* you may get warnings regarding the linkage of png_zalloc and png_zfree.
|
||||||
|
* Don't ignore those warnings; you must also reset the default calling
|
||||||
|
* convention in your compiler to match your PNGAPI, and you must build
|
||||||
|
* zlib and your applications the same way you build libpng.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifdef __CYGWIN__
|
#ifdef __CYGWIN__
|
||||||
# undef PNGAPI
|
# undef PNGAPI
|
||||||
# define PNGAPI __cdecl
|
# define PNGAPI __cdecl
|
||||||
@@ -1200,14 +1272,11 @@ typedef char FAR * FAR * FAR * png_charppp;
|
|||||||
# define PNG_IMPEXP
|
# define PNG_IMPEXP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define PNG_USE_LOCAL_ARRAYS /* Not used in libpng, defined for legacy apps */
|
#ifdef __WATCOMC__
|
||||||
|
# ifndef PNGAPI
|
||||||
/* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall",
|
# define PNGAPI
|
||||||
* you may get warnings regarding the linkage of png_zalloc and png_zfree.
|
# endif
|
||||||
* Don't ignore those warnings; you must also reset the default calling
|
#endif
|
||||||
* convention in your compiler to match your PNGAPI, and you must build
|
|
||||||
* zlib and your applications the same way you build libpng.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(__MINGW32__) && !defined(PNG_MODULEDEF)
|
#if defined(__MINGW32__) && !defined(PNG_MODULEDEF)
|
||||||
# ifndef PNG_NO_MODULEDEF
|
# ifndef PNG_NO_MODULEDEF
|
||||||
@@ -1292,6 +1361,8 @@ typedef char FAR * FAR * FAR * png_charppp;
|
|||||||
# define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol
|
# define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define PNG_USE_LOCAL_ARRAYS /* Not used in libpng, defined for legacy apps */
|
||||||
|
|
||||||
/* Support for compiler specific function attributes. These are used
|
/* Support for compiler specific function attributes. These are used
|
||||||
* so that where compiler support is available incorrect use of API
|
* so that where compiler support is available incorrect use of API
|
||||||
* functions in png.h will generate compiler warnings.
|
* functions in png.h will generate compiler warnings.
|
||||||
@@ -1320,15 +1391,15 @@ typedef char FAR * FAR * FAR * png_charppp;
|
|||||||
# endif
|
# endif
|
||||||
# ifndef PNG_ALLOCATED
|
# ifndef PNG_ALLOCATED
|
||||||
# define PNG_ALLOCATED __attribute__((__malloc__))
|
# define PNG_ALLOCATED __attribute__((__malloc__))
|
||||||
|
# endif
|
||||||
|
# ifndef PNG_DEPRECATED
|
||||||
|
# define PNG_DEPRECATED __attribute__((__deprecated__))
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
/* This specifically protects structure members that should only be
|
/* This specifically protects structure members that should only be
|
||||||
* accessed from within the library, therefore should be empty during
|
* accessed from within the library, therefore should be empty during
|
||||||
* a library build.
|
* a library build.
|
||||||
*/
|
*/
|
||||||
# ifndef PNG_DEPRECATED
|
|
||||||
# define PNG_DEPRECATED __attribute__((__deprecated__))
|
|
||||||
# endif
|
|
||||||
# ifndef PNG_DEPSTRUCT
|
# ifndef PNG_DEPSTRUCT
|
||||||
# define PNG_DEPSTRUCT __attribute__((__deprecated__))
|
# define PNG_DEPSTRUCT __attribute__((__deprecated__))
|
||||||
# endif
|
# endif
|
||||||
@@ -1369,7 +1440,7 @@ typedef char FAR * FAR * FAR * png_charppp;
|
|||||||
|
|
||||||
/* memory model/platform independent fns */
|
/* memory model/platform independent fns */
|
||||||
#ifndef PNG_ABORT
|
#ifndef PNG_ABORT
|
||||||
# ifdef _WINDOWS_
|
# if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_))
|
||||||
# define PNG_ABORT() ExitProcess(0)
|
# define PNG_ABORT() ExitProcess(0)
|
||||||
# else
|
# else
|
||||||
# define PNG_ABORT() abort()
|
# define PNG_ABORT() abort()
|
||||||
@@ -1390,7 +1461,8 @@ typedef char FAR * FAR * FAR * png_charppp;
|
|||||||
# define png_memset _fmemset
|
# define png_memset _fmemset
|
||||||
# define png_sprintf sprintf
|
# define png_sprintf sprintf
|
||||||
#else
|
#else
|
||||||
# ifdef _WINDOWS_ /* Favor Windows over C runtime fns */
|
# if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_))
|
||||||
|
# /* Favor Windows over C runtime fns */
|
||||||
# define CVT_PTR(ptr) (ptr)
|
# define CVT_PTR(ptr) (ptr)
|
||||||
# define CVT_PTR_NOCHECK(ptr) (ptr)
|
# define CVT_PTR_NOCHECK(ptr) (ptr)
|
||||||
# define png_strcpy lstrcpyA
|
# define png_strcpy lstrcpyA
|
||||||
@@ -1410,31 +1482,32 @@ typedef char FAR * FAR * FAR * png_charppp;
|
|||||||
# define png_memcpy memcpy
|
# define png_memcpy memcpy
|
||||||
# define png_memset memset
|
# define png_memset memset
|
||||||
# define png_sprintf sprintf
|
# define png_sprintf sprintf
|
||||||
# ifndef PNG_NO_SNPRINTF
|
|
||||||
# ifdef _MSC_VER
|
|
||||||
# define png_snprintf _snprintf /* Added to v 1.2.19 */
|
|
||||||
# define png_snprintf2 _snprintf
|
|
||||||
# define png_snprintf6 _snprintf
|
|
||||||
# else
|
|
||||||
# define png_snprintf snprintf /* Added to v 1.2.19 */
|
|
||||||
# define png_snprintf2 snprintf
|
|
||||||
# define png_snprintf6 snprintf
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
/* You don't have or don't want to use snprintf(). Caution: Using
|
|
||||||
* sprintf instead of snprintf exposes your application to accidental
|
|
||||||
* or malevolent buffer overflows. If you don't have snprintf()
|
|
||||||
* as a general rule you should provide one (you can get one from
|
|
||||||
* Portable OpenSSH).
|
|
||||||
*/
|
|
||||||
# define png_snprintf(s1,n,fmt,x1) sprintf(s1,fmt,x1)
|
|
||||||
# define png_snprintf2(s1,n,fmt,x1,x2) sprintf(s1,fmt,x1,x2)
|
|
||||||
# define png_snprintf6(s1,n,fmt,x1,x2,x3,x4,x5,x6) \
|
|
||||||
sprintf(s1,fmt,x1,x2,x3,x4,x5,x6)
|
|
||||||
# endif
|
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef PNG_NO_SNPRINTF
|
||||||
|
# ifdef _MSC_VER
|
||||||
|
# define png_snprintf _snprintf /* Added to v 1.2.19 */
|
||||||
|
# define png_snprintf2 _snprintf
|
||||||
|
# define png_snprintf6 _snprintf
|
||||||
|
# else
|
||||||
|
# define png_snprintf snprintf /* Added to v 1.2.19 */
|
||||||
|
# define png_snprintf2 snprintf
|
||||||
|
# define png_snprintf6 snprintf
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
/* You don't have or don't want to use snprintf(). Caution: Using
|
||||||
|
* sprintf instead of snprintf exposes your application to accidental
|
||||||
|
* or malevolent buffer overflows. If you don't have snprintf()
|
||||||
|
* as a general rule you should provide one (you can get one from
|
||||||
|
* Portable OpenSSH).
|
||||||
|
*/
|
||||||
|
# define png_snprintf(s1,n,fmt,x1) png_sprintf(s1,fmt,x1)
|
||||||
|
# define png_snprintf2(s1,n,fmt,x1,x2) png_sprintf(s1,fmt,x1,x2)
|
||||||
|
# define png_snprintf6(s1,n,fmt,x1,x2,x3,x4,x5,x6) \
|
||||||
|
png_sprintf(s1,fmt,x1,x2,x3,x4,x5,x6)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* png_alloc_size_t is guaranteed to be no smaller than png_size_t,
|
/* png_alloc_size_t is guaranteed to be no smaller than png_size_t,
|
||||||
* and no smaller than png_uint_32. Casts from png_size_t or png_uint_32
|
* and no smaller than png_uint_32. Casts from png_size_t or png_uint_32
|
||||||
* to png_alloc_size_t are not necessary; in fact, it is recommended
|
* to png_alloc_size_t are not necessary; in fact, it is recommended
|
||||||
@@ -1445,22 +1518,19 @@ typedef char FAR * FAR * FAR * png_charppp;
|
|||||||
* to encounter practical situations that require such conversions.
|
* to encounter practical situations that require such conversions.
|
||||||
*/
|
*/
|
||||||
#if defined(__TURBOC__) && !defined(__FLAT__)
|
#if defined(__TURBOC__) && !defined(__FLAT__)
|
||||||
# define png_mem_alloc farmalloc
|
|
||||||
# define png_mem_free farfree
|
|
||||||
typedef unsigned long png_alloc_size_t;
|
typedef unsigned long png_alloc_size_t;
|
||||||
#else
|
#else
|
||||||
# if defined(_MSC_VER) && defined(MAXSEG_64K)
|
# if defined(_MSC_VER) && defined(MAXSEG_64K)
|
||||||
# define png_mem_alloc(s) halloc(s, 1)
|
|
||||||
# define png_mem_free hfree
|
|
||||||
typedef unsigned long png_alloc_size_t;
|
typedef unsigned long png_alloc_size_t;
|
||||||
# else
|
# else
|
||||||
# if defined(_WINDOWS_) && (!defined(INT_MAX) || INT_MAX <= 0x7ffffffeL)
|
/* This is an attempt to detect an old Windows system where (int) is
|
||||||
# define png_mem_alloc(s) HeapAlloc(GetProcessHeap(), 0, s)
|
* actually 16 bits, in that case png_malloc must have an argument with a
|
||||||
# define png_mem_free(p) HeapFree(GetProcessHeap(), 0, p)
|
* bigger size to accomodate the requirements of the library.
|
||||||
typedef DWORD png_alloc_size_t;
|
*/
|
||||||
|
# if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_)) && \
|
||||||
|
(!defined(INT_MAX) || INT_MAX <= 0x7ffffffeL)
|
||||||
|
typedef DWORD png_alloc_size_t;
|
||||||
# else
|
# else
|
||||||
# define png_mem_alloc malloc
|
|
||||||
# define png_mem_free free
|
|
||||||
typedef png_size_t png_alloc_size_t;
|
typedef png_size_t png_alloc_size_t;
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|||||||
30
pngerror.c
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* pngerror.c - stub functions for i/o and memory allocation
|
/* pngerror.c - stub functions for i/o and memory allocation
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.8 [July 7, 2011]
|
||||||
* Copyright (c) 1998-2010 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.)
|
||||||
*
|
*
|
||||||
@@ -87,12 +87,17 @@ png_error(png_structp png_ptr, png_const_charp error_message)
|
|||||||
void PNGAPI
|
void PNGAPI
|
||||||
png_err(png_structp png_ptr)
|
png_err(png_structp png_ptr)
|
||||||
{
|
{
|
||||||
|
/* Prior to 1.4.8 the error_fn received a NULL pointer, expressed
|
||||||
|
* erroneously as '\0', instead of the empty string "". This was
|
||||||
|
* apparently an error, introduced in libpng-1.2.20, and png_default_error
|
||||||
|
* will crash in this case.
|
||||||
|
*/
|
||||||
if (png_ptr != NULL && png_ptr->error_fn != NULL)
|
if (png_ptr != NULL && png_ptr->error_fn != NULL)
|
||||||
(*(png_ptr->error_fn))(png_ptr, '\0');
|
(*(png_ptr->error_fn))(png_ptr, "");
|
||||||
|
|
||||||
/* If the custom handler doesn't exist, or if it returns,
|
/* If the custom handler doesn't exist, or if it returns,
|
||||||
use the default handler, which will not return. */
|
use the default handler, which will not return. */
|
||||||
png_default_error(png_ptr, '\0');
|
png_default_error(png_ptr, "");
|
||||||
}
|
}
|
||||||
#endif /* PNG_ERROR_TEXT_SUPPORTED */
|
#endif /* PNG_ERROR_TEXT_SUPPORTED */
|
||||||
|
|
||||||
@@ -181,8 +186,13 @@ png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp
|
|||||||
{
|
{
|
||||||
buffer[iout++] = ':';
|
buffer[iout++] = ':';
|
||||||
buffer[iout++] = ' ';
|
buffer[iout++] = ' ';
|
||||||
png_memcpy(buffer + iout, error_message, PNG_MAX_ERROR_TEXT);
|
|
||||||
buffer[iout + PNG_MAX_ERROR_TEXT - 1] = '\0';
|
iin = 0;
|
||||||
|
while (iin < PNG_MAX_ERROR_TEXT-1 && error_message[iin] != '\0')
|
||||||
|
buffer[iout++] = error_message[iin++];
|
||||||
|
|
||||||
|
/* iin < PNG_MAX_ERROR_TEXT, so the following is safe: */
|
||||||
|
buffer[iout] = '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -306,7 +316,7 @@ png_default_error(png_structp png_ptr, png_const_charp error_message)
|
|||||||
/* Here if not setjmp support or if png_ptr is null. */
|
/* Here if not setjmp support or if png_ptr is null. */
|
||||||
PNG_ABORT();
|
PNG_ABORT();
|
||||||
#ifndef PNG_CONSOLE_IO_SUPPORTED
|
#ifndef PNG_CONSOLE_IO_SUPPORTED
|
||||||
error_message = error_message; /* Make compiler happy */
|
PNG_UNUSED(error_message) /* Make compiler happy */
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -352,9 +362,9 @@ png_default_warning(png_structp png_ptr, png_const_charp warning_message)
|
|||||||
fprintf(stderr, PNG_STRING_NEWLINE);
|
fprintf(stderr, PNG_STRING_NEWLINE);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
warning_message = warning_message; /* Make compiler happy */
|
PNG_UNUSED(warning_message) /* Make compiler happy */
|
||||||
#endif
|
#endif
|
||||||
png_ptr = png_ptr; /* Make compiler happy */
|
PNG_UNUSED(png_ptr) /* Make compiler happy */
|
||||||
}
|
}
|
||||||
#endif /* PNG_WARNINGS_SUPPORTED */
|
#endif /* PNG_WARNINGS_SUPPORTED */
|
||||||
|
|
||||||
@@ -380,7 +390,7 @@ png_set_error_fn(png_structp png_ptr, png_voidp error_ptr,
|
|||||||
* pointer before png_write_destroy and png_read_destroy are called.
|
* pointer before png_write_destroy and png_read_destroy are called.
|
||||||
*/
|
*/
|
||||||
png_voidp PNGAPI
|
png_voidp PNGAPI
|
||||||
png_get_error_ptr(png_structp png_ptr)
|
png_get_error_ptr(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|||||||
136
pngget.c
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* pngget.c - retrieval of values from info struct
|
/* pngget.c - retrieval of values from info struct
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.6 [April 8, 2011]
|
||||||
* Copyright (c) 1998-2010 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.)
|
||||||
*
|
*
|
||||||
@@ -18,7 +18,8 @@
|
|||||||
#include "pngpriv.h"
|
#include "pngpriv.h"
|
||||||
|
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_valid(png_structp png_ptr, png_infop info_ptr, png_uint_32 flag)
|
png_get_valid(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
|
png_uint_32 flag)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
return(info_ptr->valid & flag);
|
return(info_ptr->valid & flag);
|
||||||
@@ -28,7 +29,7 @@ png_get_valid(png_structp png_ptr, png_infop info_ptr, png_uint_32 flag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_size_t PNGAPI
|
png_size_t PNGAPI
|
||||||
png_get_rowbytes(png_structp png_ptr, png_infop info_ptr)
|
png_get_rowbytes(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
return(info_ptr->rowbytes);
|
return(info_ptr->rowbytes);
|
||||||
@@ -39,7 +40,7 @@ png_get_rowbytes(png_structp png_ptr, png_infop info_ptr)
|
|||||||
|
|
||||||
#ifdef PNG_INFO_IMAGE_SUPPORTED
|
#ifdef PNG_INFO_IMAGE_SUPPORTED
|
||||||
png_bytepp PNGAPI
|
png_bytepp PNGAPI
|
||||||
png_get_rows(png_structp png_ptr, png_infop info_ptr)
|
png_get_rows(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
return(info_ptr->row_pointers);
|
return(info_ptr->row_pointers);
|
||||||
@@ -52,7 +53,7 @@ png_get_rows(png_structp png_ptr, png_infop info_ptr)
|
|||||||
#ifdef PNG_EASY_ACCESS_SUPPORTED
|
#ifdef PNG_EASY_ACCESS_SUPPORTED
|
||||||
/* Easy access to info, added in libpng-0.99 */
|
/* Easy access to info, added in libpng-0.99 */
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_image_width(png_structp png_ptr, png_infop info_ptr)
|
png_get_image_width(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
return info_ptr->width;
|
return info_ptr->width;
|
||||||
@@ -61,7 +62,7 @@ png_get_image_width(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_image_height(png_structp png_ptr, png_infop info_ptr)
|
png_get_image_height(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
return info_ptr->height;
|
return info_ptr->height;
|
||||||
@@ -70,7 +71,7 @@ png_get_image_height(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_byte PNGAPI
|
png_byte PNGAPI
|
||||||
png_get_bit_depth(png_structp png_ptr, png_infop info_ptr)
|
png_get_bit_depth(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
return info_ptr->bit_depth;
|
return info_ptr->bit_depth;
|
||||||
@@ -79,7 +80,7 @@ png_get_bit_depth(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_byte PNGAPI
|
png_byte PNGAPI
|
||||||
png_get_color_type(png_structp png_ptr, png_infop info_ptr)
|
png_get_color_type(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
return info_ptr->color_type;
|
return info_ptr->color_type;
|
||||||
@@ -88,7 +89,7 @@ png_get_color_type(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_byte PNGAPI
|
png_byte PNGAPI
|
||||||
png_get_filter_type(png_structp png_ptr, png_infop info_ptr)
|
png_get_filter_type(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
return info_ptr->filter_type;
|
return info_ptr->filter_type;
|
||||||
@@ -97,7 +98,7 @@ png_get_filter_type(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_byte PNGAPI
|
png_byte PNGAPI
|
||||||
png_get_interlace_type(png_structp png_ptr, png_infop info_ptr)
|
png_get_interlace_type(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
return info_ptr->interlace_type;
|
return info_ptr->interlace_type;
|
||||||
@@ -106,7 +107,7 @@ png_get_interlace_type(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_byte PNGAPI
|
png_byte PNGAPI
|
||||||
png_get_compression_type(png_structp png_ptr, png_infop info_ptr)
|
png_get_compression_type(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
return info_ptr->compression_type;
|
return info_ptr->compression_type;
|
||||||
@@ -115,7 +116,7 @@ png_get_compression_type(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_x_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
|
png_get_x_pixels_per_meter(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
#ifdef PNG_pHYs_SUPPORTED
|
#ifdef PNG_pHYs_SUPPORTED
|
||||||
@@ -136,7 +137,7 @@ png_get_x_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_y_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
|
png_get_y_pixels_per_meter(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
#ifdef PNG_pHYs_SUPPORTED
|
#ifdef PNG_pHYs_SUPPORTED
|
||||||
@@ -157,7 +158,7 @@ png_get_y_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
|
png_get_pixels_per_meter(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
#ifdef PNG_pHYs_SUPPORTED
|
#ifdef PNG_pHYs_SUPPORTED
|
||||||
@@ -180,7 +181,7 @@ png_get_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
|
|||||||
|
|
||||||
#ifdef PNG_FLOATING_POINT_SUPPORTED
|
#ifdef PNG_FLOATING_POINT_SUPPORTED
|
||||||
float PNGAPI
|
float PNGAPI
|
||||||
png_get_pixel_aspect_ratio(png_structp png_ptr, png_infop info_ptr)
|
png_get_pixel_aspect_ratio(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
#ifdef PNG_pHYs_SUPPORTED
|
#ifdef PNG_pHYs_SUPPORTED
|
||||||
@@ -204,7 +205,7 @@ png_get_pixel_aspect_ratio(png_structp png_ptr, png_infop info_ptr)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
png_int_32 PNGAPI
|
png_int_32 PNGAPI
|
||||||
png_get_x_offset_microns(png_structp png_ptr, png_infop info_ptr)
|
png_get_x_offset_microns(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
#ifdef PNG_oFFs_SUPPORTED
|
#ifdef PNG_oFFs_SUPPORTED
|
||||||
@@ -226,7 +227,7 @@ png_get_x_offset_microns(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_int_32 PNGAPI
|
png_int_32 PNGAPI
|
||||||
png_get_y_offset_microns(png_structp png_ptr, png_infop info_ptr)
|
png_get_y_offset_microns(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
|
|
||||||
@@ -248,7 +249,7 @@ png_get_y_offset_microns(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_int_32 PNGAPI
|
png_int_32 PNGAPI
|
||||||
png_get_x_offset_pixels(png_structp png_ptr, png_infop info_ptr)
|
png_get_x_offset_pixels(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
|
|
||||||
@@ -270,7 +271,7 @@ png_get_x_offset_pixels(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_int_32 PNGAPI
|
png_int_32 PNGAPI
|
||||||
png_get_y_offset_pixels(png_structp png_ptr, png_infop info_ptr)
|
png_get_y_offset_pixels(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
|
|
||||||
@@ -293,35 +294,35 @@ png_get_y_offset_pixels(png_structp png_ptr, png_infop info_ptr)
|
|||||||
|
|
||||||
#if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED)
|
#if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED)
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_pixels_per_inch(png_structp png_ptr, png_infop info_ptr)
|
png_get_pixels_per_inch(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
return ((png_uint_32)((float)png_get_pixels_per_meter(png_ptr, info_ptr)
|
return ((png_uint_32)((float)png_get_pixels_per_meter(png_ptr, info_ptr)
|
||||||
*.0254 +.5));
|
*.0254 +.5));
|
||||||
}
|
}
|
||||||
|
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_x_pixels_per_inch(png_structp png_ptr, png_infop info_ptr)
|
png_get_x_pixels_per_inch(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
return ((png_uint_32)((float)png_get_x_pixels_per_meter(png_ptr, info_ptr)
|
return ((png_uint_32)((float)png_get_x_pixels_per_meter(png_ptr, info_ptr)
|
||||||
*.0254 +.5));
|
*.0254 +.5));
|
||||||
}
|
}
|
||||||
|
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_y_pixels_per_inch(png_structp png_ptr, png_infop info_ptr)
|
png_get_y_pixels_per_inch(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
return ((png_uint_32)((float)png_get_y_pixels_per_meter(png_ptr, info_ptr)
|
return ((png_uint_32)((float)png_get_y_pixels_per_meter(png_ptr, info_ptr)
|
||||||
*.0254 +.5));
|
*.0254 +.5));
|
||||||
}
|
}
|
||||||
|
|
||||||
float PNGAPI
|
float PNGAPI
|
||||||
png_get_x_offset_inches(png_structp png_ptr, png_infop info_ptr)
|
png_get_x_offset_inches(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
return ((float)png_get_x_offset_microns(png_ptr, info_ptr)
|
return ((float)png_get_x_offset_microns(png_ptr, info_ptr)
|
||||||
*.00003937);
|
*.00003937);
|
||||||
}
|
}
|
||||||
|
|
||||||
float PNGAPI
|
float PNGAPI
|
||||||
png_get_y_offset_inches(png_structp png_ptr, png_infop info_ptr)
|
png_get_y_offset_inches(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
return ((float)png_get_y_offset_microns(png_ptr, info_ptr)
|
return ((float)png_get_y_offset_microns(png_ptr, info_ptr)
|
||||||
*.00003937);
|
*.00003937);
|
||||||
@@ -329,7 +330,7 @@ png_get_y_offset_inches(png_structp png_ptr, png_infop info_ptr)
|
|||||||
|
|
||||||
#ifdef PNG_pHYs_SUPPORTED
|
#ifdef PNG_pHYs_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_pHYs_dpi(png_structp png_ptr, png_infop info_ptr,
|
png_get_pHYs_dpi(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
|
png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
|
||||||
{
|
{
|
||||||
png_uint_32 retval = 0;
|
png_uint_32 retval = 0;
|
||||||
@@ -369,7 +370,7 @@ png_get_pHYs_dpi(png_structp png_ptr, png_infop info_ptr,
|
|||||||
#endif /* PNG_EASY_ACCESS_SUPPORTED */
|
#endif /* PNG_EASY_ACCESS_SUPPORTED */
|
||||||
|
|
||||||
png_byte PNGAPI
|
png_byte PNGAPI
|
||||||
png_get_channels(png_structp png_ptr, png_infop info_ptr)
|
png_get_channels(png_const_structp png_ptr, png_const_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
return(info_ptr->channels);
|
return(info_ptr->channels);
|
||||||
@@ -378,7 +379,7 @@ png_get_channels(png_structp png_ptr, png_infop info_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_bytep PNGAPI
|
png_bytep PNGAPI
|
||||||
png_get_signature(png_structp png_ptr, png_infop info_ptr)
|
png_get_signature(png_const_structp png_ptr, png_infop info_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL)
|
if (png_ptr != NULL && info_ptr != NULL)
|
||||||
return(info_ptr->signature);
|
return(info_ptr->signature);
|
||||||
@@ -388,7 +389,7 @@ png_get_signature(png_structp png_ptr, png_infop info_ptr)
|
|||||||
|
|
||||||
#ifdef PNG_bKGD_SUPPORTED
|
#ifdef PNG_bKGD_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_bKGD(png_structp png_ptr, png_infop info_ptr,
|
png_get_bKGD(png_const_structp png_ptr, png_infop info_ptr,
|
||||||
png_color_16p *background)
|
png_color_16p *background)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_bKGD)
|
if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_bKGD)
|
||||||
@@ -406,7 +407,7 @@ png_get_bKGD(png_structp png_ptr, png_infop info_ptr,
|
|||||||
#ifdef PNG_cHRM_SUPPORTED
|
#ifdef PNG_cHRM_SUPPORTED
|
||||||
#ifdef PNG_FLOATING_POINT_SUPPORTED
|
#ifdef PNG_FLOATING_POINT_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_cHRM(png_structp png_ptr, png_infop info_ptr,
|
png_get_cHRM(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
double *white_x, double *white_y, double *red_x, double *red_y,
|
double *white_x, double *white_y, double *red_x, double *red_y,
|
||||||
double *green_x, double *green_y, double *blue_x, double *blue_y)
|
double *green_x, double *green_y, double *blue_x, double *blue_y)
|
||||||
{
|
{
|
||||||
@@ -437,7 +438,7 @@ png_get_cHRM(png_structp png_ptr, png_infop info_ptr,
|
|||||||
#endif
|
#endif
|
||||||
#ifdef PNG_FIXED_POINT_SUPPORTED
|
#ifdef PNG_FIXED_POINT_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_cHRM_fixed(png_structp png_ptr, png_infop info_ptr,
|
png_get_cHRM_fixed(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
png_fixed_point *white_x, png_fixed_point *white_y, png_fixed_point *red_x,
|
png_fixed_point *white_x, png_fixed_point *white_y, png_fixed_point *red_x,
|
||||||
png_fixed_point *red_y, png_fixed_point *green_x, png_fixed_point *green_y,
|
png_fixed_point *red_y, png_fixed_point *green_x, png_fixed_point *green_y,
|
||||||
png_fixed_point *blue_x, png_fixed_point *blue_y)
|
png_fixed_point *blue_x, png_fixed_point *blue_y)
|
||||||
@@ -472,7 +473,7 @@ png_get_cHRM_fixed(png_structp png_ptr, png_infop info_ptr,
|
|||||||
#ifdef PNG_gAMA_SUPPORTED
|
#ifdef PNG_gAMA_SUPPORTED
|
||||||
#ifdef PNG_FLOATING_POINT_SUPPORTED
|
#ifdef PNG_FLOATING_POINT_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_gAMA(png_structp png_ptr, png_infop info_ptr, double *file_gamma)
|
png_get_gAMA(png_const_structp png_ptr, png_const_infop info_ptr, double *file_gamma)
|
||||||
{
|
{
|
||||||
png_debug1(1, "in %s retrieval function", "gAMA");
|
png_debug1(1, "in %s retrieval function", "gAMA");
|
||||||
|
|
||||||
@@ -487,7 +488,7 @@ png_get_gAMA(png_structp png_ptr, png_infop info_ptr, double *file_gamma)
|
|||||||
#endif
|
#endif
|
||||||
#ifdef PNG_FIXED_POINT_SUPPORTED
|
#ifdef PNG_FIXED_POINT_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_gAMA_fixed(png_structp png_ptr, png_infop info_ptr,
|
png_get_gAMA_fixed(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
png_fixed_point *int_file_gamma)
|
png_fixed_point *int_file_gamma)
|
||||||
{
|
{
|
||||||
png_debug1(1, "in %s retrieval function", "gAMA");
|
png_debug1(1, "in %s retrieval function", "gAMA");
|
||||||
@@ -505,7 +506,8 @@ png_get_gAMA_fixed(png_structp png_ptr, png_infop info_ptr,
|
|||||||
|
|
||||||
#ifdef PNG_sRGB_SUPPORTED
|
#ifdef PNG_sRGB_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_sRGB(png_structp png_ptr, png_infop info_ptr, int *file_srgb_intent)
|
png_get_sRGB(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
|
int *file_srgb_intent)
|
||||||
{
|
{
|
||||||
png_debug1(1, "in %s retrieval function", "sRGB");
|
png_debug1(1, "in %s retrieval function", "sRGB");
|
||||||
|
|
||||||
@@ -521,7 +523,7 @@ png_get_sRGB(png_structp png_ptr, png_infop info_ptr, int *file_srgb_intent)
|
|||||||
|
|
||||||
#ifdef PNG_iCCP_SUPPORTED
|
#ifdef PNG_iCCP_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_iCCP(png_structp png_ptr, png_infop info_ptr,
|
png_get_iCCP(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
png_charpp name, int *compression_type,
|
png_charpp name, int *compression_type,
|
||||||
png_charpp profile, png_uint_32 *proflen)
|
png_charpp profile, png_uint_32 *proflen)
|
||||||
{
|
{
|
||||||
@@ -545,7 +547,7 @@ png_get_iCCP(png_structp png_ptr, png_infop info_ptr,
|
|||||||
|
|
||||||
#ifdef PNG_sPLT_SUPPORTED
|
#ifdef PNG_sPLT_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_sPLT(png_structp png_ptr, png_infop info_ptr,
|
png_get_sPLT(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
png_sPLT_tpp spalettes)
|
png_sPLT_tpp spalettes)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL && spalettes != NULL)
|
if (png_ptr != NULL && info_ptr != NULL && spalettes != NULL)
|
||||||
@@ -559,7 +561,8 @@ png_get_sPLT(png_structp png_ptr, png_infop info_ptr,
|
|||||||
|
|
||||||
#ifdef PNG_hIST_SUPPORTED
|
#ifdef PNG_hIST_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p *hist)
|
png_get_hIST(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
|
png_uint_16p *hist)
|
||||||
{
|
{
|
||||||
png_debug1(1, "in %s retrieval function", "hIST");
|
png_debug1(1, "in %s retrieval function", "hIST");
|
||||||
|
|
||||||
@@ -614,7 +617,7 @@ png_get_IHDR(png_structp png_ptr, png_infop info_ptr,
|
|||||||
|
|
||||||
#ifdef PNG_oFFs_SUPPORTED
|
#ifdef PNG_oFFs_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_oFFs(png_structp png_ptr, png_infop info_ptr,
|
png_get_oFFs(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type)
|
png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type)
|
||||||
{
|
{
|
||||||
png_debug1(1, "in %s retrieval function", "oFFs");
|
png_debug1(1, "in %s retrieval function", "oFFs");
|
||||||
@@ -633,7 +636,7 @@ png_get_oFFs(png_structp png_ptr, png_infop info_ptr,
|
|||||||
|
|
||||||
#ifdef PNG_pCAL_SUPPORTED
|
#ifdef PNG_pCAL_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_pCAL(png_structp png_ptr, png_infop info_ptr,
|
png_get_pCAL(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, int *nparams,
|
png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, int *nparams,
|
||||||
png_charp *units, png_charpp *params)
|
png_charp *units, png_charpp *params)
|
||||||
{
|
{
|
||||||
@@ -659,7 +662,7 @@ png_get_pCAL(png_structp png_ptr, png_infop info_ptr,
|
|||||||
#ifdef PNG_sCAL_SUPPORTED
|
#ifdef PNG_sCAL_SUPPORTED
|
||||||
#ifdef PNG_FLOATING_POINT_SUPPORTED
|
#ifdef PNG_FLOATING_POINT_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_sCAL(png_structp png_ptr, png_infop info_ptr,
|
png_get_sCAL(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
int *unit, double *width, double *height)
|
int *unit, double *width, double *height)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL &&
|
if (png_ptr != NULL && info_ptr != NULL &&
|
||||||
@@ -675,7 +678,7 @@ png_get_sCAL(png_structp png_ptr, png_infop info_ptr,
|
|||||||
#else
|
#else
|
||||||
#ifdef PNG_FIXED_POINT_SUPPORTED
|
#ifdef PNG_FIXED_POINT_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_sCAL_s(png_structp png_ptr, png_infop info_ptr,
|
png_get_sCAL_s(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
int *unit, png_charpp width, png_charpp height)
|
int *unit, png_charpp width, png_charpp height)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL &&
|
if (png_ptr != NULL && info_ptr != NULL &&
|
||||||
@@ -694,7 +697,7 @@ png_get_sCAL_s(png_structp png_ptr, png_infop info_ptr,
|
|||||||
|
|
||||||
#ifdef PNG_pHYs_SUPPORTED
|
#ifdef PNG_pHYs_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_pHYs(png_structp png_ptr, png_infop info_ptr,
|
png_get_pHYs(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
|
png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
|
||||||
{
|
{
|
||||||
png_uint_32 retval = 0;
|
png_uint_32 retval = 0;
|
||||||
@@ -727,7 +730,8 @@ png_get_pHYs(png_structp png_ptr, png_infop info_ptr,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_PLTE(png_structp png_ptr, png_infop info_ptr, png_colorp *palette,
|
png_get_PLTE(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
|
png_colorp *palette,
|
||||||
int *num_palette)
|
int *num_palette)
|
||||||
{
|
{
|
||||||
png_debug1(1, "in %s retrieval function", "PLTE");
|
png_debug1(1, "in %s retrieval function", "PLTE");
|
||||||
@@ -745,7 +749,8 @@ png_get_PLTE(png_structp png_ptr, png_infop info_ptr, png_colorp *palette,
|
|||||||
|
|
||||||
#ifdef PNG_sBIT_SUPPORTED
|
#ifdef PNG_sBIT_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_sBIT(png_structp png_ptr, png_infop info_ptr, png_color_8p *sig_bit)
|
png_get_sBIT(png_const_structp png_ptr, png_infop info_ptr,
|
||||||
|
png_color_8p *sig_bit)
|
||||||
{
|
{
|
||||||
png_debug1(1, "in %s retrieval function", "sBIT");
|
png_debug1(1, "in %s retrieval function", "sBIT");
|
||||||
|
|
||||||
@@ -761,8 +766,8 @@ png_get_sBIT(png_structp png_ptr, png_infop info_ptr, png_color_8p *sig_bit)
|
|||||||
|
|
||||||
#ifdef PNG_TEXT_SUPPORTED
|
#ifdef PNG_TEXT_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_text(png_structp png_ptr, png_infop info_ptr, png_textp *text_ptr,
|
png_get_text(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
int *num_text)
|
png_textp *text_ptr, int *num_text)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL && info_ptr->num_text > 0)
|
if (png_ptr != NULL && info_ptr != NULL && info_ptr->num_text > 0)
|
||||||
{
|
{
|
||||||
@@ -786,7 +791,8 @@ png_get_text(png_structp png_ptr, png_infop info_ptr, png_textp *text_ptr,
|
|||||||
|
|
||||||
#ifdef PNG_tIME_SUPPORTED
|
#ifdef PNG_tIME_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_tIME(png_structp png_ptr, png_infop info_ptr, png_timep *mod_time)
|
png_get_tIME(png_const_structp png_ptr, png_infop info_ptr,
|
||||||
|
png_timep *mod_time)
|
||||||
{
|
{
|
||||||
png_debug1(1, "in %s retrieval function", "tIME");
|
png_debug1(1, "in %s retrieval function", "tIME");
|
||||||
|
|
||||||
@@ -802,7 +808,7 @@ png_get_tIME(png_structp png_ptr, png_infop info_ptr, png_timep *mod_time)
|
|||||||
|
|
||||||
#ifdef PNG_tRNS_SUPPORTED
|
#ifdef PNG_tRNS_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_tRNS(png_structp png_ptr, png_infop info_ptr,
|
png_get_tRNS(png_const_structp png_ptr, png_infop info_ptr,
|
||||||
png_bytep *trans_alpha, int *num_trans, png_color_16p *trans_color)
|
png_bytep *trans_alpha, int *num_trans, png_color_16p *trans_color)
|
||||||
{
|
{
|
||||||
png_uint_32 retval = 0;
|
png_uint_32 retval = 0;
|
||||||
@@ -844,7 +850,7 @@ png_get_tRNS(png_structp png_ptr, png_infop info_ptr,
|
|||||||
|
|
||||||
#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
|
#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_unknown_chunks(png_structp png_ptr, png_infop info_ptr,
|
png_get_unknown_chunks(png_const_structp png_ptr, png_const_infop info_ptr,
|
||||||
png_unknown_chunkpp unknowns)
|
png_unknown_chunkpp unknowns)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL && info_ptr != NULL && unknowns != NULL)
|
if (png_ptr != NULL && info_ptr != NULL && unknowns != NULL)
|
||||||
@@ -858,7 +864,7 @@ png_get_unknown_chunks(png_structp png_ptr, png_infop info_ptr,
|
|||||||
|
|
||||||
#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
|
#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
|
||||||
png_byte PNGAPI
|
png_byte PNGAPI
|
||||||
png_get_rgb_to_gray_status (png_structp png_ptr)
|
png_get_rgb_to_gray_status(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
return (png_byte)(png_ptr? png_ptr->rgb_to_gray_status : 0);
|
return (png_byte)(png_ptr? png_ptr->rgb_to_gray_status : 0);
|
||||||
}
|
}
|
||||||
@@ -866,51 +872,57 @@ png_get_rgb_to_gray_status (png_structp png_ptr)
|
|||||||
|
|
||||||
#ifdef PNG_USER_CHUNKS_SUPPORTED
|
#ifdef PNG_USER_CHUNKS_SUPPORTED
|
||||||
png_voidp PNGAPI
|
png_voidp PNGAPI
|
||||||
png_get_user_chunk_ptr(png_structp png_ptr)
|
png_get_user_chunk_ptr(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
return (png_ptr? png_ptr->user_chunk_ptr : NULL);
|
return (png_ptr? png_ptr->user_chunk_ptr : NULL);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_WRITE_SUPPORTED
|
|
||||||
png_size_t PNGAPI
|
png_size_t PNGAPI
|
||||||
png_get_compression_buffer_size(png_structp png_ptr)
|
png_get_compression_buffer_size(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
return (png_ptr ? png_ptr->zbuf_size : 0L);
|
return (png_ptr ? png_ptr->zbuf_size : 0L);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
||||||
/* These functions were added to libpng 1.2.6 */
|
/* These functions were added to libpng 1.2.6 and were enabled
|
||||||
|
* by default in libpng-1.4.0 */
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_user_width_max (png_structp png_ptr)
|
png_get_user_width_max(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
return (png_ptr? png_ptr->user_width_max : 0);
|
return (png_ptr? png_ptr->user_width_max : 0);
|
||||||
}
|
}
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_user_height_max (png_structp png_ptr)
|
png_get_user_height_max(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
return (png_ptr? png_ptr->user_height_max : 0);
|
return (png_ptr? png_ptr->user_height_max : 0);
|
||||||
}
|
}
|
||||||
/* This function was added to libpng 1.4.0 */
|
/* This function was added to libpng 1.4.0 */
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_chunk_cache_max (png_structp png_ptr)
|
png_get_chunk_cache_max(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
return (png_ptr? png_ptr->user_chunk_cache_max? 0x7fffffffL :
|
return (png_ptr? png_ptr->user_chunk_cache_max : 0);
|
||||||
png_ptr->user_chunk_cache_max - 1 : 0);
|
}
|
||||||
|
/* This function was added to libpng 1.4.1 */
|
||||||
|
png_alloc_size_t PNGAPI
|
||||||
|
png_get_chunk_malloc_max(png_const_structp png_ptr)
|
||||||
|
{
|
||||||
|
return (png_ptr?
|
||||||
|
png_ptr->user_chunk_malloc_max : 0);
|
||||||
}
|
}
|
||||||
#endif /* ?PNG_SET_USER_LIMITS_SUPPORTED */
|
#endif /* ?PNG_SET_USER_LIMITS_SUPPORTED */
|
||||||
|
|
||||||
|
/* These functions were added to libpng 1.4.0 */
|
||||||
#ifdef PNG_IO_STATE_SUPPORTED
|
#ifdef PNG_IO_STATE_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_io_state (png_structp png_ptr)
|
png_get_io_state(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
return png_ptr->io_state;
|
return png_ptr->io_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
png_bytep PNGAPI
|
png_bytep PNGAPI
|
||||||
png_get_io_chunk_name (png_structp png_ptr)
|
png_get_io_chunk_name(png_structp png_ptr)
|
||||||
{
|
{
|
||||||
return png_ptr->chunk_name;
|
return png_ptr->chunk_name;
|
||||||
}
|
}
|
||||||
|
|||||||
10
pngmem.c
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* pngmem.c - stub functions for memory allocation
|
/* pngmem.c - stub functions for memory allocation
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.6 [April 8, 2011]
|
||||||
* Copyright (c) 1998-2010 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.)
|
||||||
*
|
*
|
||||||
@@ -201,7 +201,7 @@ png_malloc_default(png_structp png_ptr, png_alloc_size_t size)
|
|||||||
{
|
{
|
||||||
#ifndef PNG_USER_MEM_SUPPORTED
|
#ifndef PNG_USER_MEM_SUPPORTED
|
||||||
if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
|
if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
|
||||||
png_error(png_ptr, "Out Of Memory"); /* Note "O" and "M" */
|
png_error(png_ptr, "Out Of Memory"); /* Note "O", "M" */
|
||||||
else
|
else
|
||||||
png_warning(png_ptr, "Out Of Memory");
|
png_warning(png_ptr, "Out Of Memory");
|
||||||
#endif
|
#endif
|
||||||
@@ -229,7 +229,7 @@ png_malloc_default(png_structp png_ptr, png_alloc_size_t size)
|
|||||||
{
|
{
|
||||||
#ifndef PNG_USER_MEM_SUPPORTED
|
#ifndef PNG_USER_MEM_SUPPORTED
|
||||||
if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
|
if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
|
||||||
png_error(png_ptr, "Out Of memory"); /* Note "O" and "M" */
|
png_error(png_ptr, "Out Of memory"); /* Note "O", "m" */
|
||||||
else
|
else
|
||||||
png_warning(png_ptr, "Out Of memory");
|
png_warning(png_ptr, "Out Of memory");
|
||||||
#endif
|
#endif
|
||||||
@@ -601,7 +601,7 @@ png_set_mem_fn(png_structp png_ptr, png_voidp mem_ptr, png_malloc_ptr
|
|||||||
* pointer before png_write_destroy and png_read_destroy are called.
|
* pointer before png_write_destroy and png_read_destroy are called.
|
||||||
*/
|
*/
|
||||||
png_voidp PNGAPI
|
png_voidp PNGAPI
|
||||||
png_get_mem_ptr(png_structp png_ptr)
|
png_get_mem_ptr(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
|
|||||||
711
pngpread.c
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* pngpread.c - read a png file in push mode
|
/* pngpread.c - read a png file in push mode
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.10 [March 8, 2012]
|
||||||
* Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2012 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.)
|
||||||
*
|
*
|
||||||
@@ -71,30 +71,6 @@ png_process_some_data(png_structp png_ptr, png_infop info_ptr)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PNG_READ_tEXt_SUPPORTED
|
|
||||||
case PNG_READ_tEXt_MODE:
|
|
||||||
{
|
|
||||||
png_push_read_tEXt(png_ptr, info_ptr);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#ifdef PNG_READ_zTXt_SUPPORTED
|
|
||||||
case PNG_READ_zTXt_MODE:
|
|
||||||
{
|
|
||||||
png_push_read_zTXt(png_ptr, info_ptr);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#ifdef PNG_READ_iTXt_SUPPORTED
|
|
||||||
case PNG_READ_iTXt_MODE:
|
|
||||||
{
|
|
||||||
png_push_read_iTXt(png_ptr, info_ptr);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
case PNG_SKIP_MODE:
|
case PNG_SKIP_MODE:
|
||||||
{
|
{
|
||||||
png_push_crc_finish(png_ptr);
|
png_push_crc_finish(png_ptr);
|
||||||
@@ -329,7 +305,9 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
|
|||||||
png_ptr->mode |= PNG_HAVE_IDAT;
|
png_ptr->mode |= PNG_HAVE_IDAT;
|
||||||
png_ptr->process_mode = PNG_READ_IDAT_MODE;
|
png_ptr->process_mode = PNG_READ_IDAT_MODE;
|
||||||
png_push_have_info(png_ptr, info_ptr);
|
png_push_have_info(png_ptr, info_ptr);
|
||||||
png_ptr->zstream.avail_out = (uInt)png_ptr->irowbytes;
|
png_ptr->zstream.avail_out =
|
||||||
|
(uInt) PNG_ROWBYTES(png_ptr->pixel_depth,
|
||||||
|
png_ptr->iwidth) + 1;
|
||||||
png_ptr->zstream.next_out = png_ptr->row_buf;
|
png_ptr->zstream.next_out = png_ptr->row_buf;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -525,7 +503,7 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
png_push_handle_tEXt(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_tEXt(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -538,7 +516,7 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
png_push_handle_zTXt(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_zTXt(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -551,7 +529,7 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
png_push_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -562,7 +540,7 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
|
|||||||
png_push_save_buffer(png_ptr);
|
png_push_save_buffer(png_ptr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
png_push_handle_unknown(png_ptr, info_ptr, png_ptr->push_length);
|
png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
|
png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
|
||||||
@@ -698,8 +676,13 @@ png_push_save_buffer(png_structp png_ptr)
|
|||||||
|
|
||||||
new_max = png_ptr->save_buffer_size + png_ptr->current_buffer_size + 256;
|
new_max = png_ptr->save_buffer_size + png_ptr->current_buffer_size + 256;
|
||||||
old_buffer = png_ptr->save_buffer;
|
old_buffer = png_ptr->save_buffer;
|
||||||
png_ptr->save_buffer = (png_bytep)png_malloc(png_ptr,
|
png_ptr->save_buffer = (png_bytep)png_malloc_warn(png_ptr,
|
||||||
(png_size_t)new_max);
|
new_max);
|
||||||
|
if (png_ptr->save_buffer == NULL)
|
||||||
|
{
|
||||||
|
png_free(png_ptr, old_buffer);
|
||||||
|
png_error(png_ptr, "Insufficient memory for save_buffer");
|
||||||
|
}
|
||||||
png_memcpy(png_ptr->save_buffer, old_buffer, png_ptr->save_buffer_size);
|
png_memcpy(png_ptr->save_buffer, old_buffer, png_ptr->save_buffer_size);
|
||||||
png_free(png_ptr, old_buffer);
|
png_free(png_ptr, old_buffer);
|
||||||
png_ptr->save_buffer_max = new_max;
|
png_ptr->save_buffer_max = new_max;
|
||||||
@@ -772,8 +755,7 @@ png_push_read_IDAT(png_structp png_ptr)
|
|||||||
|
|
||||||
png_calculate_crc(png_ptr, png_ptr->save_buffer_ptr, save_size);
|
png_calculate_crc(png_ptr, png_ptr->save_buffer_ptr, save_size);
|
||||||
|
|
||||||
if (!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED))
|
png_process_IDAT_data(png_ptr, png_ptr->save_buffer_ptr, save_size);
|
||||||
png_process_IDAT_data(png_ptr, png_ptr->save_buffer_ptr, save_size);
|
|
||||||
|
|
||||||
png_ptr->idat_size -= save_size;
|
png_ptr->idat_size -= save_size;
|
||||||
png_ptr->buffer_size -= save_size;
|
png_ptr->buffer_size -= save_size;
|
||||||
@@ -796,8 +778,8 @@ png_push_read_IDAT(png_structp png_ptr)
|
|||||||
save_size = png_ptr->current_buffer_size;
|
save_size = png_ptr->current_buffer_size;
|
||||||
|
|
||||||
png_calculate_crc(png_ptr, png_ptr->current_buffer_ptr, save_size);
|
png_calculate_crc(png_ptr, png_ptr->current_buffer_ptr, save_size);
|
||||||
if (!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED))
|
|
||||||
png_process_IDAT_data(png_ptr, png_ptr->current_buffer_ptr, save_size);
|
png_process_IDAT_data(png_ptr, png_ptr->current_buffer_ptr, save_size);
|
||||||
|
|
||||||
png_ptr->idat_size -= save_size;
|
png_ptr->idat_size -= save_size;
|
||||||
png_ptr->buffer_size -= save_size;
|
png_ptr->buffer_size -= save_size;
|
||||||
@@ -822,60 +804,101 @@ void /* PRIVATE */
|
|||||||
png_process_IDAT_data(png_structp png_ptr, png_bytep buffer,
|
png_process_IDAT_data(png_structp png_ptr, png_bytep buffer,
|
||||||
png_size_t buffer_length)
|
png_size_t buffer_length)
|
||||||
{
|
{
|
||||||
int ret;
|
/* The caller checks for a non-zero buffer length. */
|
||||||
|
if (!(buffer_length > 0) || buffer == NULL)
|
||||||
if ((png_ptr->flags & PNG_FLAG_ZLIB_FINISHED) && buffer_length)
|
png_error(png_ptr, "No IDAT data (internal error)");
|
||||||
png_benign_error(png_ptr, "Extra compression data");
|
|
||||||
|
|
||||||
|
/* This routine must process all the data it has been given
|
||||||
|
* before returning, calling the row callback as required to
|
||||||
|
* handle the uncompressed results.
|
||||||
|
*/
|
||||||
png_ptr->zstream.next_in = buffer;
|
png_ptr->zstream.next_in = buffer;
|
||||||
png_ptr->zstream.avail_in = (uInt)buffer_length;
|
png_ptr->zstream.avail_in = (uInt)buffer_length;
|
||||||
for (;;)
|
|
||||||
|
/* Keep going until the decompressed data is all processed
|
||||||
|
* or the stream marked as finished.
|
||||||
|
*/
|
||||||
|
while (png_ptr->zstream.avail_in > 0 &&
|
||||||
|
!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED))
|
||||||
{
|
{
|
||||||
ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH);
|
int ret;
|
||||||
if (ret != Z_OK)
|
|
||||||
|
/* We have data for zlib, but we must check that zlib
|
||||||
|
* has somewhere to put the results. It doesn't matter
|
||||||
|
* if we don't expect any results -- it may be the input
|
||||||
|
* data is just the LZ end code.
|
||||||
|
*/
|
||||||
|
if (!(png_ptr->zstream.avail_out > 0))
|
||||||
{
|
{
|
||||||
if (ret == Z_STREAM_END)
|
png_ptr->zstream.avail_out =
|
||||||
{
|
(uInt) PNG_ROWBYTES(png_ptr->pixel_depth,
|
||||||
if (png_ptr->zstream.avail_in)
|
png_ptr->iwidth) + 1;
|
||||||
png_benign_error(png_ptr, "Extra compressed data");
|
|
||||||
|
|
||||||
if (!(png_ptr->zstream.avail_out))
|
|
||||||
{
|
|
||||||
png_push_process_row(png_ptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
png_ptr->mode |= PNG_AFTER_IDAT;
|
|
||||||
png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (ret == Z_BUF_ERROR)
|
|
||||||
break;
|
|
||||||
|
|
||||||
else
|
|
||||||
png_error(png_ptr, "Decompression Error");
|
|
||||||
}
|
|
||||||
if (!(png_ptr->zstream.avail_out))
|
|
||||||
{
|
|
||||||
if ((
|
|
||||||
#ifdef PNG_READ_INTERLACING_SUPPORTED
|
|
||||||
png_ptr->interlaced && png_ptr->pass > 6) ||
|
|
||||||
(!png_ptr->interlaced &&
|
|
||||||
#endif
|
|
||||||
png_ptr->row_number == png_ptr->num_rows))
|
|
||||||
{
|
|
||||||
if (png_ptr->zstream.avail_in)
|
|
||||||
png_warning(png_ptr, "Too much data in IDAT chunks");
|
|
||||||
png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
png_push_process_row(png_ptr);
|
|
||||||
png_ptr->zstream.avail_out = (uInt)png_ptr->irowbytes;
|
|
||||||
png_ptr->zstream.next_out = png_ptr->row_buf;
|
png_ptr->zstream.next_out = png_ptr->row_buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
/* Using Z_SYNC_FLUSH here means that an unterminated
|
||||||
break;
|
* LZ stream can still be handled (a stream with a missing
|
||||||
|
* end code), otherwise (Z_NO_FLUSH) a future zlib
|
||||||
|
* implementation might defer output and, therefore,
|
||||||
|
* change the current behavior. (See comments in inflate.c
|
||||||
|
* for why this doesn't happen at present with zlib 1.2.5.)
|
||||||
|
*/
|
||||||
|
ret = inflate(&png_ptr->zstream, Z_SYNC_FLUSH);
|
||||||
|
|
||||||
|
/* Check for any failure before proceeding. */
|
||||||
|
if (ret != Z_OK && ret != Z_STREAM_END)
|
||||||
|
{
|
||||||
|
/* Terminate the decompression. */
|
||||||
|
png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
|
||||||
|
|
||||||
|
/* This may be a truncated stream (missing or
|
||||||
|
* damaged end code). Treat that as a warning.
|
||||||
|
*/
|
||||||
|
if (png_ptr->row_number >= png_ptr->num_rows ||
|
||||||
|
png_ptr->pass > 6)
|
||||||
|
png_warning(png_ptr, "Truncated compressed data in IDAT");
|
||||||
|
else
|
||||||
|
png_error(png_ptr, "Decompression error in IDAT");
|
||||||
|
|
||||||
|
/* Skip the check on unprocessed input */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Did inflate output any data? */
|
||||||
|
if (png_ptr->zstream.next_out != png_ptr->row_buf)
|
||||||
|
{
|
||||||
|
/* Is this unexpected data after the last row?
|
||||||
|
* If it is, artificially terminate the LZ output
|
||||||
|
* here.
|
||||||
|
*/
|
||||||
|
if (png_ptr->row_number >= png_ptr->num_rows ||
|
||||||
|
png_ptr->pass > 6)
|
||||||
|
{
|
||||||
|
/* Extra data. */
|
||||||
|
png_warning(png_ptr, "Extra compressed data in IDAT");
|
||||||
|
png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
|
||||||
|
/* Do no more processing; skip the unprocessed
|
||||||
|
* input check below.
|
||||||
|
*/
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Do we have a complete row? */
|
||||||
|
if (png_ptr->zstream.avail_out == 0)
|
||||||
|
png_push_process_row(png_ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* And check for the end of the stream. */
|
||||||
|
if (ret == Z_STREAM_END)
|
||||||
|
png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* All the data should have been processed, if anything
|
||||||
|
* is left at this point we have bytes of IDAT data
|
||||||
|
* after the zlib end code.
|
||||||
|
*/
|
||||||
|
if (png_ptr->zstream.avail_in > 0)
|
||||||
|
png_warning(png_ptr, "Extra compression data");
|
||||||
}
|
}
|
||||||
|
|
||||||
void /* PRIVATE */
|
void /* PRIVATE */
|
||||||
@@ -891,8 +914,8 @@ png_push_process_row(png_structp png_ptr)
|
|||||||
png_ptr->row_info.width);
|
png_ptr->row_info.width);
|
||||||
|
|
||||||
png_read_filter_row(png_ptr, &(png_ptr->row_info),
|
png_read_filter_row(png_ptr, &(png_ptr->row_info),
|
||||||
png_ptr->row_buf + 1, png_ptr->prev_row + 1,
|
png_ptr->row_buf + 1, png_ptr->prev_row + 1,
|
||||||
(int)(png_ptr->row_buf[0]));
|
(int)(png_ptr->row_buf[0]));
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
@@ -906,7 +929,7 @@ png_push_process_row(png_structp png_ptr)
|
|||||||
if (png_ptr->pass < 6)
|
if (png_ptr->pass < 6)
|
||||||
/* old interface (pre-1.0.9):
|
/* old interface (pre-1.0.9):
|
||||||
png_do_read_interlace(&(png_ptr->row_info),
|
png_do_read_interlace(&(png_ptr->row_info),
|
||||||
png_ptr->row_buf + 1, png_ptr->pass, png_ptr->transformations);
|
png_ptr->row_buf + 1, png_ptr->pass, png_ptr->transformations);
|
||||||
*/
|
*/
|
||||||
png_do_read_interlace(png_ptr);
|
png_do_read_interlace(png_ptr);
|
||||||
|
|
||||||
@@ -1062,6 +1085,8 @@ png_push_process_row(png_structp png_ptr)
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
case 6:
|
case 6:
|
||||||
{
|
{
|
||||||
png_push_have_row(png_ptr, png_ptr->row_buf + 1);
|
png_push_have_row(png_ptr, png_ptr->row_buf + 1);
|
||||||
@@ -1134,9 +1159,6 @@ png_read_push_finish_row(png_structp png_ptr)
|
|||||||
png_pass_start[png_ptr->pass]) /
|
png_pass_start[png_ptr->pass]) /
|
||||||
png_pass_inc[png_ptr->pass];
|
png_pass_inc[png_ptr->pass];
|
||||||
|
|
||||||
png_ptr->irowbytes = PNG_ROWBYTES(png_ptr->pixel_depth,
|
|
||||||
png_ptr->iwidth) + 1;
|
|
||||||
|
|
||||||
if (png_ptr->transformations & PNG_INTERLACE)
|
if (png_ptr->transformations & PNG_INTERLACE)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1150,515 +1172,6 @@ png_read_push_finish_row(png_structp png_ptr)
|
|||||||
#endif /* PNG_READ_INTERLACING_SUPPORTED */
|
#endif /* PNG_READ_INTERLACING_SUPPORTED */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PNG_READ_tEXt_SUPPORTED
|
|
||||||
void /* PRIVATE */
|
|
||||||
png_push_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
|
|
||||||
length)
|
|
||||||
{
|
|
||||||
if (!(png_ptr->mode & PNG_HAVE_IHDR) || (png_ptr->mode & PNG_HAVE_IEND))
|
|
||||||
{
|
|
||||||
png_error(png_ptr, "Out of place tEXt");
|
|
||||||
info_ptr = info_ptr; /* To quiet some compiler warnings */
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef PNG_MAX_MALLOC_64K
|
|
||||||
png_ptr->skip_length = 0; /* This may not be necessary */
|
|
||||||
|
|
||||||
if (length > (png_uint_32)65535L) /* Can't hold entire string in memory */
|
|
||||||
{
|
|
||||||
png_warning(png_ptr, "tEXt chunk too large to fit in memory");
|
|
||||||
png_ptr->skip_length = length - (png_uint_32)65535L;
|
|
||||||
length = (png_uint_32)65535L;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
png_ptr->current_text = (png_charp)png_malloc(png_ptr,
|
|
||||||
(png_size_t)(length + 1));
|
|
||||||
png_ptr->current_text[length] = '\0';
|
|
||||||
png_ptr->current_text_ptr = png_ptr->current_text;
|
|
||||||
png_ptr->current_text_size = (png_size_t)length;
|
|
||||||
png_ptr->current_text_left = (png_size_t)length;
|
|
||||||
png_ptr->process_mode = PNG_READ_tEXt_MODE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void /* PRIVATE */
|
|
||||||
png_push_read_tEXt(png_structp png_ptr, png_infop info_ptr)
|
|
||||||
{
|
|
||||||
if (png_ptr->buffer_size && png_ptr->current_text_left)
|
|
||||||
{
|
|
||||||
png_size_t text_size;
|
|
||||||
|
|
||||||
if (png_ptr->buffer_size < png_ptr->current_text_left)
|
|
||||||
text_size = png_ptr->buffer_size;
|
|
||||||
|
|
||||||
else
|
|
||||||
text_size = png_ptr->current_text_left;
|
|
||||||
|
|
||||||
png_crc_read(png_ptr, (png_bytep)png_ptr->current_text_ptr, text_size);
|
|
||||||
png_ptr->current_text_left -= text_size;
|
|
||||||
png_ptr->current_text_ptr += text_size;
|
|
||||||
}
|
|
||||||
if (!(png_ptr->current_text_left))
|
|
||||||
{
|
|
||||||
png_textp text_ptr;
|
|
||||||
png_charp text;
|
|
||||||
png_charp key;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (png_ptr->buffer_size < 4)
|
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_push_crc_finish(png_ptr);
|
|
||||||
|
|
||||||
#ifdef PNG_MAX_MALLOC_64K
|
|
||||||
if (png_ptr->skip_length)
|
|
||||||
return;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
key = png_ptr->current_text;
|
|
||||||
|
|
||||||
for (text = key; *text; text++)
|
|
||||||
/* Empty loop */ ;
|
|
||||||
|
|
||||||
if (text < key + png_ptr->current_text_size)
|
|
||||||
text++;
|
|
||||||
|
|
||||||
text_ptr = (png_textp)png_malloc(png_ptr,
|
|
||||||
png_sizeof(png_text));
|
|
||||||
text_ptr->compression = PNG_TEXT_COMPRESSION_NONE;
|
|
||||||
text_ptr->key = key;
|
|
||||||
#ifdef PNG_iTXt_SUPPORTED
|
|
||||||
text_ptr->lang = NULL;
|
|
||||||
text_ptr->lang_key = NULL;
|
|
||||||
#endif
|
|
||||||
text_ptr->text = text;
|
|
||||||
|
|
||||||
ret = png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
|
|
||||||
|
|
||||||
png_free(png_ptr, key);
|
|
||||||
png_free(png_ptr, text_ptr);
|
|
||||||
png_ptr->current_text = NULL;
|
|
||||||
|
|
||||||
if (ret)
|
|
||||||
png_warning(png_ptr, "Insufficient memory to store text chunk");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef PNG_READ_zTXt_SUPPORTED
|
|
||||||
void /* PRIVATE */
|
|
||||||
png_push_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
|
|
||||||
length)
|
|
||||||
{
|
|
||||||
if (!(png_ptr->mode & PNG_HAVE_IHDR) || (png_ptr->mode & PNG_HAVE_IEND))
|
|
||||||
{
|
|
||||||
png_error(png_ptr, "Out of place zTXt");
|
|
||||||
info_ptr = info_ptr; /* To quiet some compiler warnings */
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef PNG_MAX_MALLOC_64K
|
|
||||||
/* We can't handle zTXt chunks > 64K, since we don't have enough space
|
|
||||||
* to be able to store the uncompressed data. Actually, the threshold
|
|
||||||
* is probably around 32K, but it isn't as definite as 64K is.
|
|
||||||
*/
|
|
||||||
if (length > (png_uint_32)65535L)
|
|
||||||
{
|
|
||||||
png_warning(png_ptr, "zTXt chunk too large to fit in memory");
|
|
||||||
png_push_crc_skip(png_ptr, length);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
png_ptr->current_text = (png_charp)png_malloc(png_ptr,
|
|
||||||
(png_size_t)(length + 1));
|
|
||||||
png_ptr->current_text[length] = '\0';
|
|
||||||
png_ptr->current_text_ptr = png_ptr->current_text;
|
|
||||||
png_ptr->current_text_size = (png_size_t)length;
|
|
||||||
png_ptr->current_text_left = (png_size_t)length;
|
|
||||||
png_ptr->process_mode = PNG_READ_zTXt_MODE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void /* PRIVATE */
|
|
||||||
png_push_read_zTXt(png_structp png_ptr, png_infop info_ptr)
|
|
||||||
{
|
|
||||||
if (png_ptr->buffer_size && png_ptr->current_text_left)
|
|
||||||
{
|
|
||||||
png_size_t text_size;
|
|
||||||
|
|
||||||
if (png_ptr->buffer_size < (png_uint_32)png_ptr->current_text_left)
|
|
||||||
text_size = png_ptr->buffer_size;
|
|
||||||
|
|
||||||
else
|
|
||||||
text_size = png_ptr->current_text_left;
|
|
||||||
|
|
||||||
png_crc_read(png_ptr, (png_bytep)png_ptr->current_text_ptr, text_size);
|
|
||||||
png_ptr->current_text_left -= text_size;
|
|
||||||
png_ptr->current_text_ptr += text_size;
|
|
||||||
}
|
|
||||||
if (!(png_ptr->current_text_left))
|
|
||||||
{
|
|
||||||
png_textp text_ptr;
|
|
||||||
png_charp text;
|
|
||||||
png_charp key;
|
|
||||||
int ret;
|
|
||||||
png_size_t text_size, key_size;
|
|
||||||
|
|
||||||
if (png_ptr->buffer_size < 4)
|
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_push_crc_finish(png_ptr);
|
|
||||||
|
|
||||||
key = png_ptr->current_text;
|
|
||||||
|
|
||||||
for (text = key; *text; text++)
|
|
||||||
/* Empty loop */ ;
|
|
||||||
|
|
||||||
/* zTXt can't have zero text */
|
|
||||||
if (text >= key + png_ptr->current_text_size)
|
|
||||||
{
|
|
||||||
png_ptr->current_text = NULL;
|
|
||||||
png_free(png_ptr, key);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
text++;
|
|
||||||
|
|
||||||
if (*text != PNG_TEXT_COMPRESSION_zTXt) /* Check compression byte */
|
|
||||||
{
|
|
||||||
png_ptr->current_text = NULL;
|
|
||||||
png_free(png_ptr, key);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
text++;
|
|
||||||
|
|
||||||
png_ptr->zstream.next_in = (png_bytep )text;
|
|
||||||
png_ptr->zstream.avail_in = (uInt)(png_ptr->current_text_size -
|
|
||||||
(text - key));
|
|
||||||
png_ptr->zstream.next_out = png_ptr->zbuf;
|
|
||||||
png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
|
|
||||||
|
|
||||||
key_size = text - key;
|
|
||||||
text_size = 0;
|
|
||||||
text = NULL;
|
|
||||||
ret = Z_STREAM_END;
|
|
||||||
|
|
||||||
while (png_ptr->zstream.avail_in)
|
|
||||||
{
|
|
||||||
ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH);
|
|
||||||
if (ret != Z_OK && ret != Z_STREAM_END)
|
|
||||||
{
|
|
||||||
inflateReset(&png_ptr->zstream);
|
|
||||||
png_ptr->zstream.avail_in = 0;
|
|
||||||
png_ptr->current_text = NULL;
|
|
||||||
png_free(png_ptr, key);
|
|
||||||
png_free(png_ptr, text);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!(png_ptr->zstream.avail_out) || ret == Z_STREAM_END)
|
|
||||||
{
|
|
||||||
if (text == NULL)
|
|
||||||
{
|
|
||||||
text = (png_charp)png_malloc(png_ptr,
|
|
||||||
(png_ptr->zbuf_size
|
|
||||||
- png_ptr->zstream.avail_out + key_size + 1));
|
|
||||||
|
|
||||||
png_memcpy(text + key_size, png_ptr->zbuf,
|
|
||||||
png_ptr->zbuf_size - png_ptr->zstream.avail_out);
|
|
||||||
|
|
||||||
png_memcpy(text, key, key_size);
|
|
||||||
|
|
||||||
text_size = key_size + png_ptr->zbuf_size -
|
|
||||||
png_ptr->zstream.avail_out;
|
|
||||||
|
|
||||||
*(text + text_size) = '\0';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
png_charp tmp;
|
|
||||||
|
|
||||||
tmp = text;
|
|
||||||
text = (png_charp)png_malloc(png_ptr, text_size +
|
|
||||||
(png_ptr->zbuf_size
|
|
||||||
- png_ptr->zstream.avail_out + 1));
|
|
||||||
|
|
||||||
png_memcpy(text, tmp, text_size);
|
|
||||||
png_free(png_ptr, tmp);
|
|
||||||
|
|
||||||
png_memcpy(text + text_size, png_ptr->zbuf,
|
|
||||||
png_ptr->zbuf_size - png_ptr->zstream.avail_out);
|
|
||||||
|
|
||||||
text_size += png_ptr->zbuf_size - png_ptr->zstream.avail_out;
|
|
||||||
*(text + text_size) = '\0';
|
|
||||||
}
|
|
||||||
if (ret != Z_STREAM_END)
|
|
||||||
{
|
|
||||||
png_ptr->zstream.next_out = png_ptr->zbuf;
|
|
||||||
png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ret == Z_STREAM_END)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
inflateReset(&png_ptr->zstream);
|
|
||||||
png_ptr->zstream.avail_in = 0;
|
|
||||||
|
|
||||||
if (ret != Z_STREAM_END)
|
|
||||||
{
|
|
||||||
png_ptr->current_text = NULL;
|
|
||||||
png_free(png_ptr, key);
|
|
||||||
png_free(png_ptr, text);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_ptr->current_text = NULL;
|
|
||||||
png_free(png_ptr, key);
|
|
||||||
key = text;
|
|
||||||
text += key_size;
|
|
||||||
|
|
||||||
text_ptr = (png_textp)png_malloc(png_ptr,
|
|
||||||
png_sizeof(png_text));
|
|
||||||
text_ptr->compression = PNG_TEXT_COMPRESSION_zTXt;
|
|
||||||
text_ptr->key = key;
|
|
||||||
#ifdef PNG_iTXt_SUPPORTED
|
|
||||||
text_ptr->lang = NULL;
|
|
||||||
text_ptr->lang_key = NULL;
|
|
||||||
#endif
|
|
||||||
text_ptr->text = text;
|
|
||||||
|
|
||||||
ret = png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
|
|
||||||
|
|
||||||
png_free(png_ptr, key);
|
|
||||||
png_free(png_ptr, text_ptr);
|
|
||||||
|
|
||||||
if (ret)
|
|
||||||
png_warning(png_ptr, "Insufficient memory to store text chunk");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef PNG_READ_iTXt_SUPPORTED
|
|
||||||
void /* PRIVATE */
|
|
||||||
png_push_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
|
|
||||||
length)
|
|
||||||
{
|
|
||||||
if (!(png_ptr->mode & PNG_HAVE_IHDR) || (png_ptr->mode & PNG_HAVE_IEND))
|
|
||||||
{
|
|
||||||
png_error(png_ptr, "Out of place iTXt");
|
|
||||||
info_ptr = info_ptr; /* To quiet some compiler warnings */
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef PNG_MAX_MALLOC_64K
|
|
||||||
png_ptr->skip_length = 0; /* This may not be necessary */
|
|
||||||
|
|
||||||
if (length > (png_uint_32)65535L) /* Can't hold entire string in memory */
|
|
||||||
{
|
|
||||||
png_warning(png_ptr, "iTXt chunk too large to fit in memory");
|
|
||||||
png_ptr->skip_length = length - (png_uint_32)65535L;
|
|
||||||
length = (png_uint_32)65535L;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
png_ptr->current_text = (png_charp)png_malloc(png_ptr,
|
|
||||||
(png_size_t)(length + 1));
|
|
||||||
png_ptr->current_text[length] = '\0';
|
|
||||||
png_ptr->current_text_ptr = png_ptr->current_text;
|
|
||||||
png_ptr->current_text_size = (png_size_t)length;
|
|
||||||
png_ptr->current_text_left = (png_size_t)length;
|
|
||||||
png_ptr->process_mode = PNG_READ_iTXt_MODE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void /* PRIVATE */
|
|
||||||
png_push_read_iTXt(png_structp png_ptr, png_infop info_ptr)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (png_ptr->buffer_size && png_ptr->current_text_left)
|
|
||||||
{
|
|
||||||
png_size_t text_size;
|
|
||||||
|
|
||||||
if (png_ptr->buffer_size < png_ptr->current_text_left)
|
|
||||||
text_size = png_ptr->buffer_size;
|
|
||||||
|
|
||||||
else
|
|
||||||
text_size = png_ptr->current_text_left;
|
|
||||||
|
|
||||||
png_crc_read(png_ptr, (png_bytep)png_ptr->current_text_ptr, text_size);
|
|
||||||
png_ptr->current_text_left -= text_size;
|
|
||||||
png_ptr->current_text_ptr += text_size;
|
|
||||||
}
|
|
||||||
if (!(png_ptr->current_text_left))
|
|
||||||
{
|
|
||||||
png_textp text_ptr;
|
|
||||||
png_charp key;
|
|
||||||
int comp_flag;
|
|
||||||
png_charp lang;
|
|
||||||
png_charp lang_key;
|
|
||||||
png_charp text;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (png_ptr->buffer_size < 4)
|
|
||||||
{
|
|
||||||
png_push_save_buffer(png_ptr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_push_crc_finish(png_ptr);
|
|
||||||
|
|
||||||
#ifdef PNG_MAX_MALLOC_64K
|
|
||||||
if (png_ptr->skip_length)
|
|
||||||
return;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
key = png_ptr->current_text;
|
|
||||||
|
|
||||||
for (lang = key; *lang; lang++)
|
|
||||||
/* Empty loop */ ;
|
|
||||||
|
|
||||||
if (lang < key + png_ptr->current_text_size - 3)
|
|
||||||
lang++;
|
|
||||||
|
|
||||||
comp_flag = *lang++;
|
|
||||||
lang++; /* Skip comp_type, always zero */
|
|
||||||
|
|
||||||
for (lang_key = lang; *lang_key; lang_key++)
|
|
||||||
/* Empty loop */ ;
|
|
||||||
|
|
||||||
lang_key++; /* Skip NUL separator */
|
|
||||||
|
|
||||||
text=lang_key;
|
|
||||||
|
|
||||||
if (lang_key < key + png_ptr->current_text_size - 1)
|
|
||||||
{
|
|
||||||
for (; *text; text++)
|
|
||||||
/* Empty loop */ ;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (text < key + png_ptr->current_text_size)
|
|
||||||
text++;
|
|
||||||
|
|
||||||
text_ptr = (png_textp)png_malloc(png_ptr,
|
|
||||||
png_sizeof(png_text));
|
|
||||||
|
|
||||||
text_ptr->compression = comp_flag + 2;
|
|
||||||
text_ptr->key = key;
|
|
||||||
text_ptr->lang = lang;
|
|
||||||
text_ptr->lang_key = lang_key;
|
|
||||||
text_ptr->text = text;
|
|
||||||
text_ptr->text_length = 0;
|
|
||||||
text_ptr->itxt_length = png_strlen(text);
|
|
||||||
|
|
||||||
ret = png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
|
|
||||||
|
|
||||||
png_ptr->current_text = NULL;
|
|
||||||
|
|
||||||
png_free(png_ptr, text_ptr);
|
|
||||||
if (ret)
|
|
||||||
png_warning(png_ptr, "Insufficient memory to store iTXt chunk");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* This function is called when we haven't found a handler for this
|
|
||||||
* chunk. If there isn't a problem with the chunk itself (ie a bad chunk
|
|
||||||
* name or a critical chunk), the chunk is (currently) silently ignored.
|
|
||||||
*/
|
|
||||||
void /* PRIVATE */
|
|
||||||
png_push_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32
|
|
||||||
length)
|
|
||||||
{
|
|
||||||
png_uint_32 skip = 0;
|
|
||||||
|
|
||||||
if (!(png_ptr->chunk_name[0] & 0x20))
|
|
||||||
{
|
|
||||||
#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
|
|
||||||
if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
|
|
||||||
PNG_HANDLE_CHUNK_ALWAYS
|
|
||||||
#ifdef PNG_READ_USER_CHUNKS_SUPPORTED
|
|
||||||
&& png_ptr->read_user_chunk_fn == NULL
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
#endif
|
|
||||||
png_chunk_error(png_ptr, "unknown critical chunk");
|
|
||||||
|
|
||||||
info_ptr = info_ptr; /* To quiet some compiler warnings */
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
|
|
||||||
if (png_ptr->flags & PNG_FLAG_KEEP_UNKNOWN_CHUNKS)
|
|
||||||
{
|
|
||||||
#ifdef PNG_MAX_MALLOC_64K
|
|
||||||
if (length > (png_uint_32)65535L)
|
|
||||||
{
|
|
||||||
png_warning(png_ptr, "unknown chunk too large to fit in memory");
|
|
||||||
skip = length - (png_uint_32)65535L;
|
|
||||||
length = (png_uint_32)65535L;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
png_memcpy((png_charp)png_ptr->unknown_chunk.name,
|
|
||||||
(png_charp)png_ptr->chunk_name,
|
|
||||||
png_sizeof(png_ptr->unknown_chunk.name));
|
|
||||||
png_ptr->unknown_chunk.name[png_sizeof(png_ptr->unknown_chunk.name) - 1]
|
|
||||||
= '\0';
|
|
||||||
|
|
||||||
png_ptr->unknown_chunk.size = (png_size_t)length;
|
|
||||||
|
|
||||||
if (length == 0)
|
|
||||||
png_ptr->unknown_chunk.data = NULL;
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
|
||||||
png_ptr->unknown_chunk.data = (png_bytep)png_malloc(png_ptr,
|
|
||||||
(png_size_t)length);
|
|
||||||
png_crc_read(png_ptr, (png_bytep)png_ptr->unknown_chunk.data, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef PNG_READ_USER_CHUNKS_SUPPORTED
|
|
||||||
if (png_ptr->read_user_chunk_fn != NULL)
|
|
||||||
{
|
|
||||||
/* Callback to user unknown chunk handler */
|
|
||||||
int ret;
|
|
||||||
ret = (*(png_ptr->read_user_chunk_fn))
|
|
||||||
(png_ptr, &png_ptr->unknown_chunk);
|
|
||||||
|
|
||||||
if (ret < 0)
|
|
||||||
png_chunk_error(png_ptr, "error in user chunk");
|
|
||||||
|
|
||||||
if (ret == 0)
|
|
||||||
{
|
|
||||||
if (!(png_ptr->chunk_name[0] & 0x20))
|
|
||||||
if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
|
|
||||||
PNG_HANDLE_CHUNK_ALWAYS)
|
|
||||||
png_chunk_error(png_ptr, "unknown critical chunk");
|
|
||||||
png_set_unknown_chunks(png_ptr, info_ptr,
|
|
||||||
&png_ptr->unknown_chunk, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
png_set_unknown_chunks(png_ptr, info_ptr, &png_ptr->unknown_chunk, 1);
|
|
||||||
png_free(png_ptr, png_ptr->unknown_chunk.data);
|
|
||||||
png_ptr->unknown_chunk.data = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
skip=length;
|
|
||||||
png_push_crc_skip(png_ptr, skip);
|
|
||||||
}
|
|
||||||
|
|
||||||
void /* PRIVATE */
|
void /* PRIVATE */
|
||||||
png_push_have_info(png_structp png_ptr, png_infop info_ptr)
|
png_push_have_info(png_structp png_ptr, png_infop info_ptr)
|
||||||
{
|
{
|
||||||
@@ -1682,7 +1195,7 @@ png_push_have_row(png_structp png_ptr, png_bytep row)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
png_progressive_combine_row (png_structp png_ptr,
|
png_progressive_combine_row(png_structp png_ptr,
|
||||||
png_bytep old_row, png_bytep new_row)
|
png_bytep old_row, png_bytep new_row)
|
||||||
{
|
{
|
||||||
PNG_CONST int FARDATA png_pass_dsp_mask[7] =
|
PNG_CONST int FARDATA png_pass_dsp_mask[7] =
|
||||||
@@ -1711,7 +1224,7 @@ png_set_progressive_read_fn(png_structp png_ptr, png_voidp progressive_ptr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_voidp PNGAPI
|
png_voidp PNGAPI
|
||||||
png_get_progressive_ptr(png_structp png_ptr)
|
png_get_progressive_ptr(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
|
|||||||
51
pngpriv.h
@@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
/* pngpriv.h - private declarations for use inside libpng
|
/* pngpriv.h - private declarations for use inside libpng
|
||||||
*
|
*
|
||||||
* libpng version 1.4.0 - January 3, 2010
|
* libpng version 1.4.12 - July 10, 2012
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2010 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.)
|
||||||
*
|
*
|
||||||
@@ -26,16 +26,27 @@
|
|||||||
|
|
||||||
#ifndef PNG_VERSION_INFO_ONLY
|
#ifndef PNG_VERSION_INFO_ONLY
|
||||||
|
|
||||||
|
#if defined(_AIX) && defined(_ALL_SOURCE)
|
||||||
|
/* On AIX if _ALL_SOURCE is defined standard header files (including
|
||||||
|
* stdlib.h) define identifiers that are not permitted by the ANSI and
|
||||||
|
* POSIX standards. In particular 'jmpbuf' is #defined and this will
|
||||||
|
* prevent compilation of libpng. The following prevents this:
|
||||||
|
*/
|
||||||
|
# undef _ALL_SOURCE
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#ifndef PNG_EXTERN
|
||||||
/* The functions exported by PNG_EXTERN are internal functions, which
|
/* The functions exported by PNG_EXTERN are internal functions, which
|
||||||
* aren't usually used outside the library (as far as I know), so it is
|
* aren't usually used outside the library (as far as I know), so it is
|
||||||
* debatable if they should be exported at all. In the future, when it
|
* debatable if they should be exported at all. In the future, when it
|
||||||
* is possible to have run-time registry of chunk-handling functions,
|
* is possible to have run-time registry of chunk-handling functions,
|
||||||
* some of these will be made available again.
|
* some of these will be made available again.
|
||||||
#define PNG_EXTERN extern
|
# define PNG_EXTERN extern
|
||||||
*/
|
*/
|
||||||
#define PNG_EXTERN
|
# define PNG_EXTERN
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Other defines specific to compilers can go here. Try to keep
|
/* Other defines specific to compilers can go here. Try to keep
|
||||||
* them inside an appropriate ifdef/endif pair for portability.
|
* them inside an appropriate ifdef/endif pair for portability.
|
||||||
@@ -75,10 +86,6 @@
|
|||||||
#if defined(WIN32) || defined(_Windows) || defined(_WINDOWS) || \
|
#if defined(WIN32) || defined(_Windows) || defined(_WINDOWS) || \
|
||||||
defined(_WIN32) || defined(__WIN32__)
|
defined(_WIN32) || defined(__WIN32__)
|
||||||
# include <windows.h> /* defines _WINDOWS_ macro */
|
# include <windows.h> /* defines _WINDOWS_ macro */
|
||||||
/* I have no idea why is this necessary... */
|
|
||||||
# ifdef _MSC_VER
|
|
||||||
# include <malloc.h>
|
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Various modes of operation. Note that after an init, mode is set to
|
/* Various modes of operation. Note that after an init, mode is set to
|
||||||
@@ -106,7 +113,7 @@
|
|||||||
#define PNG_SHIFT 0x0008
|
#define PNG_SHIFT 0x0008
|
||||||
#define PNG_SWAP_BYTES 0x0010
|
#define PNG_SWAP_BYTES 0x0010
|
||||||
#define PNG_INVERT_MONO 0x0020
|
#define PNG_INVERT_MONO 0x0020
|
||||||
#define PNG_DITHER 0x0040
|
#define PNG_QUANTIZE 0x0040 /* formerly PNG_DITHER */
|
||||||
#define PNG_BACKGROUND 0x0080
|
#define PNG_BACKGROUND 0x0080
|
||||||
#define PNG_BACKGROUND_EXPAND 0x0100
|
#define PNG_BACKGROUND_EXPAND 0x0100
|
||||||
/* 0x0200 unused */
|
/* 0x0200 unused */
|
||||||
@@ -292,6 +299,9 @@ PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr));
|
|||||||
PNG_EXTERN void png_write_data PNGARG((png_structp png_ptr, png_bytep data,
|
PNG_EXTERN void png_write_data PNGARG((png_structp png_ptr, png_bytep data,
|
||||||
png_size_t length));
|
png_size_t length));
|
||||||
|
|
||||||
|
/* Read and check the PNG file signature */
|
||||||
|
PNG_EXTERN void png_read_sig PNGARG((png_structp png_ptr, png_infop info_ptr));
|
||||||
|
|
||||||
/* Read the chunk header (length + type name) */
|
/* Read the chunk header (length + type name) */
|
||||||
PNG_EXTERN png_uint_32 png_read_chunk_header PNGARG((png_structp png_ptr));
|
PNG_EXTERN png_uint_32 png_read_chunk_header PNGARG((png_structp png_ptr));
|
||||||
|
|
||||||
@@ -351,8 +361,8 @@ PNG_EXTERN void png_write_IEND PNGARG((png_structp png_ptr));
|
|||||||
PNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma));
|
PNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma));
|
||||||
#endif
|
#endif
|
||||||
#ifdef PNG_FIXED_POINT_SUPPORTED
|
#ifdef PNG_FIXED_POINT_SUPPORTED
|
||||||
PNG_EXTERN void png_write_gAMA_fixed PNGARG((png_structp png_ptr, png_fixed_point
|
PNG_EXTERN void png_write_gAMA_fixed PNGARG((png_structp png_ptr,
|
||||||
file_gamma));
|
png_fixed_point file_gamma));
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -556,7 +566,8 @@ PNG_EXTERN void png_do_strip_filler PNGARG((png_row_infop row_info,
|
|||||||
PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info, png_bytep row));
|
PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info, png_bytep row));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED)
|
#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \
|
||||||
|
defined(PNG_WRITE_PACKSWAP_SUPPORTED)
|
||||||
PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info, png_bytep row));
|
PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info, png_bytep row));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -587,9 +598,9 @@ PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info, png_bytep row));
|
|||||||
PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, png_bytep row));
|
PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, png_bytep row));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||||
PNG_EXTERN void png_do_dither PNGARG((png_row_infop row_info,
|
PNG_EXTERN void png_do_quantize PNGARG((png_row_infop row_info,
|
||||||
png_bytep row, png_bytep palette_lookup, png_bytep dither_lookup));
|
png_bytep row, png_bytep palette_lookup, png_bytep quantize_lookup));
|
||||||
|
|
||||||
# ifdef PNG_CORRECT_PALETTE_SUPPORTED
|
# ifdef PNG_CORRECT_PALETTE_SUPPORTED
|
||||||
PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr,
|
PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr,
|
||||||
@@ -671,7 +682,7 @@ PNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_iCCP_SUPPORTED
|
#ifdef PNG_READ_iCCP_SUPPORTED
|
||||||
extern void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr,
|
PNG_EXTERN void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr,
|
||||||
png_uint_32 length));
|
png_uint_32 length));
|
||||||
#endif /* PNG_READ_iCCP_SUPPORTED */
|
#endif /* PNG_READ_iCCP_SUPPORTED */
|
||||||
|
|
||||||
@@ -706,7 +717,7 @@ PNG_EXTERN void png_handle_sCAL PNGARG((png_structp png_ptr, png_infop info_ptr,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_sPLT_SUPPORTED
|
#ifdef PNG_READ_sPLT_SUPPORTED
|
||||||
extern void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr,
|
PNG_EXTERN void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr,
|
||||||
png_uint_32 length));
|
png_uint_32 length));
|
||||||
#endif /* PNG_READ_sPLT_SUPPORTED */
|
#endif /* PNG_READ_sPLT_SUPPORTED */
|
||||||
|
|
||||||
@@ -827,14 +838,14 @@ PNG_EXTERN void png_check_IHDR PNGARG((png_structp png_ptr,
|
|||||||
int filter_type));
|
int filter_type));
|
||||||
|
|
||||||
/* Free all memory used by the read (old method - NOT DLL EXPORTED) */
|
/* Free all memory used by the read (old method - NOT DLL EXPORTED) */
|
||||||
extern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr,
|
PNG_EXTERN void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr,
|
||||||
png_infop end_info_ptr));
|
png_infop end_info_ptr));
|
||||||
|
|
||||||
/* Free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */
|
/* Free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */
|
||||||
extern void png_write_destroy PNGARG((png_structp png_ptr));
|
PNG_EXTERN void png_write_destroy PNGARG((png_structp png_ptr));
|
||||||
|
|
||||||
#ifdef USE_FAR_KEYWORD /* memory model conversion function */
|
#ifdef USE_FAR_KEYWORD /* memory model conversion function */
|
||||||
extern void *png_far_to_near PNGARG((png_structp png_ptr,png_voidp ptr,
|
PNG_EXTERN void *png_far_to_near PNGARG((png_structp png_ptr,png_voidp ptr,
|
||||||
int check));
|
int check));
|
||||||
#endif /* USE_FAR_KEYWORD */
|
#endif /* USE_FAR_KEYWORD */
|
||||||
|
|
||||||
|
|||||||
97
pngread.c
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* pngread.c - read a PNG file
|
/* pngread.c - read a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.10 [March 8, 2012]
|
||||||
* Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2012 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.)
|
||||||
*
|
*
|
||||||
@@ -31,7 +31,9 @@ png_create_read_struct(png_const_charp user_png_ver, png_voidp error_ptr,
|
|||||||
warn_fn, NULL, NULL, NULL));
|
warn_fn, NULL, NULL, NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Alternate create PNG structure for reading, and allocate any memory needed. */
|
/* Alternate create PNG structure for reading, and allocate any memory
|
||||||
|
* needed.
|
||||||
|
*/
|
||||||
png_structp PNGAPI
|
png_structp PNGAPI
|
||||||
png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
|
png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
|
||||||
png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
|
png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
|
||||||
@@ -65,11 +67,15 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
|
|||||||
return (NULL);
|
return (NULL);
|
||||||
|
|
||||||
/* Added at libpng-1.2.6 */
|
/* Added at libpng-1.2.6 */
|
||||||
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
#ifdef PNG_USER_LIMITS_SUPPORTED
|
||||||
png_ptr->user_width_max = PNG_USER_WIDTH_MAX;
|
png_ptr->user_width_max = PNG_USER_WIDTH_MAX;
|
||||||
png_ptr->user_height_max = PNG_USER_HEIGHT_MAX;
|
png_ptr->user_height_max = PNG_USER_HEIGHT_MAX;
|
||||||
/* Added at libpng-1.4.0 */
|
|
||||||
|
/* Added at libpng-1.2.43 and 1.4.0 */
|
||||||
png_ptr->user_chunk_cache_max = PNG_USER_CHUNK_CACHE_MAX;
|
png_ptr->user_chunk_cache_max = PNG_USER_CHUNK_CACHE_MAX;
|
||||||
|
|
||||||
|
/* Added at libpng-1.4.1 */
|
||||||
|
png_ptr->user_chunk_malloc_max = PNG_USER_CHUNK_MALLOC_MAX;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_SETJMP_SUPPORTED
|
#ifdef PNG_SETJMP_SUPPORTED
|
||||||
@@ -206,34 +212,12 @@ void PNGAPI
|
|||||||
png_read_info(png_structp png_ptr, png_infop info_ptr)
|
png_read_info(png_structp png_ptr, png_infop info_ptr)
|
||||||
{
|
{
|
||||||
png_debug(1, "in png_read_info");
|
png_debug(1, "in png_read_info");
|
||||||
|
|
||||||
if (png_ptr == NULL || info_ptr == NULL)
|
if (png_ptr == NULL || info_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* If we haven't checked all of the PNG signature bytes, do so now. */
|
|
||||||
if (png_ptr->sig_bytes < 8)
|
|
||||||
{
|
|
||||||
png_size_t num_checked = png_ptr->sig_bytes,
|
|
||||||
num_to_check = 8 - num_checked;
|
|
||||||
|
|
||||||
#ifdef PNG_IO_STATE_SUPPORTED
|
/* Read and check the PNG file signature. */
|
||||||
png_ptr->io_state = PNG_IO_READING | PNG_IO_SIGNATURE;
|
png_read_sig(png_ptr, info_ptr);
|
||||||
#endif
|
|
||||||
|
|
||||||
png_read_data(png_ptr, &(info_ptr->signature[num_checked]), num_to_check);
|
|
||||||
png_ptr->sig_bytes = 8;
|
|
||||||
|
|
||||||
if (png_sig_cmp(info_ptr->signature, num_checked, num_to_check))
|
|
||||||
{
|
|
||||||
if (num_checked < 4 &&
|
|
||||||
png_sig_cmp(info_ptr->signature, num_checked, num_to_check - 4))
|
|
||||||
png_error(png_ptr, "Not a PNG file");
|
|
||||||
else
|
|
||||||
png_error(png_ptr, "PNG file corrupted by ASCII conversion");
|
|
||||||
}
|
|
||||||
if (num_checked < 3)
|
|
||||||
png_ptr->mode |= PNG_HAVE_PNG_SIGNATURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
@@ -418,7 +402,7 @@ void PNGAPI
|
|||||||
png_read_update_info(png_structp png_ptr, png_infop info_ptr)
|
png_read_update_info(png_structp png_ptr, png_infop info_ptr)
|
||||||
{
|
{
|
||||||
png_debug(1, "in png_read_update_info");
|
png_debug(1, "in png_read_update_info");
|
||||||
|
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
if (!(png_ptr->flags & PNG_FLAG_ROW_INIT))
|
if (!(png_ptr->flags & PNG_FLAG_ROW_INIT))
|
||||||
@@ -440,7 +424,7 @@ void PNGAPI
|
|||||||
png_start_read_image(png_structp png_ptr)
|
png_start_read_image(png_structp png_ptr)
|
||||||
{
|
{
|
||||||
png_debug(1, "in png_start_read_image");
|
png_debug(1, "in png_start_read_image");
|
||||||
|
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
if (!(png_ptr->flags & PNG_FLAG_ROW_INIT))
|
if (!(png_ptr->flags & PNG_FLAG_ROW_INIT))
|
||||||
@@ -453,14 +437,16 @@ 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};
|
||||||
int ret;
|
int ret;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
png_debug2(1, "in png_read_row (row %lu, pass %d)",
|
png_debug2(1, "in png_read_row (row %lu, pass %d)",
|
||||||
(unsigned long) png_ptr->row_number, png_ptr->pass);
|
(unsigned long) png_ptr->row_number, png_ptr->pass);
|
||||||
|
|
||||||
@@ -477,7 +463,8 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
|||||||
if (png_ptr->transformations & PNG_FILLER)
|
if (png_ptr->transformations & PNG_FILLER)
|
||||||
png_warning(png_ptr, "PNG_READ_FILLER_SUPPORTED is not defined");
|
png_warning(png_ptr, "PNG_READ_FILLER_SUPPORTED is not defined");
|
||||||
#endif
|
#endif
|
||||||
#if defined(PNG_WRITE_PACKSWAP_SUPPORTED) && !defined(PNG_READ_PACKSWAP_SUPPORTED)
|
#if defined(PNG_WRITE_PACKSWAP_SUPPORTED) && \
|
||||||
|
!defined(PNG_READ_PACKSWAP_SUPPORTED)
|
||||||
if (png_ptr->transformations & PNG_PACKSWAP)
|
if (png_ptr->transformations & PNG_PACKSWAP)
|
||||||
png_warning(png_ptr, "PNG_READ_PACKSWAP_SUPPORTED is not defined");
|
png_warning(png_ptr, "PNG_READ_PACKSWAP_SUPPORTED is not defined");
|
||||||
#endif
|
#endif
|
||||||
@@ -515,6 +502,7 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
if ((png_ptr->row_number & 0x07) || png_ptr->width < 5)
|
if ((png_ptr->row_number & 0x07) || png_ptr->width < 5)
|
||||||
{
|
{
|
||||||
@@ -525,6 +513,7 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
if ((png_ptr->row_number & 0x07) != 4)
|
if ((png_ptr->row_number & 0x07) != 4)
|
||||||
{
|
{
|
||||||
@@ -535,6 +524,7 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
if ((png_ptr->row_number & 3) || png_ptr->width < 3)
|
if ((png_ptr->row_number & 3) || png_ptr->width < 3)
|
||||||
{
|
{
|
||||||
@@ -545,6 +535,7 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
if ((png_ptr->row_number & 3) != 2)
|
if ((png_ptr->row_number & 3) != 2)
|
||||||
{
|
{
|
||||||
@@ -555,6 +546,7 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
if ((png_ptr->row_number & 1) || png_ptr->width < 2)
|
if ((png_ptr->row_number & 1) || png_ptr->width < 2)
|
||||||
{
|
{
|
||||||
@@ -565,6 +557,8 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
case 6:
|
case 6:
|
||||||
if (!(png_ptr->row_number & 1))
|
if (!(png_ptr->row_number & 1))
|
||||||
{
|
{
|
||||||
@@ -580,7 +574,9 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
|||||||
png_error(png_ptr, "Invalid attempt to read row data");
|
png_error(png_ptr, "Invalid attempt to read row data");
|
||||||
|
|
||||||
png_ptr->zstream.next_out = png_ptr->row_buf;
|
png_ptr->zstream.next_out = png_ptr->row_buf;
|
||||||
png_ptr->zstream.avail_out = (uInt)png_ptr->irowbytes;
|
png_ptr->zstream.avail_out =
|
||||||
|
(uInt)(PNG_ROWBYTES(png_ptr->pixel_depth,
|
||||||
|
png_ptr->iwidth) + 1);
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (!(png_ptr->zstream.avail_in))
|
if (!(png_ptr->zstream.avail_in))
|
||||||
@@ -713,7 +709,7 @@ png_read_rows(png_structp png_ptr, png_bytepp row,
|
|||||||
png_bytepp dp;
|
png_bytepp dp;
|
||||||
|
|
||||||
png_debug(1, "in png_read_rows");
|
png_debug(1, "in png_read_rows");
|
||||||
|
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
rp = row;
|
rp = row;
|
||||||
@@ -764,7 +760,7 @@ png_read_image(png_structp png_ptr, png_bytepp image)
|
|||||||
png_bytepp rp;
|
png_bytepp rp;
|
||||||
|
|
||||||
png_debug(1, "in png_read_image");
|
png_debug(1, "in png_read_image");
|
||||||
|
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -802,7 +798,7 @@ void PNGAPI
|
|||||||
png_read_end(png_structp png_ptr, png_infop info_ptr)
|
png_read_end(png_structp png_ptr, png_infop info_ptr)
|
||||||
{
|
{
|
||||||
png_debug(1, "in png_read_end");
|
png_debug(1, "in png_read_end");
|
||||||
|
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
png_crc_finish(png_ptr, 0); /* Finish off CRC from last IDAT chunk */
|
png_crc_finish(png_ptr, 0); /* Finish off CRC from last IDAT chunk */
|
||||||
@@ -982,7 +978,7 @@ png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
png_debug(1, "in png_destroy_read_struct");
|
png_debug(1, "in png_destroy_read_struct");
|
||||||
|
|
||||||
if (png_ptr_ptr != NULL)
|
if (png_ptr_ptr != NULL)
|
||||||
png_ptr = *png_ptr_ptr;
|
png_ptr = *png_ptr_ptr;
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
@@ -1044,7 +1040,8 @@ png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr,
|
|||||||
|
|
||||||
/* Free all memory used by the read (old method) */
|
/* Free all memory used by the read (old method) */
|
||||||
void /* PRIVATE */
|
void /* PRIVATE */
|
||||||
png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr)
|
png_read_destroy(png_structp png_ptr, png_infop info_ptr,
|
||||||
|
png_infop end_info_ptr)
|
||||||
{
|
{
|
||||||
#ifdef PNG_SETJMP_SUPPORTED
|
#ifdef PNG_SETJMP_SUPPORTED
|
||||||
jmp_buf tmp_jmp;
|
jmp_buf tmp_jmp;
|
||||||
@@ -1057,7 +1054,7 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
png_debug(1, "in png_read_destroy");
|
png_debug(1, "in png_read_destroy");
|
||||||
|
|
||||||
if (info_ptr != NULL)
|
if (info_ptr != NULL)
|
||||||
png_info_destroy(png_ptr, info_ptr);
|
png_info_destroy(png_ptr, info_ptr);
|
||||||
|
|
||||||
@@ -1068,9 +1065,9 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr
|
|||||||
png_free(png_ptr, png_ptr->big_row_buf);
|
png_free(png_ptr, png_ptr->big_row_buf);
|
||||||
png_free(png_ptr, png_ptr->prev_row);
|
png_free(png_ptr, png_ptr->prev_row);
|
||||||
png_free(png_ptr, png_ptr->chunkdata);
|
png_free(png_ptr, png_ptr->chunkdata);
|
||||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||||
png_free(png_ptr, png_ptr->palette_lookup);
|
png_free(png_ptr, png_ptr->palette_lookup);
|
||||||
png_free(png_ptr, png_ptr->dither_index);
|
png_free(png_ptr, png_ptr->quantize_index);
|
||||||
#endif
|
#endif
|
||||||
#ifdef PNG_READ_GAMMA_SUPPORTED
|
#ifdef PNG_READ_GAMMA_SUPPORTED
|
||||||
png_free(png_ptr, png_ptr->gamma_table);
|
png_free(png_ptr, png_ptr->gamma_table);
|
||||||
@@ -1136,12 +1133,6 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr
|
|||||||
png_free(png_ptr, png_ptr->save_buffer);
|
png_free(png_ptr, png_ptr->save_buffer);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
|
|
||||||
#ifdef PNG_TEXT_SUPPORTED
|
|
||||||
png_free(png_ptr, png_ptr->current_text);
|
|
||||||
#endif /* PNG_TEXT_SUPPORTED */
|
|
||||||
#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
|
|
||||||
|
|
||||||
/* Save the important info out of the png_struct, in case it is
|
/* Save the important info out of the png_struct, in case it is
|
||||||
* being used again.
|
* being used again.
|
||||||
*/
|
*/
|
||||||
@@ -1245,7 +1236,7 @@ png_read_png(png_structp png_ptr, png_infop info_ptr,
|
|||||||
png_set_expand(png_ptr);
|
png_set_expand(png_ptr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* We don't handle background color or gamma transformation or dithering.
|
/* We don't handle background color or gamma transformation or quantizing.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef PNG_READ_INVERT_SUPPORTED
|
#ifdef PNG_READ_INVERT_SUPPORTED
|
||||||
@@ -1340,8 +1331,8 @@ png_read_png(png_structp png_ptr, png_infop info_ptr,
|
|||||||
/* Read rest of file, and get additional chunks in info_ptr - REQUIRED */
|
/* Read rest of file, and get additional chunks in info_ptr - REQUIRED */
|
||||||
png_read_end(png_ptr, info_ptr);
|
png_read_end(png_ptr, info_ptr);
|
||||||
|
|
||||||
transforms = transforms; /* Quiet compiler warnings */
|
PNG_UNUSED(transforms) /* Quiet compiler warnings */
|
||||||
params = params;
|
PNG_UNUSED(params)
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif /* PNG_INFO_IMAGE_SUPPORTED */
|
#endif /* PNG_INFO_IMAGE_SUPPORTED */
|
||||||
|
|||||||
6
pngrio.c
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* pngrio.c - functions for data input
|
/* pngrio.c - functions for data input
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.6 [January 14, 2011]
|
||||||
* Copyright (c) 1998-2010 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.)
|
||||||
*
|
*
|
||||||
@@ -33,7 +33,7 @@ void /* PRIVATE */
|
|||||||
png_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
|
png_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
|
||||||
{
|
{
|
||||||
png_debug1(4, "reading %d bytes", (int)length);
|
png_debug1(4, "reading %d bytes", (int)length);
|
||||||
|
|
||||||
if (png_ptr->read_data_fn != NULL)
|
if (png_ptr->read_data_fn != NULL)
|
||||||
(*(png_ptr->read_data_fn))(png_ptr, data, length);
|
(*(png_ptr->read_data_fn))(png_ptr, data, length);
|
||||||
else
|
else
|
||||||
|
|||||||
339
pngrtran.c
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* 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.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.11 [March 29, 2012]
|
||||||
* Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2012 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
*
|
*
|
||||||
@@ -26,7 +26,7 @@ void PNGAPI
|
|||||||
png_set_crc_action(png_structp png_ptr, int crit_action, int ancil_action)
|
png_set_crc_action(png_structp png_ptr, int crit_action, int ancil_action)
|
||||||
{
|
{
|
||||||
png_debug(1, "in png_set_crc_action");
|
png_debug(1, "in png_set_crc_action");
|
||||||
|
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@ png_set_background(png_structp png_ptr,
|
|||||||
int need_expand, double background_gamma)
|
int need_expand, double background_gamma)
|
||||||
{
|
{
|
||||||
png_debug(1, "in png_set_background");
|
png_debug(1, "in png_set_background");
|
||||||
|
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
if (background_gamma_code == PNG_BACKGROUND_GAMMA_UNKNOWN)
|
if (background_gamma_code == PNG_BACKGROUND_GAMMA_UNKNOWN)
|
||||||
@@ -141,13 +141,13 @@ png_set_strip_alpha(png_structp png_ptr)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||||
/* Dither file to 8 bit. Supply a palette, the current number
|
/* Quantize file to 8 bit. Supply a palette, the current number
|
||||||
* of elements in the palette, the maximum number of elements
|
* of elements in the palette, the maximum number of elements
|
||||||
* allowed, and a histogram if possible. If the current number
|
* allowed, and a histogram if possible. If the current number
|
||||||
* of colors is greater then the maximum number, the palette will be
|
* of colors is greater then the maximum number, the palette will be
|
||||||
* modified to fit in the maximum number. "full_dither" indicates
|
* modified to fit in the maximum number. "full_quantize" indicates
|
||||||
* whether we need a dithering cube set up for RGB images, or if we
|
* whether we need a quantizeing cube set up for RGB images, or if we
|
||||||
* simply are reducing the number of colors in a paletted image.
|
* simply are reducing the number of colors in a paletted image.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -161,24 +161,24 @@ typedef png_dsort FAR * png_dsortp;
|
|||||||
typedef png_dsort FAR * FAR * png_dsortpp;
|
typedef png_dsort FAR * FAR * png_dsortpp;
|
||||||
|
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
png_set_dither(png_structp png_ptr, png_colorp palette,
|
png_set_quantize(png_structp png_ptr, png_colorp palette,
|
||||||
int num_palette, int maximum_colors, png_uint_16p histogram,
|
int num_palette, int maximum_colors, png_uint_16p histogram,
|
||||||
int full_dither)
|
int full_quantize)
|
||||||
{
|
{
|
||||||
png_debug(1, "in png_set_dither");
|
png_debug(1, "in png_set_quantize");
|
||||||
|
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
png_ptr->transformations |= PNG_DITHER;
|
png_ptr->transformations |= PNG_QUANTIZE;
|
||||||
|
|
||||||
if (!full_dither)
|
if (!full_quantize)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
png_ptr->dither_index = (png_bytep)png_malloc(png_ptr,
|
png_ptr->quantize_index = (png_bytep)png_malloc(png_ptr,
|
||||||
(png_uint_32)(num_palette * png_sizeof(png_byte)));
|
(png_uint_32)(num_palette * png_sizeof(png_byte)));
|
||||||
for (i = 0; i < num_palette; i++)
|
for (i = 0; i < num_palette; i++)
|
||||||
png_ptr->dither_index[i] = (png_byte)i;
|
png_ptr->quantize_index[i] = (png_byte)i;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (num_palette > maximum_colors)
|
if (num_palette > maximum_colors)
|
||||||
@@ -192,12 +192,12 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Initialize an array to sort colors */
|
/* Initialize an array to sort colors */
|
||||||
png_ptr->dither_sort = (png_bytep)png_malloc(png_ptr,
|
png_ptr->quantize_sort = (png_bytep)png_malloc(png_ptr,
|
||||||
(png_uint_32)(num_palette * png_sizeof(png_byte)));
|
(png_uint_32)(num_palette * png_sizeof(png_byte)));
|
||||||
|
|
||||||
/* Initialize the dither_sort array */
|
/* Initialize the quantize_sort array */
|
||||||
for (i = 0; i < num_palette; i++)
|
for (i = 0; i < num_palette; i++)
|
||||||
png_ptr->dither_sort[i] = (png_byte)i;
|
png_ptr->quantize_sort[i] = (png_byte)i;
|
||||||
|
|
||||||
/* Find the least used palette entries by starting a
|
/* Find the least used palette entries by starting a
|
||||||
* bubble sort, and running it until we have sorted
|
* bubble sort, and running it until we have sorted
|
||||||
@@ -214,14 +214,14 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
|||||||
done = 1;
|
done = 1;
|
||||||
for (j = 0; j < i; j++)
|
for (j = 0; j < i; j++)
|
||||||
{
|
{
|
||||||
if (histogram[png_ptr->dither_sort[j]]
|
if (histogram[png_ptr->quantize_sort[j]]
|
||||||
< histogram[png_ptr->dither_sort[j + 1]])
|
< histogram[png_ptr->quantize_sort[j + 1]])
|
||||||
{
|
{
|
||||||
png_byte t;
|
png_byte t;
|
||||||
|
|
||||||
t = png_ptr->dither_sort[j];
|
t = png_ptr->quantize_sort[j];
|
||||||
png_ptr->dither_sort[j] = png_ptr->dither_sort[j + 1];
|
png_ptr->quantize_sort[j] = png_ptr->quantize_sort[j + 1];
|
||||||
png_ptr->dither_sort[j + 1] = t;
|
png_ptr->quantize_sort[j + 1] = t;
|
||||||
done = 0;
|
done = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -230,7 +230,7 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Swap the palette around, and set up a table, if necessary */
|
/* Swap the palette around, and set up a table, if necessary */
|
||||||
if (full_dither)
|
if (full_quantize)
|
||||||
{
|
{
|
||||||
int j = num_palette;
|
int j = num_palette;
|
||||||
|
|
||||||
@@ -239,11 +239,11 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
|||||||
*/
|
*/
|
||||||
for (i = 0; i < maximum_colors; i++)
|
for (i = 0; i < maximum_colors; i++)
|
||||||
{
|
{
|
||||||
if ((int)png_ptr->dither_sort[i] >= maximum_colors)
|
if ((int)png_ptr->quantize_sort[i] >= maximum_colors)
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
j--;
|
j--;
|
||||||
while ((int)png_ptr->dither_sort[j] >= maximum_colors);
|
while ((int)png_ptr->quantize_sort[j] >= maximum_colors);
|
||||||
palette[i] = palette[j];
|
palette[i] = palette[j];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -258,32 +258,32 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
|||||||
for (i = 0; i < maximum_colors; i++)
|
for (i = 0; i < maximum_colors; i++)
|
||||||
{
|
{
|
||||||
/* Only move the colors we need to */
|
/* Only move the colors we need to */
|
||||||
if ((int)png_ptr->dither_sort[i] >= maximum_colors)
|
if ((int)png_ptr->quantize_sort[i] >= maximum_colors)
|
||||||
{
|
{
|
||||||
png_color tmp_color;
|
png_color tmp_color;
|
||||||
|
|
||||||
do
|
do
|
||||||
j--;
|
j--;
|
||||||
while ((int)png_ptr->dither_sort[j] >= maximum_colors);
|
while ((int)png_ptr->quantize_sort[j] >= maximum_colors);
|
||||||
|
|
||||||
tmp_color = palette[j];
|
tmp_color = palette[j];
|
||||||
palette[j] = palette[i];
|
palette[j] = palette[i];
|
||||||
palette[i] = tmp_color;
|
palette[i] = tmp_color;
|
||||||
/* Indicate where the color went */
|
/* Indicate where the color went */
|
||||||
png_ptr->dither_index[j] = (png_byte)i;
|
png_ptr->quantize_index[j] = (png_byte)i;
|
||||||
png_ptr->dither_index[i] = (png_byte)j;
|
png_ptr->quantize_index[i] = (png_byte)j;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Find closest color for those colors we are not using */
|
/* Find closest color for those colors we are not using */
|
||||||
for (i = 0; i < num_palette; i++)
|
for (i = 0; i < num_palette; i++)
|
||||||
{
|
{
|
||||||
if ((int)png_ptr->dither_index[i] >= maximum_colors)
|
if ((int)png_ptr->quantize_index[i] >= maximum_colors)
|
||||||
{
|
{
|
||||||
int min_d, k, min_k, d_index;
|
int min_d, k, min_k, d_index;
|
||||||
|
|
||||||
/* Find the closest color to one we threw out */
|
/* Find the closest color to one we threw out */
|
||||||
d_index = png_ptr->dither_index[i];
|
d_index = png_ptr->quantize_index[i];
|
||||||
min_d = PNG_COLOR_DIST(palette[d_index], palette[0]);
|
min_d = PNG_COLOR_DIST(palette[d_index], palette[0]);
|
||||||
for (k = 1, min_k = 0; k < maximum_colors; k++)
|
for (k = 1, min_k = 0; k < maximum_colors; k++)
|
||||||
{
|
{
|
||||||
@@ -298,12 +298,12 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Point to closest color */
|
/* Point to closest color */
|
||||||
png_ptr->dither_index[i] = (png_byte)min_k;
|
png_ptr->quantize_index[i] = (png_byte)min_k;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
png_free(png_ptr, png_ptr->dither_sort);
|
png_free(png_ptr, png_ptr->quantize_sort);
|
||||||
png_ptr->dither_sort = NULL;
|
png_ptr->quantize_sort = NULL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -410,19 +410,19 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
|||||||
num_new_palette--;
|
num_new_palette--;
|
||||||
palette[png_ptr->index_to_palette[j]]
|
palette[png_ptr->index_to_palette[j]]
|
||||||
= palette[num_new_palette];
|
= palette[num_new_palette];
|
||||||
if (!full_dither)
|
if (!full_quantize)
|
||||||
{
|
{
|
||||||
int k;
|
int k;
|
||||||
|
|
||||||
for (k = 0; k < num_palette; k++)
|
for (k = 0; k < num_palette; k++)
|
||||||
{
|
{
|
||||||
if (png_ptr->dither_index[k] ==
|
if (png_ptr->quantize_index[k] ==
|
||||||
png_ptr->index_to_palette[j])
|
png_ptr->index_to_palette[j])
|
||||||
png_ptr->dither_index[k] =
|
png_ptr->quantize_index[k] =
|
||||||
png_ptr->index_to_palette[next_j];
|
png_ptr->index_to_palette[next_j];
|
||||||
if ((int)png_ptr->dither_index[k] ==
|
if ((int)png_ptr->quantize_index[k] ==
|
||||||
num_new_palette)
|
num_new_palette)
|
||||||
png_ptr->dither_index[k] =
|
png_ptr->quantize_index[k] =
|
||||||
png_ptr->index_to_palette[j];
|
png_ptr->index_to_palette[j];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -432,8 +432,10 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
|||||||
png_ptr->palette_to_index[png_ptr->index_to_palette[j]]
|
png_ptr->palette_to_index[png_ptr->index_to_palette[j]]
|
||||||
= png_ptr->palette_to_index[num_new_palette];
|
= png_ptr->palette_to_index[num_new_palette];
|
||||||
|
|
||||||
png_ptr->index_to_palette[j] = (png_byte)num_new_palette;
|
png_ptr->index_to_palette[j] =
|
||||||
png_ptr->palette_to_index[num_new_palette] = (png_byte)j;
|
(png_byte)num_new_palette;
|
||||||
|
png_ptr->palette_to_index[num_new_palette] =
|
||||||
|
(png_byte)j;
|
||||||
}
|
}
|
||||||
if (num_new_palette <= maximum_colors)
|
if (num_new_palette <= maximum_colors)
|
||||||
break;
|
break;
|
||||||
@@ -473,15 +475,15 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
|||||||
}
|
}
|
||||||
png_ptr->num_palette = (png_uint_16)num_palette;
|
png_ptr->num_palette = (png_uint_16)num_palette;
|
||||||
|
|
||||||
if (full_dither)
|
if (full_quantize)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
png_bytep distance;
|
png_bytep distance;
|
||||||
int total_bits = PNG_DITHER_RED_BITS + PNG_DITHER_GREEN_BITS +
|
int total_bits = PNG_QUANTIZE_RED_BITS + PNG_QUANTIZE_GREEN_BITS +
|
||||||
PNG_DITHER_BLUE_BITS;
|
PNG_QUANTIZE_BLUE_BITS;
|
||||||
int num_red = (1 << PNG_DITHER_RED_BITS);
|
int num_red = (1 << PNG_QUANTIZE_RED_BITS);
|
||||||
int num_green = (1 << PNG_DITHER_GREEN_BITS);
|
int num_green = (1 << PNG_QUANTIZE_GREEN_BITS);
|
||||||
int num_blue = (1 << PNG_DITHER_BLUE_BITS);
|
int num_blue = (1 << PNG_QUANTIZE_BLUE_BITS);
|
||||||
png_size_t num_entries = ((png_size_t)1 << total_bits);
|
png_size_t num_entries = ((png_size_t)1 << total_bits);
|
||||||
|
|
||||||
png_ptr->palette_lookup = (png_bytep )png_calloc(png_ptr,
|
png_ptr->palette_lookup = (png_bytep )png_calloc(png_ptr,
|
||||||
@@ -494,15 +496,16 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
|||||||
for (i = 0; i < num_palette; i++)
|
for (i = 0; i < num_palette; i++)
|
||||||
{
|
{
|
||||||
int ir, ig, ib;
|
int ir, ig, ib;
|
||||||
int r = (palette[i].red >> (8 - PNG_DITHER_RED_BITS));
|
int r = (palette[i].red >> (8 - PNG_QUANTIZE_RED_BITS));
|
||||||
int g = (palette[i].green >> (8 - PNG_DITHER_GREEN_BITS));
|
int g = (palette[i].green >> (8 - PNG_QUANTIZE_GREEN_BITS));
|
||||||
int b = (palette[i].blue >> (8 - PNG_DITHER_BLUE_BITS));
|
int b = (palette[i].blue >> (8 - PNG_QUANTIZE_BLUE_BITS));
|
||||||
|
|
||||||
for (ir = 0; ir < num_red; ir++)
|
for (ir = 0; ir < num_red; ir++)
|
||||||
{
|
{
|
||||||
/* int dr = abs(ir - r); */
|
/* int dr = abs(ir - r); */
|
||||||
int dr = ((ir > r) ? ir - r : r - ir);
|
int dr = ((ir > r) ? ir - r : r - ir);
|
||||||
int index_r = (ir << (PNG_DITHER_BLUE_BITS + PNG_DITHER_GREEN_BITS));
|
int index_r = (ir << (PNG_QUANTIZE_BLUE_BITS +
|
||||||
|
PNG_QUANTIZE_GREEN_BITS));
|
||||||
|
|
||||||
for (ig = 0; ig < num_green; ig++)
|
for (ig = 0; ig < num_green; ig++)
|
||||||
{
|
{
|
||||||
@@ -510,7 +513,7 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
|||||||
int dg = ((ig > g) ? ig - g : g - ig);
|
int dg = ((ig > g) ? ig - g : g - ig);
|
||||||
int dt = dr + dg;
|
int dt = dr + dg;
|
||||||
int dm = ((dr > dg) ? dr : dg);
|
int dm = ((dr > dg) ? dr : dg);
|
||||||
int index_g = index_r | (ig << PNG_DITHER_BLUE_BITS);
|
int index_g = index_r | (ig << PNG_QUANTIZE_BLUE_BITS);
|
||||||
|
|
||||||
for (ib = 0; ib < num_blue; ib++)
|
for (ib = 0; ib < num_blue; ib++)
|
||||||
{
|
{
|
||||||
@@ -533,7 +536,7 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
|||||||
png_free(png_ptr, distance);
|
png_free(png_ptr, distance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif /* PNG_READ_QUANTIZE_SUPPORTED */
|
||||||
|
|
||||||
#if defined(PNG_READ_GAMMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED)
|
#if defined(PNG_READ_GAMMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED)
|
||||||
/* Transform the image from the file_gamma to the screen_gamma. We
|
/* Transform the image from the file_gamma to the screen_gamma. We
|
||||||
@@ -657,10 +660,21 @@ void PNGAPI
|
|||||||
png_set_rgb_to_gray(png_structp png_ptr, int error_action, double red,
|
png_set_rgb_to_gray(png_structp png_ptr, int error_action, double red,
|
||||||
double green)
|
double green)
|
||||||
{
|
{
|
||||||
int red_fixed = (int)((float)red*100000.0 + 0.5);
|
int red_fixed, green_fixed;
|
||||||
int green_fixed = (int)((float)green*100000.0 + 0.5);
|
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
|
if (red > 21474.83647 || red < -21474.83648 ||
|
||||||
|
green > 21474.83647 || green < -21474.83648)
|
||||||
|
{
|
||||||
|
png_warning(png_ptr, "ignoring out of range rgb_to_gray coefficients");
|
||||||
|
red_fixed = -1;
|
||||||
|
green_fixed = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
red_fixed = (int)((float)red*100000.0 + 0.5);
|
||||||
|
green_fixed = (int)((float)green*100000.0 + 0.5);
|
||||||
|
}
|
||||||
png_set_rgb_to_gray_fixed(png_ptr, error_action, red_fixed, green_fixed);
|
png_set_rgb_to_gray_fixed(png_ptr, error_action, red_fixed, green_fixed);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -683,6 +697,11 @@ png_set_rgb_to_gray_fixed(png_structp png_ptr, int error_action,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 3: png_ptr->transformations |= PNG_RGB_TO_GRAY_ERR;
|
case 3: png_ptr->transformations |= PNG_RGB_TO_GRAY_ERR;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
png_error(png_ptr, "invalid error action in png_set_rgb_to_gray");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
|
if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
|
||||||
#ifdef PNG_READ_EXPAND_SUPPORTED
|
#ifdef PNG_READ_EXPAND_SUPPORTED
|
||||||
@@ -695,27 +714,38 @@ png_set_rgb_to_gray_fixed(png_structp png_ptr, int error_action,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
png_uint_16 red_int, green_int;
|
if (red >= 0 && green >= 0 && red + green <= 100000L)
|
||||||
if (red < 0 || green < 0)
|
|
||||||
{
|
|
||||||
red_int = 6968; /* .212671 * 32768 + .5 */
|
|
||||||
green_int = 23434; /* .715160 * 32768 + .5 */
|
|
||||||
}
|
|
||||||
else if (red + green < 100000L)
|
|
||||||
{
|
{
|
||||||
|
png_uint_16 red_int, green_int;
|
||||||
|
|
||||||
red_int = (png_uint_16)(((png_uint_32)red*32768L)/100000L);
|
red_int = (png_uint_16)(((png_uint_32)red*32768L)/100000L);
|
||||||
green_int = (png_uint_16)(((png_uint_32)green*32768L)/100000L);
|
green_int = (png_uint_16)(((png_uint_32)green*32768L)/100000L);
|
||||||
|
|
||||||
|
png_ptr->rgb_to_gray_red_coeff = red_int;
|
||||||
|
png_ptr->rgb_to_gray_green_coeff = green_int;
|
||||||
|
png_ptr->rgb_to_gray_blue_coeff =
|
||||||
|
(png_uint_16)(32768 - red_int - green_int);
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
png_warning(png_ptr, "ignoring out of range rgb_to_gray coefficients");
|
if (red >= 0 && green >= 0)
|
||||||
red_int = 6968;
|
png_warning(png_ptr,
|
||||||
green_int = 23434;
|
"ignoring out of range rgb_to_gray coefficients");
|
||||||
|
|
||||||
|
/* Use the defaults, from the cHRM chunk if set, else the built in Rec
|
||||||
|
* 709 values (which correspond to sRGB, so we don't have to worry
|
||||||
|
* about the sRGB chunk!)
|
||||||
|
*/
|
||||||
|
if (png_ptr->rgb_to_gray_red_coeff == 0 &&
|
||||||
|
png_ptr->rgb_to_gray_green_coeff == 0 &&
|
||||||
|
png_ptr->rgb_to_gray_blue_coeff == 0)
|
||||||
|
{
|
||||||
|
png_ptr->rgb_to_gray_red_coeff = 6968; /* .212671 * 32768 + .5 */
|
||||||
|
png_ptr->rgb_to_gray_green_coeff = 23434; /* .715160 * 32768 + .5 */
|
||||||
|
png_ptr->rgb_to_gray_blue_coeff = 2366;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
png_ptr->rgb_to_gray_red_coeff = red_int;
|
|
||||||
png_ptr->rgb_to_gray_green_coeff = green_int;
|
|
||||||
png_ptr->rgb_to_gray_blue_coeff =
|
|
||||||
(png_uint_16)(32768 - red_int - green_int);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -747,8 +777,9 @@ png_init_read_transformations(png_structp png_ptr)
|
|||||||
png_debug(1, "in png_init_read_transformations");
|
png_debug(1, "in png_init_read_transformations");
|
||||||
|
|
||||||
{
|
{
|
||||||
#if defined(PNG_READ_BACKGROUND_SUPPORTED) || defined(PNG_READ_SHIFT_SUPPORTED) \
|
#if defined(PNG_READ_BACKGROUND_SUPPORTED) || \
|
||||||
|| defined(PNG_READ_GAMMA_SUPPORTED)
|
defined(PNG_READ_SHIFT_SUPPORTED) || \
|
||||||
|
defined(PNG_READ_GAMMA_SUPPORTED)
|
||||||
int color_type = png_ptr->color_type;
|
int color_type = png_ptr->color_type;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -824,6 +855,8 @@ png_init_read_transformations(png_structp png_ptr)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
|
||||||
case 8:
|
case 8:
|
||||||
|
|
||||||
case 16:
|
case 16:
|
||||||
@@ -945,7 +978,8 @@ png_init_read_transformations(png_structp png_ptr)
|
|||||||
back.red = (png_byte)(pow(
|
back.red = (png_byte)(pow(
|
||||||
(double)png_ptr->background.red/255.0, gs) * 255.0 + .5);
|
(double)png_ptr->background.red/255.0, gs) * 255.0 + .5);
|
||||||
back.green = (png_byte)(pow(
|
back.green = (png_byte)(pow(
|
||||||
(double)png_ptr->background.green/255.0, gs) * 255.0 + .5);
|
(double)png_ptr->background.green/255.0, gs) * 255.0
|
||||||
|
+ .5);
|
||||||
back.blue = (png_byte)(pow(
|
back.blue = (png_byte)(pow(
|
||||||
(double)png_ptr->background.blue/255.0, gs) * 255.0 + .5);
|
(double)png_ptr->background.blue/255.0, gs) * 255.0 + .5);
|
||||||
}
|
}
|
||||||
@@ -996,7 +1030,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) */
|
||||||
else
|
else
|
||||||
@@ -1023,6 +1057,9 @@ png_init_read_transformations(png_structp png_ptr)
|
|||||||
gs = 1.0 / (png_ptr->background_gamma *
|
gs = 1.0 / (png_ptr->background_gamma *
|
||||||
png_ptr->screen_gamma);
|
png_ptr->screen_gamma);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
png_error(png_ptr, "invalid background gamma type");
|
||||||
}
|
}
|
||||||
|
|
||||||
png_ptr->background_1.gray = (png_uint_16)(pow(
|
png_ptr->background_1.gray = (png_uint_16)(pow(
|
||||||
@@ -1116,12 +1153,13 @@ 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 */
|
||||||
|
|
||||||
#ifdef PNG_READ_SHIFT_SUPPORTED
|
#ifdef PNG_READ_SHIFT_SUPPORTED
|
||||||
if ((png_ptr->transformations & PNG_SHIFT) &&
|
if ((png_ptr->transformations & PNG_SHIFT) &&
|
||||||
|
!(png_ptr->transformations & PNG_EXPAND) &&
|
||||||
(color_type == PNG_COLOR_TYPE_PALETTE))
|
(color_type == PNG_COLOR_TYPE_PALETTE))
|
||||||
{
|
{
|
||||||
png_uint_16 i;
|
png_uint_16 i;
|
||||||
@@ -1142,6 +1180,8 @@ png_init_read_transformations(png_structp png_ptr)
|
|||||||
png_ptr->palette[i].green >>= sg;
|
png_ptr->palette[i].green >>= sg;
|
||||||
png_ptr->palette[i].blue >>= sb;
|
png_ptr->palette[i].blue >>= sb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
png_ptr->transformations &= ~PNG_SHIFT;
|
||||||
}
|
}
|
||||||
#endif /* PNG_READ_SHIFT_SUPPORTED */
|
#endif /* PNG_READ_SHIFT_SUPPORTED */
|
||||||
}
|
}
|
||||||
@@ -1166,8 +1206,7 @@ png_read_transform_info(png_structp png_ptr, png_infop info_ptr)
|
|||||||
{
|
{
|
||||||
if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
|
if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
|
||||||
{
|
{
|
||||||
if (png_ptr->num_trans &&
|
if (png_ptr->num_trans)
|
||||||
(png_ptr->transformations & PNG_EXPAND_tRNS))
|
|
||||||
info_ptr->color_type = PNG_COLOR_TYPE_RGB_ALPHA;
|
info_ptr->color_type = PNG_COLOR_TYPE_RGB_ALPHA;
|
||||||
else
|
else
|
||||||
info_ptr->color_type = PNG_COLOR_TYPE_RGB;
|
info_ptr->color_type = PNG_COLOR_TYPE_RGB;
|
||||||
@@ -1224,8 +1263,8 @@ png_read_transform_info(png_structp png_ptr, png_infop info_ptr)
|
|||||||
info_ptr->color_type &= ~PNG_COLOR_MASK_COLOR;
|
info_ptr->color_type &= ~PNG_COLOR_MASK_COLOR;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||||
if (png_ptr->transformations & PNG_DITHER)
|
if (png_ptr->transformations & PNG_QUANTIZE)
|
||||||
{
|
{
|
||||||
if (((info_ptr->color_type == PNG_COLOR_TYPE_RGB) ||
|
if (((info_ptr->color_type == PNG_COLOR_TYPE_RGB) ||
|
||||||
(info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)) &&
|
(info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)) &&
|
||||||
@@ -1357,7 +1396,8 @@ png_do_read_transformations(png_structp png_ptr)
|
|||||||
if (png_ptr->transformations & PNG_RGB_TO_GRAY)
|
if (png_ptr->transformations & PNG_RGB_TO_GRAY)
|
||||||
{
|
{
|
||||||
int rgb_error =
|
int rgb_error =
|
||||||
png_do_rgb_to_gray(png_ptr, &(png_ptr->row_info), png_ptr->row_buf + 1);
|
png_do_rgb_to_gray(png_ptr, &(png_ptr->row_info),
|
||||||
|
png_ptr->row_buf + 1);
|
||||||
if (rgb_error)
|
if (rgb_error)
|
||||||
{
|
{
|
||||||
png_ptr->rgb_to_gray_status=1;
|
png_ptr->rgb_to_gray_status=1;
|
||||||
@@ -1445,13 +1485,13 @@ png_do_read_transformations(png_structp png_ptr)
|
|||||||
png_do_chop(&(png_ptr->row_info), png_ptr->row_buf + 1);
|
png_do_chop(&(png_ptr->row_info), png_ptr->row_buf + 1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||||
if (png_ptr->transformations & PNG_DITHER)
|
if (png_ptr->transformations & PNG_QUANTIZE)
|
||||||
{
|
{
|
||||||
png_do_dither((png_row_infop)&(png_ptr->row_info), png_ptr->row_buf + 1,
|
png_do_quantize((png_row_infop)&(png_ptr->row_info), png_ptr->row_buf + 1,
|
||||||
png_ptr->palette_lookup, png_ptr->dither_index);
|
png_ptr->palette_lookup, png_ptr->quantize_index);
|
||||||
if (png_ptr->row_info.rowbytes == (png_uint_32)0)
|
if (png_ptr->row_info.rowbytes == (png_uint_32)0)
|
||||||
png_error(png_ptr, "png_do_dither returned rowbytes=0");
|
png_error(png_ptr, "png_do_quantize returned rowbytes=0");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1620,6 +1660,9 @@ png_do_unpack(png_row_infop row_info, png_bytep row)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
row_info->bit_depth = 8;
|
row_info->bit_depth = 8;
|
||||||
row_info->pixel_depth = (png_byte)(8 * row_info->channels);
|
row_info->pixel_depth = (png_byte)(8 * row_info->channels);
|
||||||
@@ -1676,6 +1719,9 @@ png_do_unshift(png_row_infop row_info, png_bytep row, png_color_8p sig_bits)
|
|||||||
|
|
||||||
switch (row_info->bit_depth)
|
switch (row_info->bit_depth)
|
||||||
{
|
{
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
png_bytep bp;
|
png_bytep bp;
|
||||||
@@ -1756,32 +1802,18 @@ png_do_chop(png_row_infop row_info, png_bytep row)
|
|||||||
for (i = 0; i<istop; i++, sp += 2, dp++)
|
for (i = 0; i<istop; i++, sp += 2, dp++)
|
||||||
{
|
{
|
||||||
#ifdef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
|
#ifdef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
|
||||||
/* This does a more accurate scaling of the 16-bit color
|
/* This does a more accurate scaling of the 16-bit color
|
||||||
* value, rather than a simple low-byte truncation.
|
* value, rather than a simple low-byte truncation.
|
||||||
*
|
*
|
||||||
* What the ideal calculation should be:
|
* Prior to libpng-1.4.8 and 1.5.4, the calculation here was
|
||||||
* *dp = (((((png_uint_32)(*sp) << 8) |
|
* incorrect, so if you used ACCURATE_SCALE you will now see
|
||||||
* (png_uint_32)(*(sp + 1))) * 255 + 127)
|
* a slightly different result. In libpng-1.5.4 and
|
||||||
* / (png_uint_32)65535L;
|
* later you will need to use the new png_set_scale_16_to_8()
|
||||||
*
|
* API to obtain accurate 16-to-8 scaling.
|
||||||
* GRR: no, I think this is what it really should be:
|
*/
|
||||||
* *dp = (((((png_uint_32)(*sp) << 8) |
|
png_int_32 tmp = *sp; /* must be signed! */
|
||||||
* (png_uint_32)(*(sp + 1))) + 128L)
|
tmp += (((int)sp[1] - tmp + 128) * 65535) >> 24;
|
||||||
* / (png_uint_32)257L;
|
*dp = (png_byte)tmp;
|
||||||
*
|
|
||||||
* GRR: here's the exact calculation with shifts:
|
|
||||||
* temp = (((png_uint_32)(*sp) << 8) |
|
|
||||||
* (png_uint_32)(*(sp + 1))) + 128L;
|
|
||||||
* *dp = (temp - (temp >> 8)) >> 8;
|
|
||||||
*
|
|
||||||
* Approximate calculation with shift/add instead of multiply/divide:
|
|
||||||
* *dp = ((((png_uint_32)(*sp) << 8) |
|
|
||||||
* (png_uint_32)((int)(*(sp + 1)) - *sp)) + 128) >> 8;
|
|
||||||
*
|
|
||||||
* What we actually do to avoid extra shifting and conversion:
|
|
||||||
*/
|
|
||||||
|
|
||||||
*dp = *sp + ((((int)(*(sp + 1)) - *sp) > 128) ? 1 : 0);
|
|
||||||
#else
|
#else
|
||||||
/* Simply discard the low order byte */
|
/* Simply discard the low order byte */
|
||||||
*dp = *sp;
|
*dp = *sp;
|
||||||
@@ -2268,7 +2300,7 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
|
|||||||
|
|
||||||
png_debug(1, "in png_do_rgb_to_gray");
|
png_debug(1, "in png_do_rgb_to_gray");
|
||||||
|
|
||||||
if (
|
if (!(row_info->color_type & PNG_COLOR_MASK_PALETTE) &&
|
||||||
(row_info->color_type & PNG_COLOR_MASK_COLOR))
|
(row_info->color_type & PNG_COLOR_MASK_COLOR))
|
||||||
{
|
{
|
||||||
png_uint_32 rc = png_ptr->rgb_to_gray_red_coeff;
|
png_uint_32 rc = png_ptr->rgb_to_gray_red_coeff;
|
||||||
@@ -2343,7 +2375,8 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
|
|||||||
{
|
{
|
||||||
png_uint_16 red_1 = png_ptr->gamma_16_to_1[(red&0xff) >>
|
png_uint_16 red_1 = png_ptr->gamma_16_to_1[(red&0xff) >>
|
||||||
png_ptr->gamma_shift][red>>8];
|
png_ptr->gamma_shift][red>>8];
|
||||||
png_uint_16 green_1 = png_ptr->gamma_16_to_1[(green&0xff) >>
|
png_uint_16 green_1 =
|
||||||
|
png_ptr->gamma_16_to_1[(green&0xff) >>
|
||||||
png_ptr->gamma_shift][green>>8];
|
png_ptr->gamma_shift][green>>8];
|
||||||
png_uint_16 blue_1 = png_ptr->gamma_16_to_1[(blue&0xff) >>
|
png_uint_16 blue_1 = png_ptr->gamma_16_to_1[(blue&0xff) >>
|
||||||
png_ptr->gamma_shift][blue>>8];
|
png_ptr->gamma_shift][blue>>8];
|
||||||
@@ -2439,13 +2472,14 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
png_uint_16 red_1 = png_ptr->gamma_16_to_1[(red&0xff) >>
|
png_uint_16 red_1 = png_ptr->gamma_16_to_1[(red&0xff) >>
|
||||||
png_ptr->gamma_shift][red>>8];
|
png_ptr->gamma_shift][red>>8];
|
||||||
png_uint_16 green_1 = png_ptr->gamma_16_to_1[(green&0xff) >>
|
png_uint_16 green_1 =
|
||||||
png_ptr->gamma_shift][green>>8];
|
png_ptr->gamma_16_to_1[(green&0xff) >>
|
||||||
|
png_ptr->gamma_shift][green>>8];
|
||||||
png_uint_16 blue_1 = png_ptr->gamma_16_to_1[(blue&0xff) >>
|
png_uint_16 blue_1 = png_ptr->gamma_16_to_1[(blue&0xff) >>
|
||||||
png_ptr->gamma_shift][blue>>8];
|
png_ptr->gamma_shift][blue>>8];
|
||||||
png_uint_16 gray16 = (png_uint_16)((rc * red_1
|
png_uint_16 gray16 = (png_uint_16)((rc * red_1
|
||||||
+ gc * green_1 + bc * blue_1)>>15);
|
+ gc * green_1 + bc * blue_1)>>15);
|
||||||
w = png_ptr->gamma_16_from_1[(gray16&0xff) >>
|
w = png_ptr->gamma_16_from_1[(gray16&0xff) >>
|
||||||
png_ptr->gamma_shift][gray16 >> 8];
|
png_ptr->gamma_shift][gray16 >> 8];
|
||||||
rgb_error |= 1;
|
rgb_error |= 1;
|
||||||
@@ -2790,6 +2824,9 @@ png_do_background(png_row_infop row_info, png_bytep row,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -3222,6 +3259,9 @@ png_do_background(png_row_infop row_info, png_bytep row,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (row_info->color_type & PNG_COLOR_MASK_ALPHA)
|
if (row_info->color_type & PNG_COLOR_MASK_ALPHA)
|
||||||
@@ -3375,10 +3415,10 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
|
|||||||
int d = *sp & 0x03;
|
int d = *sp & 0x03;
|
||||||
|
|
||||||
*sp = (png_byte)(
|
*sp = (png_byte)(
|
||||||
((((int)gamma_table[a|(a>>2)|(a>>4)|(a>>6)]) ) & 0xc0)|
|
((((int)gamma_table[a|(a>>2)|(a>>4)|(a>>6)]) ) & 0xc0)|
|
||||||
((((int)gamma_table[(b<<2)|b|(b>>2)|(b>>4)])>>2) & 0x30)|
|
((((int)gamma_table[(b<<2)|b|(b>>2)|(b>>4)])>>2) & 0x30)|
|
||||||
((((int)gamma_table[(c<<4)|(c<<2)|c|(c>>2)])>>4) & 0x0c)|
|
((((int)gamma_table[(c<<4)|(c<<2)|c|(c>>2)])>>4) & 0x0c)|
|
||||||
((((int)gamma_table[(d<<6)|(d<<4)|(d<<2)|d])>>6) ));
|
((((int)gamma_table[(d<<6)|(d<<4)|(d<<2)|d])>>6) ));
|
||||||
sp++;
|
sp++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3392,7 +3432,7 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
|
|||||||
int lsb = *sp & 0x0f;
|
int lsb = *sp & 0x0f;
|
||||||
|
|
||||||
*sp = (png_byte)((((int)gamma_table[msb | (msb >> 4)]) & 0xf0)
|
*sp = (png_byte)((((int)gamma_table[msb | (msb >> 4)]) & 0xf0)
|
||||||
| (((int)gamma_table[(lsb << 4) | lsb]) >> 4));
|
| (((int)gamma_table[(lsb << 4) | lsb]) >> 4));
|
||||||
sp++;
|
sp++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3420,6 +3460,9 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3514,6 +3557,9 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
row_info->bit_depth = 8;
|
row_info->bit_depth = 8;
|
||||||
row_info->pixel_depth = 8;
|
row_info->pixel_depth = 8;
|
||||||
@@ -3664,6 +3710,9 @@ png_do_expand(png_row_infop row_info, png_bytep row,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
row_info->bit_depth = 8;
|
row_info->bit_depth = 8;
|
||||||
@@ -3782,16 +3831,16 @@ png_do_expand(png_row_infop row_info, png_bytep row,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_READ_DITHER_SUPPORTED
|
#ifdef PNG_READ_QUANTIZE_SUPPORTED
|
||||||
void /* PRIVATE */
|
void /* PRIVATE */
|
||||||
png_do_dither(png_row_infop row_info, png_bytep row,
|
png_do_quantize(png_row_infop row_info, png_bytep row,
|
||||||
png_bytep palette_lookup, png_bytep dither_lookup)
|
png_bytep palette_lookup, png_bytep quantize_lookup)
|
||||||
{
|
{
|
||||||
png_bytep sp, dp;
|
png_bytep sp, dp;
|
||||||
png_uint_32 i;
|
png_uint_32 i;
|
||||||
png_uint_32 row_width=row_info->width;
|
png_uint_32 row_width=row_info->width;
|
||||||
|
|
||||||
png_debug(1, "in png_do_dither");
|
png_debug(1, "in png_do_quantize");
|
||||||
|
|
||||||
{
|
{
|
||||||
if (row_info->color_type == PNG_COLOR_TYPE_RGB &&
|
if (row_info->color_type == PNG_COLOR_TYPE_RGB &&
|
||||||
@@ -3813,14 +3862,14 @@ png_do_dither(png_row_infop row_info, png_bytep row,
|
|||||||
* (((g >> 3) & 0x1f) << 5) |
|
* (((g >> 3) & 0x1f) << 5) |
|
||||||
* ((b >> 3) & 0x1f);
|
* ((b >> 3) & 0x1f);
|
||||||
*/
|
*/
|
||||||
p = (((r >> (8 - PNG_DITHER_RED_BITS)) &
|
p = (((r >> (8 - PNG_QUANTIZE_RED_BITS)) &
|
||||||
((1 << PNG_DITHER_RED_BITS) - 1)) <<
|
((1 << PNG_QUANTIZE_RED_BITS) - 1)) <<
|
||||||
(PNG_DITHER_GREEN_BITS + PNG_DITHER_BLUE_BITS)) |
|
(PNG_QUANTIZE_GREEN_BITS + PNG_QUANTIZE_BLUE_BITS)) |
|
||||||
(((g >> (8 - PNG_DITHER_GREEN_BITS)) &
|
(((g >> (8 - PNG_QUANTIZE_GREEN_BITS)) &
|
||||||
((1 << PNG_DITHER_GREEN_BITS) - 1)) <<
|
((1 << PNG_QUANTIZE_GREEN_BITS) - 1)) <<
|
||||||
(PNG_DITHER_BLUE_BITS)) |
|
(PNG_QUANTIZE_BLUE_BITS)) |
|
||||||
((b >> (8 - PNG_DITHER_BLUE_BITS)) &
|
((b >> (8 - PNG_QUANTIZE_BLUE_BITS)) &
|
||||||
((1 << PNG_DITHER_BLUE_BITS) - 1));
|
((1 << PNG_QUANTIZE_BLUE_BITS) - 1));
|
||||||
|
|
||||||
*dp++ = palette_lookup[p];
|
*dp++ = palette_lookup[p];
|
||||||
}
|
}
|
||||||
@@ -3842,14 +3891,14 @@ png_do_dither(png_row_infop row_info, png_bytep row,
|
|||||||
b = *sp++;
|
b = *sp++;
|
||||||
sp++;
|
sp++;
|
||||||
|
|
||||||
p = (((r >> (8 - PNG_DITHER_RED_BITS)) &
|
p = (((r >> (8 - PNG_QUANTIZE_RED_BITS)) &
|
||||||
((1 << PNG_DITHER_RED_BITS) - 1)) <<
|
((1 << PNG_QUANTIZE_RED_BITS) - 1)) <<
|
||||||
(PNG_DITHER_GREEN_BITS + PNG_DITHER_BLUE_BITS)) |
|
(PNG_QUANTIZE_GREEN_BITS + PNG_QUANTIZE_BLUE_BITS)) |
|
||||||
(((g >> (8 - PNG_DITHER_GREEN_BITS)) &
|
(((g >> (8 - PNG_QUANTIZE_GREEN_BITS)) &
|
||||||
((1 << PNG_DITHER_GREEN_BITS) - 1)) <<
|
((1 << PNG_QUANTIZE_GREEN_BITS) - 1)) <<
|
||||||
(PNG_DITHER_BLUE_BITS)) |
|
(PNG_QUANTIZE_BLUE_BITS)) |
|
||||||
((b >> (8 - PNG_DITHER_BLUE_BITS)) &
|
((b >> (8 - PNG_QUANTIZE_BLUE_BITS)) &
|
||||||
((1 << PNG_DITHER_BLUE_BITS) - 1));
|
((1 << PNG_QUANTIZE_BLUE_BITS) - 1));
|
||||||
|
|
||||||
*dp++ = palette_lookup[p];
|
*dp++ = palette_lookup[p];
|
||||||
}
|
}
|
||||||
@@ -3859,12 +3908,12 @@ png_do_dither(png_row_infop row_info, png_bytep row,
|
|||||||
row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width);
|
row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width);
|
||||||
}
|
}
|
||||||
else if (row_info->color_type == PNG_COLOR_TYPE_PALETTE &&
|
else if (row_info->color_type == PNG_COLOR_TYPE_PALETTE &&
|
||||||
dither_lookup && row_info->bit_depth == 8)
|
quantize_lookup && row_info->bit_depth == 8)
|
||||||
{
|
{
|
||||||
sp = row;
|
sp = row;
|
||||||
for (i = 0; i < row_width; i++, sp++)
|
for (i = 0; i < row_width; i++, sp++)
|
||||||
{
|
{
|
||||||
*sp = dither_lookup[*sp];
|
*sp = quantize_lookup[*sp];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
590
pngrutil.c
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* pngrutil.c - utilities to read a PNG file
|
/* pngrutil.c - utilities to read a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.10 [March 8, 2012]
|
||||||
* Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2012 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.)
|
||||||
*
|
*
|
||||||
@@ -23,50 +23,98 @@
|
|||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_get_uint_31(png_structp png_ptr, png_bytep buf)
|
png_get_uint_31(png_structp png_ptr, png_bytep buf)
|
||||||
{
|
{
|
||||||
png_uint_32 i = png_get_uint_32(buf);
|
png_uint_32 val = png_get_uint_32(buf);
|
||||||
if (i > PNG_UINT_31_MAX)
|
|
||||||
png_error(png_ptr, "PNG unsigned integer out of range");
|
|
||||||
return (i);
|
|
||||||
}
|
|
||||||
#ifndef PNG_USE_READ_MACROS
|
|
||||||
/* Grab an unsigned 32-bit integer from a buffer in big-endian format. */
|
|
||||||
png_uint_32 PNGAPI
|
|
||||||
png_get_uint_32(png_bytep buf)
|
|
||||||
{
|
|
||||||
png_uint_32 i = ((png_uint_32)(*buf) << 24) +
|
|
||||||
((png_uint_32)(*(buf + 1)) << 16) +
|
|
||||||
((png_uint_32)(*(buf + 2)) << 8) +
|
|
||||||
(png_uint_32)(*(buf + 3));
|
|
||||||
|
|
||||||
return (i);
|
if (val > PNG_UINT_31_MAX)
|
||||||
|
png_error(png_ptr, "PNG unsigned integer out of range");
|
||||||
|
return (val);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef PNG_USE_READ_MACROS
|
||||||
|
/* The parentheses around "PNGAPI function_name" in the following three
|
||||||
|
* functions are necessary because they allow the macros to co-exist with
|
||||||
|
* these (unused but exported) functions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Grab an unsigned 32-bit integer from a buffer in big-endian format. */
|
||||||
|
png_uint_32 (PNGAPI
|
||||||
|
png_get_uint_32)(png_bytep buf)
|
||||||
|
{
|
||||||
|
png_uint_32 uval = png_get_uint_32(buf);
|
||||||
|
if ((uval & 0x80000000L) == 0) /* non-negative */
|
||||||
|
return uval;
|
||||||
|
|
||||||
|
uval = (uval ^ 0xffffffffL) + 1; /* 2's complement: -x = ~x+1 */
|
||||||
|
return -(png_int_32)uval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Grab a signed 32-bit integer from a buffer in big-endian format. The
|
/* Grab a signed 32-bit integer from a buffer in big-endian format. The
|
||||||
* data is stored in the PNG file in two's complement format, and it is
|
* data is stored in the PNG file in two's complement format and there
|
||||||
* assumed that the machine format for signed integers is the same.
|
* is no guarantee that a 'png_int_32' is exactly 32 bits, therefore
|
||||||
|
* the following code does a two's complement to native conversion.
|
||||||
*/
|
*/
|
||||||
png_int_32 PNGAPI
|
png_int_32 (PNGAPI
|
||||||
png_get_int_32(png_bytep buf)
|
png_get_int_32)(png_bytep buf)
|
||||||
{
|
{
|
||||||
png_int_32 i = ((png_int_32)(*buf) << 24) +
|
png_uint_32 uval = png_get_uint_32(buf);
|
||||||
((png_int_32)(*(buf + 1)) << 16) +
|
if ((uval & 0x80000000L) == 0) /* non-negative */
|
||||||
((png_int_32)(*(buf + 2)) << 8) +
|
return uval;
|
||||||
(png_int_32)(*(buf + 3));
|
|
||||||
|
|
||||||
return (i);
|
uval = (uval ^ 0xffffffffL) + 1; /* 2's complement: -x = ~x+1 */
|
||||||
|
return -(png_int_32)uval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Grab an unsigned 16-bit integer from a buffer in big-endian format. */
|
/* Grab an unsigned 16-bit integer from a buffer in big-endian format. */
|
||||||
png_uint_16 PNGAPI
|
png_uint_16 (PNGAPI
|
||||||
png_get_uint_16(png_bytep buf)
|
png_get_uint_16)(png_bytep buf)
|
||||||
{
|
{
|
||||||
png_uint_16 i = (png_uint_16)(((png_uint_16)(*buf) << 8) +
|
/* ANSI-C requires an int value to accomodate at least 16 bits so this
|
||||||
(png_uint_16)(*(buf + 1)));
|
* works and allows the compiler not to worry about possible narrowing
|
||||||
|
* on 32 bit systems. (Pre-ANSI systems did not make integers smaller
|
||||||
|
* than 16 bits either.)
|
||||||
|
*/
|
||||||
|
unsigned int val =
|
||||||
|
((unsigned int)(*buf) << 8) +
|
||||||
|
((unsigned int)(*(buf + 1)));
|
||||||
|
|
||||||
return (i);
|
return (png_uint_16)val;
|
||||||
}
|
}
|
||||||
#endif /* PNG_USE_READ_MACROS */
|
#endif /* PNG_USE_READ_MACROS */
|
||||||
|
|
||||||
|
/* Read and check the PNG file signature */
|
||||||
|
void /* PRIVATE */
|
||||||
|
png_read_sig(png_structp png_ptr, png_infop info_ptr)
|
||||||
|
{
|
||||||
|
png_size_t num_checked, num_to_check;
|
||||||
|
|
||||||
|
/* Exit if the user application does not expect a signature. */
|
||||||
|
if (png_ptr->sig_bytes >= 8)
|
||||||
|
return;
|
||||||
|
|
||||||
|
num_checked = png_ptr->sig_bytes;
|
||||||
|
num_to_check = 8 - num_checked;
|
||||||
|
|
||||||
|
#ifdef PNG_IO_STATE_SUPPORTED
|
||||||
|
png_ptr->io_state = PNG_IO_READING | PNG_IO_SIGNATURE;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* The signature must be serialized in a single I/O call. */
|
||||||
|
png_read_data(png_ptr, &(info_ptr->signature[num_checked]), num_to_check);
|
||||||
|
png_ptr->sig_bytes = 8;
|
||||||
|
|
||||||
|
if (png_sig_cmp(info_ptr->signature, num_checked, num_to_check))
|
||||||
|
{
|
||||||
|
if (num_checked < 4 &&
|
||||||
|
png_sig_cmp(info_ptr->signature, num_checked, num_to_check - 4))
|
||||||
|
png_error(png_ptr, "Not a PNG file");
|
||||||
|
|
||||||
|
else
|
||||||
|
png_error(png_ptr, "PNG file corrupted by ASCII conversion");
|
||||||
|
}
|
||||||
|
if (num_checked < 3)
|
||||||
|
png_ptr->mode |= PNG_HAVE_PNG_SIGNATURE;
|
||||||
|
}
|
||||||
|
|
||||||
/* Read the chunk header (length + type name).
|
/* Read the chunk header (length + type name).
|
||||||
* Put the type name into png_ptr->chunk_name, and return the length.
|
* Put the type name into png_ptr->chunk_name, and return the length.
|
||||||
*/
|
*/
|
||||||
@@ -77,32 +125,31 @@ png_read_chunk_header(png_structp png_ptr)
|
|||||||
png_uint_32 length;
|
png_uint_32 length;
|
||||||
|
|
||||||
#ifdef PNG_IO_STATE_SUPPORTED
|
#ifdef PNG_IO_STATE_SUPPORTED
|
||||||
/* Inform the I/O callback that the chunk header is being read.
|
|
||||||
* PNG_IO_CHUNK_HDR requires a single I/O call.
|
|
||||||
*/
|
|
||||||
png_ptr->io_state = PNG_IO_READING | PNG_IO_CHUNK_HDR;
|
png_ptr->io_state = PNG_IO_READING | PNG_IO_CHUNK_HDR;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Read the length and the chunk name */
|
/* Read the length and the chunk name.
|
||||||
|
* This must be performed in a single I/O call.
|
||||||
|
*/
|
||||||
png_read_data(png_ptr, buf, 8);
|
png_read_data(png_ptr, buf, 8);
|
||||||
length = png_get_uint_31(png_ptr, buf);
|
length = png_get_uint_31(png_ptr, buf);
|
||||||
|
|
||||||
/* Put the chunk name into png_ptr->chunk_name */
|
/* Put the chunk name into png_ptr->chunk_name. */
|
||||||
png_memcpy(png_ptr->chunk_name, buf + 4, 4);
|
png_memcpy(png_ptr->chunk_name, buf + 4, 4);
|
||||||
|
|
||||||
png_debug2(0, "Reading %s chunk, length = %lu",
|
png_debug2(0, "Reading %s chunk, length = %lu",
|
||||||
png_ptr->chunk_name, length);
|
png_ptr->chunk_name, (unsigned long)length);
|
||||||
|
|
||||||
/* Reset the crc and run it over the chunk name */
|
/* Reset the crc and run it over the chunk name. */
|
||||||
png_reset_crc(png_ptr);
|
png_reset_crc(png_ptr);
|
||||||
png_calculate_crc(png_ptr, png_ptr->chunk_name, 4);
|
png_calculate_crc(png_ptr, png_ptr->chunk_name, 4);
|
||||||
|
|
||||||
/* Check to see if chunk name is valid */
|
/* Check to see if chunk name is valid. */
|
||||||
png_check_chunk_name(png_ptr, png_ptr->chunk_name);
|
png_check_chunk_name(png_ptr, png_ptr->chunk_name);
|
||||||
|
|
||||||
#ifdef PNG_IO_STATE_SUPPORTED
|
#ifdef PNG_IO_STATE_SUPPORTED
|
||||||
/* Inform the I/O callback that chunk data will (possibly) be read.
|
/* It is unspecified how many I/O calls will be performed
|
||||||
* PNG_IO_CHUNK_DATA does NOT require a specific number of I/O calls.
|
* during the serialization of the chunk data.
|
||||||
*/
|
*/
|
||||||
png_ptr->io_state = PNG_IO_READING | PNG_IO_CHUNK_DATA;
|
png_ptr->io_state = PNG_IO_READING | PNG_IO_CHUNK_DATA;
|
||||||
#endif
|
#endif
|
||||||
@@ -116,6 +163,7 @@ png_crc_read(png_structp png_ptr, png_bytep buf, png_size_t length)
|
|||||||
{
|
{
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
png_read_data(png_ptr, buf, length);
|
png_read_data(png_ptr, buf, length);
|
||||||
png_calculate_crc(png_ptr, buf, length);
|
png_calculate_crc(png_ptr, buf, length);
|
||||||
}
|
}
|
||||||
@@ -135,6 +183,7 @@ png_crc_finish(png_structp png_ptr, png_uint_32 skip)
|
|||||||
{
|
{
|
||||||
png_crc_read(png_ptr, png_ptr->zbuf, png_ptr->zbuf_size);
|
png_crc_read(png_ptr, png_ptr->zbuf, png_ptr->zbuf_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i)
|
if (i)
|
||||||
{
|
{
|
||||||
png_crc_read(png_ptr, png_ptr->zbuf, i);
|
png_crc_read(png_ptr, png_ptr->zbuf, i);
|
||||||
@@ -149,11 +198,13 @@ png_crc_finish(png_structp png_ptr, png_uint_32 skip)
|
|||||||
{
|
{
|
||||||
png_chunk_warning(png_ptr, "CRC error");
|
png_chunk_warning(png_ptr, "CRC error");
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
png_chunk_benign_error(png_ptr, "CRC error");
|
png_chunk_benign_error(png_ptr, "CRC error");
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,6 +227,7 @@ png_crc_error(png_structp png_ptr)
|
|||||||
(PNG_FLAG_CRC_ANCILLARY_USE | PNG_FLAG_CRC_ANCILLARY_NOWARN))
|
(PNG_FLAG_CRC_ANCILLARY_USE | PNG_FLAG_CRC_ANCILLARY_NOWARN))
|
||||||
need_crc = 0;
|
need_crc = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
else /* critical */
|
else /* critical */
|
||||||
{
|
{
|
||||||
if (png_ptr->flags & PNG_FLAG_CRC_CRITICAL_IGNORE)
|
if (png_ptr->flags & PNG_FLAG_CRC_CRITICAL_IGNORE)
|
||||||
@@ -183,11 +235,10 @@ png_crc_error(png_structp png_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PNG_IO_STATE_SUPPORTED
|
#ifdef PNG_IO_STATE_SUPPORTED
|
||||||
/* Inform the I/O callback that the chunk CRC is being read */
|
|
||||||
/* PNG_IO_CHUNK_CRC requires the I/O to be done at once */
|
|
||||||
png_ptr->io_state = PNG_IO_READING | PNG_IO_CHUNK_CRC;
|
png_ptr->io_state = PNG_IO_READING | PNG_IO_CHUNK_CRC;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* The chunk CRC must be serialized in a single I/O call. */
|
||||||
png_read_data(png_ptr, crc_bytes, 4);
|
png_read_data(png_ptr, crc_bytes, 4);
|
||||||
|
|
||||||
if (need_crc)
|
if (need_crc)
|
||||||
@@ -195,12 +246,107 @@ png_crc_error(png_structp png_ptr)
|
|||||||
crc = png_get_uint_32(crc_bytes);
|
crc = png_get_uint_32(crc_bytes);
|
||||||
return ((int)(crc != png_ptr->crc));
|
return ((int)(crc != png_ptr->crc));
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(PNG_READ_zTXt_SUPPORTED) || defined(PNG_READ_iTXt_SUPPORTED) || \
|
#if defined(PNG_READ_zTXt_SUPPORTED) || defined(PNG_READ_iTXt_SUPPORTED) || \
|
||||||
defined(PNG_READ_iCCP_SUPPORTED)
|
defined(PNG_READ_iCCP_SUPPORTED)
|
||||||
|
static png_size_t
|
||||||
|
png_inflate(png_structp png_ptr, const png_byte *data, png_size_t size,
|
||||||
|
png_bytep output, png_size_t output_size)
|
||||||
|
{
|
||||||
|
png_size_t count = 0;
|
||||||
|
|
||||||
|
png_ptr->zstream.next_in = (png_bytep)data; /* const_cast: VALID */
|
||||||
|
png_ptr->zstream.avail_in = size;
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
int ret, avail;
|
||||||
|
|
||||||
|
/* Reset the output buffer each time round - we empty it
|
||||||
|
* after every inflate call.
|
||||||
|
*/
|
||||||
|
png_ptr->zstream.next_out = png_ptr->zbuf;
|
||||||
|
png_ptr->zstream.avail_out = png_ptr->zbuf_size;
|
||||||
|
|
||||||
|
ret = inflate(&png_ptr->zstream, Z_NO_FLUSH);
|
||||||
|
avail = png_ptr->zbuf_size - png_ptr->zstream.avail_out;
|
||||||
|
|
||||||
|
/* First copy/count any new output - but only if we didn't
|
||||||
|
* get an error code.
|
||||||
|
*/
|
||||||
|
if ((ret == Z_OK || ret == Z_STREAM_END) && avail > 0)
|
||||||
|
{
|
||||||
|
if (output != 0 && output_size > count)
|
||||||
|
{
|
||||||
|
png_size_t copy = output_size - count;
|
||||||
|
if ((png_size_t) avail < copy) copy = (png_size_t) avail;
|
||||||
|
png_memcpy(output + count, png_ptr->zbuf, copy);
|
||||||
|
}
|
||||||
|
|
||||||
|
count += avail;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret == Z_OK)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* Termination conditions - always reset the zstream, it
|
||||||
|
* must be left in inflateInit state.
|
||||||
|
*/
|
||||||
|
png_ptr->zstream.avail_in = 0;
|
||||||
|
inflateReset(&png_ptr->zstream);
|
||||||
|
|
||||||
|
if (ret == Z_STREAM_END)
|
||||||
|
return count; /* NOTE: may be zero. */
|
||||||
|
|
||||||
|
/* Now handle the error codes - the API always returns 0
|
||||||
|
* and the error message is dumped into the uncompressed
|
||||||
|
* buffer if available.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
PNG_CONST char *msg;
|
||||||
|
if (png_ptr->zstream.msg != 0)
|
||||||
|
msg = png_ptr->zstream.msg;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
#ifdef PNG_STDIO_SUPPORTED
|
||||||
|
char umsg[52];
|
||||||
|
|
||||||
|
switch (ret)
|
||||||
|
{
|
||||||
|
case Z_BUF_ERROR:
|
||||||
|
msg = "Buffer error in compressed datastream in %s chunk";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Z_DATA_ERROR:
|
||||||
|
msg = "Data error in compressed datastream in %s chunk";
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
msg = "Incomplete compressed datastream in %s chunk";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
png_snprintf(umsg, sizeof umsg, msg, png_ptr->chunk_name);
|
||||||
|
msg = umsg;
|
||||||
|
#else
|
||||||
|
msg = "Damaged compressed datastream in chunk other than IDAT";
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
png_warning(png_ptr, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 0 means an error - notice that this code simple ignores
|
||||||
|
* zero length compressed chunks as a result.
|
||||||
|
*/
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Decompress trailing data in a chunk. The assumption is that chunkdata
|
* Decompress trailing data in a chunk. The assumption is that chunkdata
|
||||||
* points at an allocated area holding the contents of a chunk with a
|
* points at an allocated area holding the contents of a chunk with a
|
||||||
@@ -210,185 +356,112 @@ png_crc_error(png_structp png_ptr)
|
|||||||
*/
|
*/
|
||||||
void /* PRIVATE */
|
void /* PRIVATE */
|
||||||
png_decompress_chunk(png_structp png_ptr, int comp_type,
|
png_decompress_chunk(png_structp png_ptr, int comp_type,
|
||||||
png_size_t chunklength,
|
png_size_t chunklength,
|
||||||
png_size_t prefix_size, png_size_t *newlength)
|
png_size_t prefix_size, png_size_t *newlength)
|
||||||
{
|
{
|
||||||
static PNG_CONST char msg[] = "Error decoding compressed chunk";
|
/* The caller should guarantee this */
|
||||||
png_charp text;
|
if (prefix_size > chunklength)
|
||||||
png_size_t text_size;
|
|
||||||
|
|
||||||
if (comp_type == PNG_COMPRESSION_TYPE_BASE)
|
|
||||||
{
|
{
|
||||||
int ret = Z_OK;
|
/* The recovery is to delete the chunk. */
|
||||||
png_ptr->zstream.next_in = (png_bytep)(png_ptr->chunkdata + prefix_size);
|
png_warning(png_ptr, "invalid chunklength");
|
||||||
png_ptr->zstream.avail_in = (uInt)(chunklength - prefix_size);
|
prefix_size = 0; /* To delete everything */
|
||||||
png_ptr->zstream.next_out = png_ptr->zbuf;
|
}
|
||||||
png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
|
|
||||||
|
|
||||||
text_size = 0;
|
else if (comp_type == PNG_COMPRESSION_TYPE_BASE)
|
||||||
text = NULL;
|
{
|
||||||
|
png_size_t expanded_size = png_inflate(png_ptr,
|
||||||
|
(png_bytep)(png_ptr->chunkdata + prefix_size),
|
||||||
|
chunklength - prefix_size,
|
||||||
|
0/*output*/, 0/*output size*/);
|
||||||
|
|
||||||
while (png_ptr->zstream.avail_in)
|
/* Now check the limits on this chunk - if the limit fails the
|
||||||
{
|
* compressed data will be removed, the prefix will remain.
|
||||||
ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH);
|
*/
|
||||||
if (ret != Z_OK && ret != Z_STREAM_END)
|
if (prefix_size >= (~(png_size_t)0) - 1 ||
|
||||||
{
|
expanded_size >= (~(png_size_t)0) - 1 - prefix_size
|
||||||
if (png_ptr->zstream.msg != NULL)
|
#ifdef PNG_USER_LIMITS_SUPPORTED
|
||||||
png_warning(png_ptr, png_ptr->zstream.msg);
|
|| (png_ptr->user_chunk_malloc_max &&
|
||||||
else
|
(prefix_size + expanded_size >= png_ptr->user_chunk_malloc_max - 1))
|
||||||
png_warning(png_ptr, msg);
|
#else
|
||||||
inflateReset(&png_ptr->zstream);
|
|| ((PNG_USER_CHUNK_MALLOC_MAX > 0) &&
|
||||||
png_ptr->zstream.avail_in = 0;
|
prefix_size + expanded_size >= PNG_USER_CHUNK_MALLOC_MAX - 1)
|
||||||
|
|
||||||
if (text == NULL)
|
|
||||||
{
|
|
||||||
text_size = prefix_size + png_sizeof(msg) + 1;
|
|
||||||
text = (png_charp)png_malloc_warn(png_ptr, text_size);
|
|
||||||
if (text == NULL)
|
|
||||||
{
|
|
||||||
png_free(png_ptr, png_ptr->chunkdata);
|
|
||||||
png_ptr->chunkdata = NULL;
|
|
||||||
png_error(png_ptr, "Not enough memory to decompress chunk");
|
|
||||||
}
|
|
||||||
png_memcpy(text, png_ptr->chunkdata, prefix_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
text[text_size - 1] = 0x00;
|
|
||||||
|
|
||||||
/* Copy what we can of the error message into the text chunk */
|
|
||||||
text_size = (png_size_t)(chunklength -
|
|
||||||
(text - png_ptr->chunkdata) - 1);
|
|
||||||
if (text_size > png_sizeof(msg))
|
|
||||||
text_size = png_sizeof(msg);
|
|
||||||
png_memcpy(text + prefix_size, msg, text_size);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (!png_ptr->zstream.avail_out || ret == Z_STREAM_END)
|
|
||||||
{
|
|
||||||
if (text == NULL)
|
|
||||||
{
|
|
||||||
text_size = prefix_size +
|
|
||||||
png_ptr->zbuf_size - png_ptr->zstream.avail_out;
|
|
||||||
text = (png_charp)png_malloc_warn(png_ptr, text_size + 1);
|
|
||||||
if (text == NULL)
|
|
||||||
{
|
|
||||||
png_free(png_ptr, png_ptr->chunkdata);
|
|
||||||
png_ptr->chunkdata = NULL;
|
|
||||||
png_error(png_ptr,
|
|
||||||
"Not enough memory to decompress chunk");
|
|
||||||
}
|
|
||||||
png_memcpy(text + prefix_size, png_ptr->zbuf,
|
|
||||||
text_size - prefix_size);
|
|
||||||
png_memcpy(text, png_ptr->chunkdata, prefix_size);
|
|
||||||
*(text + text_size) = 0x00;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
png_charp tmp;
|
|
||||||
|
|
||||||
tmp = text;
|
|
||||||
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
|
||||||
if ((png_ptr->user_chunk_cache_max != 0) &&
|
|
||||||
(--png_ptr->user_chunk_cache_max == 0))
|
|
||||||
{
|
|
||||||
png_warning(png_ptr, "No space in chunk cache");
|
|
||||||
text = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
|
||||||
#endif
|
#endif
|
||||||
text = (png_charp)png_malloc_warn(png_ptr,
|
)
|
||||||
(png_size_t)(text_size +
|
png_warning(png_ptr, "Exceeded size limit while expanding chunk");
|
||||||
png_ptr->zbuf_size - png_ptr->zstream.avail_out + 1));
|
|
||||||
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
/* If the size is zero either there was an error and a message
|
||||||
}
|
* has already been output (warning) or the size really is zero
|
||||||
#endif
|
* and we have nothing to do - the code will exit through the
|
||||||
if (text == NULL)
|
* error case below.
|
||||||
{
|
*/
|
||||||
png_free(png_ptr, tmp);
|
else if (expanded_size > 0)
|
||||||
png_free(png_ptr, png_ptr->chunkdata);
|
|
||||||
png_ptr->chunkdata = NULL;
|
|
||||||
png_error(png_ptr,
|
|
||||||
"Not enough memory to decompress chunk");
|
|
||||||
}
|
|
||||||
png_memcpy(text, tmp, text_size);
|
|
||||||
png_free(png_ptr, tmp);
|
|
||||||
png_memcpy(text + text_size, png_ptr->zbuf,
|
|
||||||
(png_ptr->zbuf_size - png_ptr->zstream.avail_out));
|
|
||||||
text_size += png_ptr->zbuf_size - png_ptr->zstream.avail_out;
|
|
||||||
*(text + text_size) = 0x00;
|
|
||||||
}
|
|
||||||
if (ret == Z_STREAM_END)
|
|
||||||
break;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
png_ptr->zstream.next_out = png_ptr->zbuf;
|
|
||||||
png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ret != Z_STREAM_END)
|
|
||||||
{
|
{
|
||||||
#ifdef PNG_STDIO_SUPPORTED
|
/* Success (maybe) - really uncompress the chunk. */
|
||||||
char umsg[52];
|
png_size_t new_size = 0;
|
||||||
|
png_charp text = png_malloc_warn(png_ptr,
|
||||||
|
prefix_size + expanded_size + 1);
|
||||||
|
|
||||||
if (ret == Z_BUF_ERROR)
|
if (text != NULL)
|
||||||
png_snprintf(umsg, 52,
|
{
|
||||||
"Buffer error in compressed datastream in %s chunk",
|
png_memcpy(text, png_ptr->chunkdata, prefix_size);
|
||||||
png_ptr->chunk_name);
|
new_size = png_inflate(png_ptr,
|
||||||
|
(png_bytep)(png_ptr->chunkdata + prefix_size),
|
||||||
|
chunklength - prefix_size,
|
||||||
|
(png_bytep)(text + prefix_size), expanded_size);
|
||||||
|
text[prefix_size + expanded_size] = 0; /* just in case */
|
||||||
|
|
||||||
else if (ret == Z_DATA_ERROR)
|
if (new_size == expanded_size)
|
||||||
png_snprintf(umsg, 52,
|
{
|
||||||
"Data error in compressed datastream in %s chunk",
|
png_free(png_ptr, png_ptr->chunkdata);
|
||||||
png_ptr->chunk_name);
|
png_ptr->chunkdata = text;
|
||||||
|
*newlength = prefix_size + expanded_size;
|
||||||
|
return; /* The success return! */
|
||||||
|
}
|
||||||
|
|
||||||
|
png_warning(png_ptr, "png_inflate logic error");
|
||||||
|
png_free(png_ptr, text);
|
||||||
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
png_snprintf(umsg, 52,
|
png_warning(png_ptr, "Not enough memory to decompress chunk");
|
||||||
"Incomplete compressed datastream in %s chunk",
|
|
||||||
png_ptr->chunk_name);
|
|
||||||
|
|
||||||
png_warning(png_ptr, umsg);
|
|
||||||
#else
|
|
||||||
png_warning(png_ptr,
|
|
||||||
"Incomplete compressed datastream in chunk other than IDAT");
|
|
||||||
#endif
|
|
||||||
text_size = prefix_size;
|
|
||||||
if (text == NULL)
|
|
||||||
{
|
|
||||||
text = (png_charp)png_malloc_warn(png_ptr, text_size+1);
|
|
||||||
if (text == NULL)
|
|
||||||
{
|
|
||||||
png_free(png_ptr, png_ptr->chunkdata);
|
|
||||||
png_ptr->chunkdata = NULL;
|
|
||||||
png_error(png_ptr, "Not enough memory for text");
|
|
||||||
}
|
|
||||||
png_memcpy(text, png_ptr->chunkdata, prefix_size);
|
|
||||||
}
|
|
||||||
*(text + text_size) = 0x00;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inflateReset(&png_ptr->zstream);
|
|
||||||
png_ptr->zstream.avail_in = 0;
|
|
||||||
|
|
||||||
png_free(png_ptr, png_ptr->chunkdata);
|
|
||||||
png_ptr->chunkdata = text;
|
|
||||||
*newlength=text_size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else /* if (comp_type != PNG_COMPRESSION_TYPE_BASE) */
|
else /* if (comp_type != PNG_COMPRESSION_TYPE_BASE) */
|
||||||
{
|
{
|
||||||
#ifdef PNG_STDIO_SUPPORTED
|
#ifdef PNG_STDIO_SUPPORTED
|
||||||
char umsg[50];
|
char umsg[50];
|
||||||
|
|
||||||
png_snprintf(umsg, 50, "Unknown zTXt compression type %d", comp_type);
|
png_snprintf(umsg, sizeof umsg, "Unknown zTXt compression type %d",
|
||||||
|
comp_type);
|
||||||
png_warning(png_ptr, umsg);
|
png_warning(png_ptr, umsg);
|
||||||
#else
|
#else
|
||||||
png_warning(png_ptr, "Unknown zTXt compression type");
|
png_warning(png_ptr, "Unknown zTXt compression type");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
*(png_ptr->chunkdata + prefix_size) = 0x00;
|
/* The recovery is to simply drop the data. */
|
||||||
*newlength = prefix_size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Generic error return - leave the prefix, delete the compressed
|
||||||
|
* data, reallocate the chunkdata to remove the potentially large
|
||||||
|
* amount of compressed data.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
png_charp text = png_malloc_warn(png_ptr, prefix_size + 1);
|
||||||
|
if (text != NULL)
|
||||||
|
{
|
||||||
|
if (prefix_size > 0)
|
||||||
|
png_memcpy(text, png_ptr->chunkdata, prefix_size);
|
||||||
|
png_free(png_ptr, png_ptr->chunkdata);
|
||||||
|
png_ptr->chunkdata = text;
|
||||||
|
|
||||||
|
/* This is an extra zero in the 'uncompressed' part. */
|
||||||
|
*(png_ptr->chunkdata + prefix_size) = 0x00;
|
||||||
|
}
|
||||||
|
/* Ignore a malloc error here - it is safe. */
|
||||||
|
}
|
||||||
|
|
||||||
|
*newlength = prefix_size;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -627,7 +700,7 @@ png_handle_IEND(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
}
|
}
|
||||||
png_crc_finish(png_ptr, length);
|
png_crc_finish(png_ptr, length);
|
||||||
|
|
||||||
info_ptr = info_ptr; /* Quiet compiler warnings about unused info_ptr */
|
PNG_UNUSED(info_ptr) /* Quiet compiler warnings about unused info_ptr */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PNG_READ_gAMA_SUPPORTED
|
#ifdef PNG_READ_gAMA_SUPPORTED
|
||||||
@@ -879,9 +952,11 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
green_x, green_y, blue_x, blue_y);
|
green_x, green_y, blue_x, blue_y);
|
||||||
#else
|
#else
|
||||||
fprintf(stderr, "wx=%ld, wy=%ld, rx=%ld, ry=%ld\n",
|
fprintf(stderr, "wx=%ld, wy=%ld, rx=%ld, ry=%ld\n",
|
||||||
int_x_white, int_y_white, int_x_red, int_y_red);
|
(long)int_x_white, (long)int_y_white,
|
||||||
|
(long)int_x_red, (long)int_y_red);
|
||||||
fprintf(stderr, "gx=%ld, gy=%ld, bx=%ld, by=%ld\n",
|
fprintf(stderr, "gx=%ld, gy=%ld, bx=%ld, by=%ld\n",
|
||||||
int_x_green, int_y_green, int_x_blue, int_y_blue);
|
(long)int_x_green, (long)int_y_green,
|
||||||
|
(long)int_x_blue, (long)int_y_blue);
|
||||||
#endif
|
#endif
|
||||||
#endif /* PNG_CONSOLE_IO_SUPPORTED */
|
#endif /* PNG_CONSOLE_IO_SUPPORTED */
|
||||||
}
|
}
|
||||||
@@ -1106,9 +1181,21 @@ png_handle_iCCP(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
|
|
||||||
if (profile_size > profile_length)
|
if (profile_size > profile_length)
|
||||||
{
|
{
|
||||||
|
#ifdef PNG_STDIO_SUPPORTED
|
||||||
|
char umsg[50];
|
||||||
|
#endif
|
||||||
png_free(png_ptr, png_ptr->chunkdata);
|
png_free(png_ptr, png_ptr->chunkdata);
|
||||||
png_ptr->chunkdata = NULL;
|
png_ptr->chunkdata = NULL;
|
||||||
png_warning(png_ptr, "Ignoring truncated iCCP profile");
|
png_warning(png_ptr, "Ignoring truncated iCCP profile");
|
||||||
|
#ifdef PNG_STDIO_SUPPORTED
|
||||||
|
|
||||||
|
png_snprintf(umsg, 50, "declared profile size = %lu",
|
||||||
|
(unsigned long)profile_size);
|
||||||
|
png_warning(png_ptr, umsg);
|
||||||
|
png_snprintf(umsg, 50, "actual profile length = %lu",
|
||||||
|
(unsigned long)profile_length);
|
||||||
|
png_warning(png_ptr, umsg);
|
||||||
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1126,16 +1213,14 @@ 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
|
|
||||||
int data_length, entry_size, i;
|
int data_length, entry_size, i;
|
||||||
png_uint_32 skip = 0;
|
png_uint_32 skip = 0;
|
||||||
png_size_t slength;
|
png_size_t slength;
|
||||||
|
|
||||||
png_debug(1, "in png_handle_sPLT");
|
png_debug(1, "in png_handle_sPLT");
|
||||||
|
|
||||||
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
#ifdef PNG_USER_LIMITS_SUPPORTED
|
||||||
|
|
||||||
if (png_ptr->user_chunk_cache_max != 0)
|
if (png_ptr->user_chunk_cache_max != 0)
|
||||||
{
|
{
|
||||||
@@ -1173,7 +1258,7 @@ png_handle_sPLT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
|
|
||||||
png_free(png_ptr, png_ptr->chunkdata);
|
png_free(png_ptr, png_ptr->chunkdata);
|
||||||
png_ptr->chunkdata = (png_charp)png_malloc(png_ptr, length + 1);
|
png_ptr->chunkdata = (png_charp)png_malloc(png_ptr, length + 1);
|
||||||
slength = (png_size_t)length;
|
slength = length;
|
||||||
png_crc_read(png_ptr, (png_bytep)png_ptr->chunkdata, slength);
|
png_crc_read(png_ptr, (png_bytep)png_ptr->chunkdata, slength);
|
||||||
|
|
||||||
if (png_crc_finish(png_ptr, skip))
|
if (png_crc_finish(png_ptr, skip))
|
||||||
@@ -1185,7 +1270,8 @@ png_handle_sPLT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
|
|
||||||
png_ptr->chunkdata[slength] = 0x00;
|
png_ptr->chunkdata[slength] = 0x00;
|
||||||
|
|
||||||
for (entry_start = (png_bytep)png_ptr->chunkdata; *entry_start; entry_start++)
|
for (entry_start = (png_bytep)png_ptr->chunkdata; *entry_start;
|
||||||
|
entry_start++)
|
||||||
/* Empty loop to find end of name */ ;
|
/* Empty loop to find end of name */ ;
|
||||||
++entry_start;
|
++entry_start;
|
||||||
|
|
||||||
@@ -1266,7 +1352,7 @@ png_handle_sPLT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
pp[i].blue = png_get_uint_16(entry_start); entry_start += 2;
|
pp[i].blue = png_get_uint_16(entry_start); entry_start += 2;
|
||||||
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->frequency = png_get_uint_16(entry_start); entry_start += 2;
|
pp[i].frequency = png_get_uint_16(entry_start); entry_start += 2;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1495,15 +1581,16 @@ png_handle_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
num = length / 2 ;
|
if (length > 2*PNG_MAX_PALETTE_LENGTH ||
|
||||||
if (num != (unsigned int) png_ptr->num_palette || num >
|
length != (unsigned int) (2*png_ptr->num_palette))
|
||||||
(unsigned int) PNG_MAX_PALETTE_LENGTH)
|
|
||||||
{
|
{
|
||||||
png_warning(png_ptr, "Incorrect hIST chunk length");
|
png_warning(png_ptr, "Incorrect hIST chunk length");
|
||||||
png_crc_finish(png_ptr, length);
|
png_crc_finish(png_ptr, length);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
num = length / 2 ;
|
||||||
|
|
||||||
for (i = 0; i < num; i++)
|
for (i = 0; i < num; i++)
|
||||||
{
|
{
|
||||||
png_byte buf[2];
|
png_byte buf[2];
|
||||||
@@ -1635,7 +1722,7 @@ png_handle_pCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
}
|
}
|
||||||
|
|
||||||
png_debug1(2, "Allocating and reading pCAL chunk data (%lu bytes)",
|
png_debug1(2, "Allocating and reading pCAL chunk data (%lu bytes)",
|
||||||
length + 1);
|
(unsigned long)(length + 1));
|
||||||
png_free(png_ptr, png_ptr->chunkdata);
|
png_free(png_ptr, png_ptr->chunkdata);
|
||||||
png_ptr->chunkdata = (png_charp)png_malloc_warn(png_ptr, length + 1);
|
png_ptr->chunkdata = (png_charp)png_malloc_warn(png_ptr, length + 1);
|
||||||
if (png_ptr->chunkdata == NULL)
|
if (png_ptr->chunkdata == NULL)
|
||||||
@@ -1772,12 +1859,21 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Need unit type, width, \0, height: minimum 4 bytes */
|
||||||
|
else if (length < 4)
|
||||||
|
{
|
||||||
|
png_warning(png_ptr, "sCAL chunk too short");
|
||||||
|
png_crc_finish(png_ptr, length);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
png_debug1(2, "Allocating and reading sCAL chunk data (%lu bytes)",
|
png_debug1(2, "Allocating and reading sCAL chunk data (%lu bytes)",
|
||||||
length + 1);
|
(unsigned long)(length + 1));
|
||||||
png_ptr->chunkdata = (png_charp)png_malloc_warn(png_ptr, length + 1);
|
png_ptr->chunkdata = (png_charp)png_malloc_warn(png_ptr, length + 1);
|
||||||
if (png_ptr->chunkdata == NULL)
|
if (png_ptr->chunkdata == NULL)
|
||||||
{
|
{
|
||||||
png_warning(png_ptr, "Out of memory while processing sCAL chunk");
|
png_warning(png_ptr, "Out of memory while processing sCAL chunk");
|
||||||
|
png_crc_finish(png_ptr, length);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
slength = (png_size_t)length;
|
slength = (png_size_t)length;
|
||||||
@@ -1799,6 +1895,8 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
if (*vp)
|
if (*vp)
|
||||||
{
|
{
|
||||||
png_warning(png_ptr, "malformed width string in sCAL chunk");
|
png_warning(png_ptr, "malformed width string in sCAL chunk");
|
||||||
|
png_free(png_ptr, png_ptr->chunkdata);
|
||||||
|
png_ptr->chunkdata = NULL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
@@ -1807,21 +1905,22 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
if (swidth == NULL)
|
if (swidth == NULL)
|
||||||
{
|
{
|
||||||
png_warning(png_ptr, "Out of memory while processing sCAL chunk width");
|
png_warning(png_ptr, "Out of memory while processing sCAL chunk width");
|
||||||
|
png_free(png_ptr, png_ptr->chunkdata);
|
||||||
|
png_ptr->chunkdata = NULL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
png_memcpy(swidth, ep, png_strlen(ep));
|
png_memcpy(swidth, ep, png_strlen(ep)+1);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (ep = png_ptr->chunkdata; *ep; ep++)
|
for (ep = png_ptr->chunkdata+1; *ep; ep++)
|
||||||
/* Empty loop */ ;
|
/* Empty loop */ ;
|
||||||
ep++;
|
ep++;
|
||||||
|
|
||||||
if (png_ptr->chunkdata + slength < ep)
|
if (png_ptr->chunkdata + slength < ep)
|
||||||
{
|
{
|
||||||
png_warning(png_ptr, "Truncated sCAL chunk");
|
png_warning(png_ptr, "Truncated sCAL chunk");
|
||||||
#if defined(PNG_FIXED_POINT_SUPPORTED) && \
|
#if defined(PNG_FIXED_POINT_SUPPORTED) && !defined(PNG_FLOATING_POINT_SUPPORTED)
|
||||||
!defined(PNG_FLOATING_POINT_SUPPORTED)
|
|
||||||
png_free(png_ptr, swidth);
|
png_free(png_ptr, swidth);
|
||||||
#endif
|
#endif
|
||||||
png_free(png_ptr, png_ptr->chunkdata);
|
png_free(png_ptr, png_ptr->chunkdata);
|
||||||
@@ -1834,6 +1933,8 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
if (*vp)
|
if (*vp)
|
||||||
{
|
{
|
||||||
png_warning(png_ptr, "malformed height string in sCAL chunk");
|
png_warning(png_ptr, "malformed height string in sCAL chunk");
|
||||||
|
png_free(png_ptr, png_ptr->chunkdata);
|
||||||
|
png_ptr->chunkdata = NULL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
@@ -1842,9 +1943,12 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
if (sheight == NULL)
|
if (sheight == NULL)
|
||||||
{
|
{
|
||||||
png_warning(png_ptr, "Out of memory while processing sCAL chunk height");
|
png_warning(png_ptr, "Out of memory while processing sCAL chunk height");
|
||||||
|
png_free(png_ptr, png_ptr->chunkdata);
|
||||||
|
png_ptr->chunkdata = NULL;
|
||||||
|
png_free(png_ptr, swidth);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
png_memcpy(sheight, ep, png_strlen(ep));
|
png_memcpy(sheight, ep, png_strlen(ep)+1);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1939,7 +2043,7 @@ png_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
|
|
||||||
png_debug(1, "in png_handle_tEXt");
|
png_debug(1, "in png_handle_tEXt");
|
||||||
|
|
||||||
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
#ifdef PNG_USER_LIMITS_SUPPORTED
|
||||||
if (png_ptr->user_chunk_cache_max != 0)
|
if (png_ptr->user_chunk_cache_max != 0)
|
||||||
{
|
{
|
||||||
if (png_ptr->user_chunk_cache_max == 1)
|
if (png_ptr->user_chunk_cache_max == 1)
|
||||||
@@ -2041,7 +2145,7 @@ png_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
|
|
||||||
png_debug(1, "in png_handle_zTXt");
|
png_debug(1, "in png_handle_zTXt");
|
||||||
|
|
||||||
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
#ifdef PNG_USER_LIMITS_SUPPORTED
|
||||||
if (png_ptr->user_chunk_cache_max != 0)
|
if (png_ptr->user_chunk_cache_max != 0)
|
||||||
{
|
{
|
||||||
if (png_ptr->user_chunk_cache_max == 1)
|
if (png_ptr->user_chunk_cache_max == 1)
|
||||||
@@ -2162,7 +2266,7 @@ png_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
|
|
||||||
png_debug(1, "in png_handle_iTXt");
|
png_debug(1, "in png_handle_iTXt");
|
||||||
|
|
||||||
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
#ifdef PNG_USER_LIMITS_SUPPORTED
|
||||||
if (png_ptr->user_chunk_cache_max != 0)
|
if (png_ptr->user_chunk_cache_max != 0)
|
||||||
{
|
{
|
||||||
if (png_ptr->user_chunk_cache_max == 1)
|
if (png_ptr->user_chunk_cache_max == 1)
|
||||||
@@ -2306,7 +2410,7 @@ png_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
|
|
||||||
png_debug(1, "in png_handle_unknown");
|
png_debug(1, "in png_handle_unknown");
|
||||||
|
|
||||||
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
#ifdef PNG_USER_LIMITS_SUPPORTED
|
||||||
if (png_ptr->user_chunk_cache_max != 0)
|
if (png_ptr->user_chunk_cache_max != 0)
|
||||||
{
|
{
|
||||||
if (png_ptr->user_chunk_cache_max == 1)
|
if (png_ptr->user_chunk_cache_max == 1)
|
||||||
@@ -2361,7 +2465,8 @@ png_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
png_memcpy((png_charp)png_ptr->unknown_chunk.name,
|
png_memcpy((png_charp)png_ptr->unknown_chunk.name,
|
||||||
(png_charp)png_ptr->chunk_name,
|
(png_charp)png_ptr->chunk_name,
|
||||||
png_sizeof(png_ptr->unknown_chunk.name));
|
png_sizeof(png_ptr->unknown_chunk.name));
|
||||||
png_ptr->unknown_chunk.name[png_sizeof(png_ptr->unknown_chunk.name)-1] = '\0';
|
png_ptr->unknown_chunk.name[png_sizeof(png_ptr->unknown_chunk.name)-1]
|
||||||
|
= '\0';
|
||||||
png_ptr->unknown_chunk.size = (png_size_t)length;
|
png_ptr->unknown_chunk.size = (png_size_t)length;
|
||||||
if (length == 0)
|
if (length == 0)
|
||||||
png_ptr->unknown_chunk.data = NULL;
|
png_ptr->unknown_chunk.data = NULL;
|
||||||
@@ -2404,7 +2509,7 @@ png_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
|||||||
png_crc_finish(png_ptr, skip);
|
png_crc_finish(png_ptr, skip);
|
||||||
|
|
||||||
#ifndef PNG_READ_USER_CHUNKS_SUPPORTED
|
#ifndef PNG_READ_USER_CHUNKS_SUPPORTED
|
||||||
info_ptr = info_ptr; /* Quiet compiler warnings about unused info_ptr */
|
PNG_UNUSED(info_ptr) /* Quiet compiler warnings about unused info_ptr */
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2833,7 +2938,8 @@ png_do_read_interlace(png_structp png_ptr)
|
|||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
png_size_t pixel_bytes = (row_info->pixel_depth >> 3);
|
png_size_t pixel_bytes = (row_info->pixel_depth >> 3);
|
||||||
png_bytep sp = row + (png_size_t)(row_info->width - 1) * pixel_bytes;
|
png_bytep sp = row + (png_size_t)(row_info->width - 1)
|
||||||
|
* pixel_bytes;
|
||||||
png_bytep dp = row + (png_size_t)(final_width - 1) * pixel_bytes;
|
png_bytep dp = row + (png_size_t)(final_width - 1) * pixel_bytes;
|
||||||
|
|
||||||
int jstop = png_pass_inc[pass];
|
int jstop = png_pass_inc[pass];
|
||||||
@@ -2859,7 +2965,7 @@ png_do_read_interlace(png_structp png_ptr)
|
|||||||
row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, final_width);
|
row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, final_width);
|
||||||
}
|
}
|
||||||
#ifndef PNG_READ_PACKSWAP_SUPPORTED
|
#ifndef PNG_READ_PACKSWAP_SUPPORTED
|
||||||
transformations = transformations; /* Silence compiler warning */
|
PNG_UNUSED(transformations) /* Silence compiler warning */
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif /* PNG_READ_INTERLACING_SUPPORTED */
|
#endif /* PNG_READ_INTERLACING_SUPPORTED */
|
||||||
@@ -2869,7 +2975,8 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep row,
|
|||||||
png_bytep prev_row, int filter)
|
png_bytep prev_row, int filter)
|
||||||
{
|
{
|
||||||
png_debug(1, "in png_read_filter_row");
|
png_debug(1, "in png_read_filter_row");
|
||||||
png_debug2(2, "row = %lu, filter = %d", png_ptr->row_number, filter);
|
png_debug2(2, "row = %lu, filter = %d",
|
||||||
|
(unsigned long)png_ptr->row_number, filter);
|
||||||
switch (filter)
|
switch (filter)
|
||||||
{
|
{
|
||||||
case PNG_FILTER_VALUE_NONE:
|
case PNG_FILTER_VALUE_NONE:
|
||||||
@@ -3028,9 +3135,6 @@ png_read_finish_row(png_structp png_ptr)
|
|||||||
png_pass_start[png_ptr->pass]) /
|
png_pass_start[png_ptr->pass]) /
|
||||||
png_pass_inc[png_ptr->pass];
|
png_pass_inc[png_ptr->pass];
|
||||||
|
|
||||||
png_ptr->irowbytes = PNG_ROWBYTES(png_ptr->pixel_depth,
|
|
||||||
png_ptr->iwidth) + 1;
|
|
||||||
|
|
||||||
if (!(png_ptr->transformations & PNG_INTERLACE))
|
if (!(png_ptr->transformations & PNG_INTERLACE))
|
||||||
{
|
{
|
||||||
png_ptr->num_rows = (png_ptr->height +
|
png_ptr->num_rows = (png_ptr->height +
|
||||||
@@ -3063,17 +3167,10 @@ png_read_finish_row(png_structp png_ptr)
|
|||||||
{
|
{
|
||||||
while (!png_ptr->idat_size)
|
while (!png_ptr->idat_size)
|
||||||
{
|
{
|
||||||
png_byte chunk_length[4];
|
|
||||||
|
|
||||||
png_crc_finish(png_ptr, 0);
|
png_crc_finish(png_ptr, 0);
|
||||||
|
png_ptr->idat_size = png_read_chunk_header(png_ptr);
|
||||||
png_read_data(png_ptr, chunk_length, 4);
|
|
||||||
png_ptr->idat_size = png_get_uint_31(png_ptr, chunk_length);
|
|
||||||
png_reset_crc(png_ptr);
|
|
||||||
png_crc_read(png_ptr, png_ptr->chunk_name, 4);
|
|
||||||
if (png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
|
if (png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
|
||||||
png_error(png_ptr, "Not enough image data");
|
png_error(png_ptr, "Not enough image data");
|
||||||
|
|
||||||
}
|
}
|
||||||
png_ptr->zstream.avail_in = (uInt)png_ptr->zbuf_size;
|
png_ptr->zstream.avail_in = (uInt)png_ptr->zbuf_size;
|
||||||
png_ptr->zstream.next_in = png_ptr->zbuf;
|
png_ptr->zstream.next_in = png_ptr->zbuf;
|
||||||
@@ -3155,16 +3252,12 @@ png_read_start_row(png_structp png_ptr)
|
|||||||
png_pass_inc[png_ptr->pass] - 1 -
|
png_pass_inc[png_ptr->pass] - 1 -
|
||||||
png_pass_start[png_ptr->pass]) /
|
png_pass_start[png_ptr->pass]) /
|
||||||
png_pass_inc[png_ptr->pass];
|
png_pass_inc[png_ptr->pass];
|
||||||
|
|
||||||
png_ptr->irowbytes =
|
|
||||||
PNG_ROWBYTES(png_ptr->pixel_depth, png_ptr->iwidth) + 1;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif /* PNG_READ_INTERLACING_SUPPORTED */
|
#endif /* PNG_READ_INTERLACING_SUPPORTED */
|
||||||
{
|
{
|
||||||
png_ptr->num_rows = png_ptr->height;
|
png_ptr->num_rows = png_ptr->height;
|
||||||
png_ptr->iwidth = png_ptr->width;
|
png_ptr->iwidth = png_ptr->width;
|
||||||
png_ptr->irowbytes = png_ptr->rowbytes + 1;
|
|
||||||
}
|
}
|
||||||
max_pixel_depth = png_ptr->pixel_depth;
|
max_pixel_depth = png_ptr->pixel_depth;
|
||||||
|
|
||||||
@@ -3324,12 +3417,13 @@ defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)
|
|||||||
|
|
||||||
png_memset(png_ptr->prev_row, 0, png_ptr->rowbytes + 1);
|
png_memset(png_ptr->prev_row, 0, png_ptr->rowbytes + 1);
|
||||||
|
|
||||||
png_debug1(3, "width = %lu,", png_ptr->width);
|
png_debug1(3, "width = %lu,", (unsigned long)png_ptr->width);
|
||||||
png_debug1(3, "height = %lu,", png_ptr->height);
|
png_debug1(3, "height = %lu,", (unsigned long)png_ptr->height);
|
||||||
png_debug1(3, "iwidth = %lu,", png_ptr->iwidth);
|
png_debug1(3, "iwidth = %lu,", (unsigned long)png_ptr->iwidth);
|
||||||
png_debug1(3, "num_rows = %lu,", png_ptr->num_rows);
|
png_debug1(3, "num_rows = %lu,", (unsigned long)png_ptr->num_rows);
|
||||||
png_debug1(3, "rowbytes = %lu,", png_ptr->rowbytes);
|
png_debug1(3, "rowbytes = %lu,", (unsigned long)png_ptr->rowbytes);
|
||||||
png_debug1(3, "irowbytes = %lu", png_ptr->irowbytes);
|
png_debug1(3, "irowbytes = %lu",
|
||||||
|
(unsigned long)PNG_ROWBYTES(png_ptr->pixel_depth, png_ptr->iwidth) + 1);
|
||||||
|
|
||||||
png_ptr->flags |= PNG_FLAG_ROW_INIT;
|
png_ptr->flags |= PNG_FLAG_ROW_INIT;
|
||||||
}
|
}
|
||||||
|
|||||||
56
pngset.c
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* pngset.c - storage of image information into info struct
|
/* pngset.c - storage of image information into info struct
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.11 [March 29, 2012]
|
||||||
* Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2012 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.)
|
||||||
*
|
*
|
||||||
@@ -649,22 +649,26 @@ png_set_text_2(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr,
|
|||||||
*/
|
*/
|
||||||
if (info_ptr->num_text + num_text > info_ptr->max_text)
|
if (info_ptr->num_text + num_text > info_ptr->max_text)
|
||||||
{
|
{
|
||||||
|
int old_max_text = info_ptr->max_text;
|
||||||
|
int old_num_text = info_ptr->num_text;
|
||||||
|
|
||||||
if (info_ptr->text != NULL)
|
if (info_ptr->text != NULL)
|
||||||
{
|
{
|
||||||
png_textp old_text;
|
png_textp old_text;
|
||||||
int old_max;
|
|
||||||
|
|
||||||
old_max = info_ptr->max_text;
|
|
||||||
info_ptr->max_text = info_ptr->num_text + num_text + 8;
|
info_ptr->max_text = info_ptr->num_text + num_text + 8;
|
||||||
old_text = info_ptr->text;
|
old_text = info_ptr->text;
|
||||||
|
|
||||||
info_ptr->text = (png_textp)png_malloc_warn(png_ptr,
|
info_ptr->text = (png_textp)png_malloc_warn(png_ptr,
|
||||||
(png_size_t)(info_ptr->max_text * png_sizeof(png_text)));
|
(png_size_t)(info_ptr->max_text * png_sizeof(png_text)));
|
||||||
if (info_ptr->text == NULL)
|
if (info_ptr->text == NULL)
|
||||||
{
|
{
|
||||||
png_free(png_ptr, old_text);
|
/* Restore to previous condition */
|
||||||
|
info_ptr->max_text = old_max_text;
|
||||||
|
info_ptr->text = old_text;
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
png_memcpy(info_ptr->text, old_text, (png_size_t)(old_max *
|
png_memcpy(info_ptr->text, old_text, (png_size_t)(old_max_text *
|
||||||
png_sizeof(png_text)));
|
png_sizeof(png_text)));
|
||||||
png_free(png_ptr, old_text);
|
png_free(png_ptr, old_text);
|
||||||
}
|
}
|
||||||
@@ -675,7 +679,12 @@ png_set_text_2(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr,
|
|||||||
info_ptr->text = (png_textp)png_malloc_warn(png_ptr,
|
info_ptr->text = (png_textp)png_malloc_warn(png_ptr,
|
||||||
(png_size_t)(info_ptr->max_text * png_sizeof(png_text)));
|
(png_size_t)(info_ptr->max_text * png_sizeof(png_text)));
|
||||||
if (info_ptr->text == NULL)
|
if (info_ptr->text == NULL)
|
||||||
|
{
|
||||||
|
/* Restore to previous condition */
|
||||||
|
info_ptr->num_text = old_num_text;
|
||||||
|
info_ptr->max_text = old_max_text;
|
||||||
return(1);
|
return(1);
|
||||||
|
}
|
||||||
info_ptr->free_me |= PNG_FREE_TEXT;
|
info_ptr->free_me |= PNG_FREE_TEXT;
|
||||||
}
|
}
|
||||||
png_debug1(3, "allocated %d entries for info_ptr->text",
|
png_debug1(3, "allocated %d entries for info_ptr->text",
|
||||||
@@ -690,6 +699,13 @@ png_set_text_2(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr,
|
|||||||
if (text_ptr[i].key == NULL)
|
if (text_ptr[i].key == NULL)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (text_ptr[i].compression < PNG_TEXT_COMPRESSION_NONE ||
|
||||||
|
text_ptr[i].compression >= PNG_TEXT_COMPRESSION_LAST)
|
||||||
|
{
|
||||||
|
png_warning(png_ptr, "text compression mode is out of range");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
key_len = png_strlen(text_ptr[i].key);
|
key_len = png_strlen(text_ptr[i].key);
|
||||||
|
|
||||||
if (text_ptr[i].compression <= 0)
|
if (text_ptr[i].compression <= 0)
|
||||||
@@ -1004,7 +1020,7 @@ png_set_unknown_chunk_location(png_structp png_ptr, png_infop info_ptr,
|
|||||||
|
|
||||||
#ifdef PNG_MNG_FEATURES_SUPPORTED
|
#ifdef PNG_MNG_FEATURES_SUPPORTED
|
||||||
png_uint_32 PNGAPI
|
png_uint_32 PNGAPI
|
||||||
png_permit_mng_features (png_structp png_ptr, png_uint_32 mng_features)
|
png_permit_mng_features(png_structp png_ptr, png_uint_32 mng_features)
|
||||||
{
|
{
|
||||||
png_debug(1, "in png_permit_mng_features");
|
png_debug(1, "in png_permit_mng_features");
|
||||||
|
|
||||||
@@ -1093,7 +1109,6 @@ png_set_rows(png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_WRITE_SUPPORTED
|
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
png_set_compression_buffer_size(png_structp png_ptr,
|
png_set_compression_buffer_size(png_structp png_ptr,
|
||||||
png_size_t size)
|
png_size_t size)
|
||||||
@@ -1106,7 +1121,6 @@ png_set_compression_buffer_size(png_structp png_ptr,
|
|||||||
png_ptr->zstream.next_out = png_ptr->zbuf;
|
png_ptr->zstream.next_out = png_ptr->zbuf;
|
||||||
png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
|
png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
png_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask)
|
png_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask)
|
||||||
@@ -1120,7 +1134,7 @@ png_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask)
|
|||||||
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
||||||
/* This function was added to libpng 1.2.6 */
|
/* This function was added to libpng 1.2.6 */
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
png_set_user_limits (png_structp png_ptr, png_uint_32 user_width_max,
|
png_set_user_limits(png_structp png_ptr, png_uint_32 user_width_max,
|
||||||
png_uint_32 user_height_max)
|
png_uint_32 user_height_max)
|
||||||
{
|
{
|
||||||
/* Images with dimensions larger than these limits will be
|
/* Images with dimensions larger than these limits will be
|
||||||
@@ -1132,18 +1146,24 @@ png_set_user_limits (png_structp png_ptr, png_uint_32 user_width_max,
|
|||||||
png_ptr->user_width_max = user_width_max;
|
png_ptr->user_width_max = user_width_max;
|
||||||
png_ptr->user_height_max = user_height_max;
|
png_ptr->user_height_max = user_height_max;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This function was added to libpng 1.4.0 */
|
/* This function was added to libpng 1.4.0 */
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
png_set_chunk_cache_max (png_structp png_ptr,
|
png_set_chunk_cache_max(png_structp png_ptr,
|
||||||
png_uint_32 user_chunk_cache_max)
|
png_uint_32 user_chunk_cache_max)
|
||||||
{
|
{
|
||||||
if (png_ptr == NULL)
|
if (png_ptr)
|
||||||
return;
|
png_ptr->user_chunk_cache_max = user_chunk_cache_max;
|
||||||
png_ptr->user_chunk_cache_max = user_chunk_cache_max;
|
}
|
||||||
if (user_chunk_cache_max == 0x7fffffffL) /* Unlimited */
|
|
||||||
png_ptr->user_chunk_cache_max = 0;
|
/* This function was added to libpng 1.4.1 */
|
||||||
else
|
void PNGAPI
|
||||||
png_ptr->user_chunk_cache_max = user_chunk_cache_max + 1;
|
png_set_chunk_malloc_max(png_structp png_ptr,
|
||||||
|
png_alloc_size_t user_chunk_malloc_max)
|
||||||
|
{
|
||||||
|
if (png_ptr)
|
||||||
|
png_ptr->user_chunk_malloc_max =
|
||||||
|
(png_size_t)user_chunk_malloc_max;
|
||||||
}
|
}
|
||||||
#endif /* ?PNG_SET_USER_LIMITS_SUPPORTED */
|
#endif /* ?PNG_SET_USER_LIMITS_SUPPORTED */
|
||||||
|
|
||||||
|
|||||||
179
pngtest.c
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* pngtest.c - a simple test program to test libpng
|
/* pngtest.c - a simple test program to test libpng
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.8 [July 7, 2011]
|
||||||
* Copyright (c) 1998-2010 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.)
|
||||||
*
|
*
|
||||||
@@ -31,8 +31,13 @@
|
|||||||
* of files at once by typing "pngtest -m file1.png file2.png ..."
|
* of files at once by typing "pngtest -m file1.png file2.png ..."
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "zlib.h"
|
||||||
#include "png.h"
|
#include "png.h"
|
||||||
#include "pngpriv.h"
|
|
||||||
|
/* Copied from pngpriv.h but only used in error messages below. */
|
||||||
|
#ifndef PNG_ZBUF_SIZE
|
||||||
|
# define PNG_ZBUF_SIZE 8192
|
||||||
|
#endif
|
||||||
|
|
||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
# include <stdlib.h>
|
# include <stdlib.h>
|
||||||
@@ -47,6 +52,16 @@
|
|||||||
# define PNG_DEBUG 0
|
# define PNG_DEBUG 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if PNG_DEBUG > 1
|
||||||
|
# define pngtest_debug(m) ((void)fprintf(stderr, m "\n"))
|
||||||
|
# define pngtest_debug1(m,p1) ((void)fprintf(stderr, m "\n", p1))
|
||||||
|
# define pngtest_debug2(m,p1,p2) ((void)fprintf(stderr, m "\n", p1, p2))
|
||||||
|
#else
|
||||||
|
# define pngtest_debug(m) ((void)0)
|
||||||
|
# define pngtest_debug1(m,p1) ((void)0)
|
||||||
|
# define pngtest_debug2(m,p1,p2) ((void)0)
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !PNG_DEBUG
|
#if !PNG_DEBUG
|
||||||
# define SINGLE_ROWBUF_ALLOC /* Makes buffer overruns easier to nail */
|
# define SINGLE_ROWBUF_ALLOC /* Makes buffer overruns easier to nail */
|
||||||
#endif
|
#endif
|
||||||
@@ -263,6 +278,48 @@ static int wrote_question = 0;
|
|||||||
* than changing the library.
|
* than changing the library.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef PNG_IO_STATE_SUPPORTED
|
||||||
|
void
|
||||||
|
pngtest_check_io_state(png_structp png_ptr, png_size_t data_length,
|
||||||
|
png_uint_32 io_op);
|
||||||
|
void
|
||||||
|
pngtest_check_io_state(png_structp png_ptr, png_size_t data_length,
|
||||||
|
png_uint_32 io_op)
|
||||||
|
{
|
||||||
|
png_uint_32 io_state = png_get_io_state(png_ptr);
|
||||||
|
int err = 0;
|
||||||
|
|
||||||
|
/* Check if the current operation (reading / writing) is as expected. */
|
||||||
|
if ((io_state & PNG_IO_MASK_OP) != io_op)
|
||||||
|
png_error(png_ptr, "Incorrect operation in I/O state");
|
||||||
|
|
||||||
|
/* Check if the buffer size specific to the current location
|
||||||
|
* (file signature / header / data / crc) is as expected.
|
||||||
|
*/
|
||||||
|
switch (io_state & PNG_IO_MASK_LOC)
|
||||||
|
{
|
||||||
|
case PNG_IO_SIGNATURE:
|
||||||
|
if (data_length > 8)
|
||||||
|
err = 1;
|
||||||
|
break;
|
||||||
|
case PNG_IO_CHUNK_HDR:
|
||||||
|
if (data_length != 8)
|
||||||
|
err = 1;
|
||||||
|
break;
|
||||||
|
case PNG_IO_CHUNK_DATA:
|
||||||
|
break; /* no restrictions here */
|
||||||
|
case PNG_IO_CHUNK_CRC:
|
||||||
|
if (data_length != 4)
|
||||||
|
err = 1;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
err = 1; /* uninitialized */
|
||||||
|
}
|
||||||
|
if (err)
|
||||||
|
png_error(png_ptr, "Bad I/O state or buffer size");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef USE_FAR_KEYWORD
|
#ifndef USE_FAR_KEYWORD
|
||||||
static void
|
static void
|
||||||
pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
|
pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
|
||||||
@@ -281,8 +338,12 @@ pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
|
|||||||
|
|
||||||
if (check != length)
|
if (check != length)
|
||||||
{
|
{
|
||||||
png_error(png_ptr, "Read Error!");
|
png_error(png_ptr, "Read Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef PNG_IO_STATE_SUPPORTED
|
||||||
|
pngtest_check_io_state(png_ptr, length, PNG_IO_READING);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
/* This is the model-independent version. Since the standard I/O library
|
/* This is the model-independent version. Since the standard I/O library
|
||||||
@@ -302,7 +363,7 @@ pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
|
|||||||
|
|
||||||
/* Check if data really is near. If so, use usual code. */
|
/* Check if data really is near. If so, use usual code. */
|
||||||
n_data = (png_byte *)CVT_PTR_NOCHECK(data);
|
n_data = (png_byte *)CVT_PTR_NOCHECK(data);
|
||||||
io_ptr = (png_FILE_p)CVT_PTR(png_ptr->io_ptr);
|
io_ptr = (png_FILE_p)CVT_PTR(png_get_io_ptr(png_ptr));
|
||||||
if ((png_bytep)n_data == data)
|
if ((png_bytep)n_data == data)
|
||||||
{
|
{
|
||||||
check = fread(n_data, 1, length, io_ptr);
|
check = fread(n_data, 1, length, io_ptr);
|
||||||
@@ -328,7 +389,11 @@ pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
|
|||||||
while (remaining != 0);
|
while (remaining != 0);
|
||||||
}
|
}
|
||||||
if (check != length)
|
if (check != length)
|
||||||
png_error(png_ptr, "read Error");
|
png_error(png_ptr, "Read Error");
|
||||||
|
|
||||||
|
#ifdef PNG_IO_STATE_SUPPORTED
|
||||||
|
pngtest_check_io_state(png_ptr, length, PNG_IO_READING);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif /* USE_FAR_KEYWORD */
|
#endif /* USE_FAR_KEYWORD */
|
||||||
|
|
||||||
@@ -337,7 +402,7 @@ static void
|
|||||||
pngtest_flush(png_structp png_ptr)
|
pngtest_flush(png_structp png_ptr)
|
||||||
{
|
{
|
||||||
/* Do nothing; fflush() is said to be just a waste of energy. */
|
/* Do nothing; fflush() is said to be just a waste of energy. */
|
||||||
png_ptr = png_ptr; /* Stifle compiler warning */
|
PNG_UNUSED(png_ptr) /* Stifle compiler warning */
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -351,12 +416,18 @@ static void
|
|||||||
pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
|
pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
|
||||||
{
|
{
|
||||||
png_size_t check;
|
png_size_t check;
|
||||||
|
png_FILE_p io_ptr;
|
||||||
|
io_ptr = (png_FILE_p)CVT_PTR(png_get_io_ptr(png_ptr));
|
||||||
|
|
||||||
check = fwrite(data, 1, length, (png_FILE_p)png_ptr->io_ptr);
|
check = fwrite(data, 1, length, io_ptr);
|
||||||
if (check != length)
|
if (check != length)
|
||||||
{
|
{
|
||||||
png_error(png_ptr, "Write Error");
|
png_error(png_ptr, "Write Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef PNG_IO_STATE_SUPPORTED
|
||||||
|
pngtest_check_io_state(png_ptr, length, PNG_IO_WRITING);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
/* This is the model-independent version. Since the standard I/O library
|
/* This is the model-independent version. Since the standard I/O library
|
||||||
@@ -405,6 +476,10 @@ pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
|
|||||||
{
|
{
|
||||||
png_error(png_ptr, "Write Error");
|
png_error(png_ptr, "Write Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef PNG_IO_STATE_SUPPORTED
|
||||||
|
pngtest_check_io_state(png_ptr, length, PNG_IO_WRITING);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif /* USE_FAR_KEYWORD */
|
#endif /* USE_FAR_KEYWORD */
|
||||||
|
|
||||||
@@ -467,16 +542,16 @@ static int maximum_allocation = 0;
|
|||||||
static int total_allocation = 0;
|
static int total_allocation = 0;
|
||||||
static int num_allocations = 0;
|
static int num_allocations = 0;
|
||||||
|
|
||||||
png_voidp png_debug_malloc
|
png_voidp pngtest_debug_malloc
|
||||||
PNGARG((png_structp png_ptr, png_alloc_size_t size));
|
PNGARG((png_structp png_ptr, png_alloc_size_t size));
|
||||||
void png_debug_free PNGARG((png_structp png_ptr, png_voidp ptr));
|
void pngtest_debug_free PNGARG((png_structp png_ptr, png_voidp ptr));
|
||||||
|
|
||||||
png_voidp
|
png_voidp
|
||||||
png_debug_malloc(png_structp png_ptr, png_alloc_size_t size)
|
pngtest_debug_malloc(png_structp png_ptr, png_alloc_size_t size)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* png_malloc has already tested for NULL; png_create_struct calls
|
/* png_malloc has already tested for NULL; png_create_struct calls
|
||||||
* png_debug_malloc directly, with png_ptr == NULL which is OK
|
* pngtest_debug_malloc directly, with png_ptr == NULL which is OK
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (size == 0)
|
if (size == 0)
|
||||||
@@ -499,13 +574,13 @@ png_debug_malloc(png_structp png_ptr, png_alloc_size_t size)
|
|||||||
pinfo->pointer = png_malloc(png_ptr, size);
|
pinfo->pointer = png_malloc(png_ptr, size);
|
||||||
/* Restore malloc_fn and free_fn */
|
/* Restore malloc_fn and free_fn */
|
||||||
png_set_mem_fn(png_ptr,
|
png_set_mem_fn(png_ptr,
|
||||||
NULL, png_debug_malloc, png_debug_free);
|
NULL, pngtest_debug_malloc, pngtest_debug_free);
|
||||||
if (size != 0 && pinfo->pointer == NULL)
|
if (size != 0 && pinfo->pointer == NULL)
|
||||||
{
|
{
|
||||||
current_allocation -= size;
|
current_allocation -= size;
|
||||||
total_allocation -= size;
|
total_allocation -= size;
|
||||||
png_error(png_ptr,
|
png_error(png_ptr,
|
||||||
"out of memory in pngtest->png_debug_malloc");
|
"out of memory in pngtest->pngtest_debug_malloc");
|
||||||
}
|
}
|
||||||
pinfo->next = pinformation;
|
pinfo->next = pinformation;
|
||||||
pinformation = pinfo;
|
pinformation = pinfo;
|
||||||
@@ -520,10 +595,10 @@ png_debug_malloc(png_structp png_ptr, png_alloc_size_t size)
|
|||||||
|
|
||||||
/* Free a pointer. It is removed from the list at the same time. */
|
/* Free a pointer. It is removed from the list at the same time. */
|
||||||
void
|
void
|
||||||
png_debug_free(png_structp png_ptr, png_voidp ptr)
|
pngtest_debug_free(png_structp png_ptr, png_voidp ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
fprintf(STDERR, "NULL pointer to png_debug_free.\n");
|
fprintf(STDERR, "NULL pointer to pngtest_debug_free.\n");
|
||||||
if (ptr == 0)
|
if (ptr == 0)
|
||||||
{
|
{
|
||||||
#if 0 /* This happens all the time. */
|
#if 0 /* This happens all the time. */
|
||||||
@@ -682,12 +757,12 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
png_debug(0, "Allocating read and write structures");
|
pngtest_debug("Allocating read and write structures");
|
||||||
#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG
|
#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG
|
||||||
read_ptr =
|
read_ptr =
|
||||||
png_create_read_struct_2(PNG_LIBPNG_VER_STRING, NULL,
|
png_create_read_struct_2(PNG_LIBPNG_VER_STRING, NULL,
|
||||||
NULL, NULL, NULL,
|
NULL, NULL, NULL,
|
||||||
(png_malloc_ptr)png_debug_malloc, (png_free_ptr)png_debug_free);
|
(png_malloc_ptr)pngtest_debug_malloc, (png_free_ptr)pngtest_debug_free);
|
||||||
#else
|
#else
|
||||||
read_ptr =
|
read_ptr =
|
||||||
png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
|
png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
|
||||||
@@ -710,7 +785,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG
|
#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG
|
||||||
write_ptr =
|
write_ptr =
|
||||||
png_create_write_struct_2(PNG_LIBPNG_VER_STRING, NULL,
|
png_create_write_struct_2(PNG_LIBPNG_VER_STRING, NULL,
|
||||||
NULL, NULL, NULL, png_debug_malloc, png_debug_free);
|
NULL, NULL, NULL, pngtest_debug_malloc, pngtest_debug_free);
|
||||||
#else
|
#else
|
||||||
write_ptr =
|
write_ptr =
|
||||||
png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
|
png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
|
||||||
@@ -720,7 +795,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
pngtest_warning);
|
pngtest_warning);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
png_debug(0, "Allocating read_info, write_info and end_info structures");
|
pngtest_debug("Allocating read_info, write_info and end_info structures");
|
||||||
read_info_ptr = png_create_info_struct(read_ptr);
|
read_info_ptr = png_create_info_struct(read_ptr);
|
||||||
end_info_ptr = png_create_info_struct(read_ptr);
|
end_info_ptr = png_create_info_struct(read_ptr);
|
||||||
#ifdef PNG_WRITE_SUPPORTED
|
#ifdef PNG_WRITE_SUPPORTED
|
||||||
@@ -729,7 +804,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_SETJMP_SUPPORTED
|
#ifdef PNG_SETJMP_SUPPORTED
|
||||||
png_debug(0, "Setting jmpbuf for read struct");
|
pngtest_debug("Setting jmpbuf for read struct");
|
||||||
#ifdef USE_FAR_KEYWORD
|
#ifdef USE_FAR_KEYWORD
|
||||||
if (setjmp(jmpbuf))
|
if (setjmp(jmpbuf))
|
||||||
#else
|
#else
|
||||||
@@ -753,7 +828,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_WRITE_SUPPORTED
|
#ifdef PNG_WRITE_SUPPORTED
|
||||||
png_debug(0, "Setting jmpbuf for write struct");
|
pngtest_debug("Setting jmpbuf for write struct");
|
||||||
#ifdef USE_FAR_KEYWORD
|
#ifdef USE_FAR_KEYWORD
|
||||||
if (setjmp(jmpbuf))
|
if (setjmp(jmpbuf))
|
||||||
#else
|
#else
|
||||||
@@ -776,7 +851,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
png_debug(0, "Initializing input and output streams");
|
pngtest_debug("Initializing input and output streams");
|
||||||
#ifdef PNG_STDIO_SUPPORTED
|
#ifdef PNG_STDIO_SUPPORTED
|
||||||
png_init_io(read_ptr, fpin);
|
png_init_io(read_ptr, fpin);
|
||||||
# ifdef PNG_WRITE_SUPPORTED
|
# ifdef PNG_WRITE_SUPPORTED
|
||||||
@@ -836,10 +911,10 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
NULL, 0);
|
NULL, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
png_debug(0, "Reading info struct");
|
pngtest_debug("Reading info struct");
|
||||||
png_read_info(read_ptr, read_info_ptr);
|
png_read_info(read_ptr, read_info_ptr);
|
||||||
|
|
||||||
png_debug(0, "Transferring info struct");
|
pngtest_debug("Transferring info struct");
|
||||||
{
|
{
|
||||||
int interlace_type, compression_type, filter_type;
|
int interlace_type, compression_type, filter_type;
|
||||||
|
|
||||||
@@ -859,8 +934,8 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
{
|
{
|
||||||
png_fixed_point white_x, white_y, red_x, red_y, green_x, green_y, blue_x,
|
png_fixed_point white_x, white_y, red_x, red_y, green_x, green_y, blue_x,
|
||||||
blue_y;
|
blue_y;
|
||||||
if (png_get_cHRM_fixed(read_ptr, read_info_ptr, &white_x, &white_y, &red_x,
|
if (png_get_cHRM_fixed(read_ptr, read_info_ptr, &white_x, &white_y,
|
||||||
&red_y, &green_x, &green_y, &blue_x, &blue_y))
|
&red_x, &red_y, &green_x, &green_y, &blue_x, &blue_y))
|
||||||
{
|
{
|
||||||
png_set_cHRM_fixed(write_ptr, write_info_ptr, white_x, white_y, red_x,
|
png_set_cHRM_fixed(write_ptr, write_info_ptr, white_x, white_y, red_x,
|
||||||
red_y, green_x, green_y, blue_x, blue_y);
|
red_y, green_x, green_y, blue_x, blue_y);
|
||||||
@@ -1012,7 +1087,8 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
if (png_get_sCAL_s(read_ptr, read_info_ptr, &unit, &scal_width,
|
if (png_get_sCAL_s(read_ptr, read_info_ptr, &unit, &scal_width,
|
||||||
&scal_height))
|
&scal_height))
|
||||||
{
|
{
|
||||||
png_set_sCAL_s(write_ptr, write_info_ptr, unit, scal_width, scal_height);
|
png_set_sCAL_s(write_ptr, write_info_ptr, unit, scal_width,
|
||||||
|
scal_height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -1025,7 +1101,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
|
|
||||||
if (png_get_text(read_ptr, read_info_ptr, &text_ptr, &num_text) > 0)
|
if (png_get_text(read_ptr, read_info_ptr, &text_ptr, &num_text) > 0)
|
||||||
{
|
{
|
||||||
png_debug1(0, "Handling %d iTXt/tEXt/zTXt chunks", num_text);
|
pngtest_debug1("Handling %d iTXt/tEXt/zTXt chunks", num_text);
|
||||||
png_set_text(write_ptr, write_info_ptr, text_ptr, num_text);
|
png_set_text(write_ptr, write_info_ptr, text_ptr, num_text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1095,7 +1171,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_WRITE_SUPPORTED
|
#ifdef PNG_WRITE_SUPPORTED
|
||||||
png_debug(0, "Writing info struct");
|
pngtest_debug("Writing info struct");
|
||||||
|
|
||||||
/* If we wanted, we could write info in two steps:
|
/* If we wanted, we could write info in two steps:
|
||||||
* png_write_info_before_PLTE(write_ptr, write_info_ptr);
|
* png_write_info_before_PLTE(write_ptr, write_info_ptr);
|
||||||
@@ -1138,12 +1214,12 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef SINGLE_ROWBUF_ALLOC
|
#ifdef SINGLE_ROWBUF_ALLOC
|
||||||
png_debug(0, "Allocating row buffer...");
|
pngtest_debug("Allocating row buffer...");
|
||||||
row_buf = (png_bytep)png_malloc(read_ptr,
|
row_buf = (png_bytep)png_malloc(read_ptr,
|
||||||
png_get_rowbytes(read_ptr, read_info_ptr));
|
png_get_rowbytes(read_ptr, read_info_ptr));
|
||||||
png_debug1(0, "0x%08lx", (unsigned long)row_buf);
|
pngtest_debug1("0x%08lx", (unsigned long)row_buf);
|
||||||
#endif /* SINGLE_ROWBUF_ALLOC */
|
#endif /* SINGLE_ROWBUF_ALLOC */
|
||||||
png_debug(0, "Writing row data");
|
pngtest_debug("Writing row data");
|
||||||
|
|
||||||
#if defined(PNG_READ_INTERLACING_SUPPORTED) || \
|
#if defined(PNG_READ_INTERLACING_SUPPORTED) || \
|
||||||
defined(PNG_WRITE_INTERLACING_SUPPORTED)
|
defined(PNG_WRITE_INTERLACING_SUPPORTED)
|
||||||
@@ -1162,14 +1238,14 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
#endif
|
#endif
|
||||||
for (pass = 0; pass < num_pass; pass++)
|
for (pass = 0; pass < num_pass; pass++)
|
||||||
{
|
{
|
||||||
png_debug1(0, "Writing row data for pass %d", pass);
|
pngtest_debug1("Writing row data for pass %d", pass);
|
||||||
for (y = 0; y < height; y++)
|
for (y = 0; y < height; y++)
|
||||||
{
|
{
|
||||||
#ifndef SINGLE_ROWBUF_ALLOC
|
#ifndef SINGLE_ROWBUF_ALLOC
|
||||||
png_debug2(0, "Allocating row buffer (pass %d, y = %ld)...", pass, y);
|
pngtest_debug2("Allocating row buffer (pass %d, y = %ld)...", pass, y);
|
||||||
row_buf = (png_bytep)png_malloc(read_ptr,
|
row_buf = (png_bytep)png_malloc(read_ptr,
|
||||||
png_get_rowbytes(read_ptr, read_info_ptr));
|
png_get_rowbytes(read_ptr, read_info_ptr));
|
||||||
png_debug2(0, "0x%08lx (%ld bytes)", (unsigned long)row_buf,
|
pngtest_debug2("0x%08lx (%ld bytes)", (unsigned long)row_buf,
|
||||||
png_get_rowbytes(read_ptr, read_info_ptr));
|
png_get_rowbytes(read_ptr, read_info_ptr));
|
||||||
#endif /* !SINGLE_ROWBUF_ALLOC */
|
#endif /* !SINGLE_ROWBUF_ALLOC */
|
||||||
png_read_rows(read_ptr, (png_bytepp)&row_buf, NULL, 1);
|
png_read_rows(read_ptr, (png_bytepp)&row_buf, NULL, 1);
|
||||||
@@ -1189,7 +1265,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
#endif /* PNG_WRITE_SUPPORTED */
|
#endif /* PNG_WRITE_SUPPORTED */
|
||||||
|
|
||||||
#ifndef SINGLE_ROWBUF_ALLOC
|
#ifndef SINGLE_ROWBUF_ALLOC
|
||||||
png_debug2(0, "Freeing row buffer (pass %d, y = %ld)", pass, y);
|
pngtest_debug2("Freeing row buffer (pass %d, y = %ld)", pass, y);
|
||||||
png_free(read_ptr, row_buf);
|
png_free(read_ptr, row_buf);
|
||||||
row_buf = NULL;
|
row_buf = NULL;
|
||||||
#endif /* !SINGLE_ROWBUF_ALLOC */
|
#endif /* !SINGLE_ROWBUF_ALLOC */
|
||||||
@@ -1203,7 +1279,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
png_free_data(write_ptr, write_info_ptr, PNG_FREE_UNKN, -1);
|
png_free_data(write_ptr, write_info_ptr, PNG_FREE_UNKN, -1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
png_debug(0, "Reading and writing end_info data");
|
pngtest_debug("Reading and writing end_info data");
|
||||||
|
|
||||||
png_read_end(read_ptr, end_info_ptr);
|
png_read_end(read_ptr, end_info_ptr);
|
||||||
#ifdef PNG_TEXT_SUPPORTED
|
#ifdef PNG_TEXT_SUPPORTED
|
||||||
@@ -1213,7 +1289,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
|
|
||||||
if (png_get_text(read_ptr, end_info_ptr, &text_ptr, &num_text) > 0)
|
if (png_get_text(read_ptr, end_info_ptr, &text_ptr, &num_text) > 0)
|
||||||
{
|
{
|
||||||
png_debug1(0, "Handling %d iTXt/tEXt/zTXt chunks", num_text);
|
pngtest_debug1("Handling %d iTXt/tEXt/zTXt chunks", num_text);
|
||||||
png_set_text(write_ptr, write_end_info_ptr, text_ptr, num_text);
|
png_set_text(write_ptr, write_end_info_ptr, text_ptr, num_text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1274,26 +1350,26 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
png_debug(0, "Destroying data structs");
|
pngtest_debug("Destroying data structs");
|
||||||
#ifdef SINGLE_ROWBUF_ALLOC
|
#ifdef SINGLE_ROWBUF_ALLOC
|
||||||
png_debug(1, "destroying row_buf for read_ptr");
|
pngtest_debug("destroying row_buf for read_ptr");
|
||||||
png_free(read_ptr, row_buf);
|
png_free(read_ptr, row_buf);
|
||||||
row_buf = NULL;
|
row_buf = NULL;
|
||||||
#endif /* SINGLE_ROWBUF_ALLOC */
|
#endif /* SINGLE_ROWBUF_ALLOC */
|
||||||
png_debug(1, "destroying read_ptr, read_info_ptr, end_info_ptr");
|
pngtest_debug("destroying read_ptr, read_info_ptr, end_info_ptr");
|
||||||
png_destroy_read_struct(&read_ptr, &read_info_ptr, &end_info_ptr);
|
png_destroy_read_struct(&read_ptr, &read_info_ptr, &end_info_ptr);
|
||||||
#ifdef PNG_WRITE_SUPPORTED
|
#ifdef PNG_WRITE_SUPPORTED
|
||||||
png_debug(1, "destroying write_end_info_ptr");
|
pngtest_debug("destroying write_end_info_ptr");
|
||||||
png_destroy_info_struct(write_ptr, &write_end_info_ptr);
|
png_destroy_info_struct(write_ptr, &write_end_info_ptr);
|
||||||
png_debug(1, "destroying write_ptr, write_info_ptr");
|
pngtest_debug("destroying write_ptr, write_info_ptr");
|
||||||
png_destroy_write_struct(&write_ptr, &write_info_ptr);
|
png_destroy_write_struct(&write_ptr, &write_info_ptr);
|
||||||
#endif
|
#endif
|
||||||
png_debug(0, "Destruction complete.");
|
pngtest_debug("Destruction complete.");
|
||||||
|
|
||||||
FCLOSE(fpin);
|
FCLOSE(fpin);
|
||||||
FCLOSE(fpout);
|
FCLOSE(fpout);
|
||||||
|
|
||||||
png_debug(0, "Opening files for comparison");
|
pngtest_debug("Opening files for comparison");
|
||||||
if ((fpin = fopen(inname, "rb")) == NULL)
|
if ((fpin = fopen(inname, "rb")) == NULL)
|
||||||
{
|
{
|
||||||
fprintf(STDERR, "Could not find file %s\n", inname);
|
fprintf(STDERR, "Could not find file %s\n", inname);
|
||||||
@@ -1465,14 +1541,14 @@ main(int argc, char *argv[])
|
|||||||
#endif
|
#endif
|
||||||
for (i=2; i<argc; ++i)
|
for (i=2; i<argc; ++i)
|
||||||
{
|
{
|
||||||
#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
|
|
||||||
int k;
|
|
||||||
#endif
|
|
||||||
int kerror;
|
int kerror;
|
||||||
fprintf(STDERR, "\n Testing %s:", argv[i]);
|
fprintf(STDERR, "\n Testing %s:", argv[i]);
|
||||||
kerror = test_one_file(argv[i], outname);
|
kerror = test_one_file(argv[i], outname);
|
||||||
if (kerror == 0)
|
if (kerror == 0)
|
||||||
{
|
{
|
||||||
|
#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
|
||||||
|
int k;
|
||||||
|
#endif
|
||||||
#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
|
#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
|
||||||
fprintf(STDERR, "\n PASS (%lu zero samples)\n",
|
fprintf(STDERR, "\n PASS (%lu zero samples)\n",
|
||||||
(unsigned long)zero_samples);
|
(unsigned long)zero_samples);
|
||||||
@@ -1558,8 +1634,7 @@ main(int argc, char *argv[])
|
|||||||
for (k = 0; k<256; k++)
|
for (k = 0; k<256; k++)
|
||||||
if (filters_used[k])
|
if (filters_used[k])
|
||||||
fprintf(STDERR, " Filter %d was used %lu times\n",
|
fprintf(STDERR, " Filter %d was used %lu times\n",
|
||||||
k,
|
k, (unsigned long)filters_used[k]);
|
||||||
(unsigned long)filters_used[k]);
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef PNG_TIME_RFC1123_SUPPORTED
|
#ifdef PNG_TIME_RFC1123_SUPPORTED
|
||||||
if (tIME_chunk_present != 0)
|
if (tIME_chunk_present != 0)
|
||||||
@@ -1627,4 +1702,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 version_1_4_0 your_png_h_is_not_version_1_4_0;
|
typedef version_1_4_12 your_png_h_is_not_version_1_4_12;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* 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.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.6 [ April 8, 2011]
|
||||||
* Copyright (c) 1998-2010 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.)
|
||||||
*
|
*
|
||||||
@@ -655,7 +655,6 @@ png_set_user_transform_info(png_structp png_ptr, png_voidp
|
|||||||
"This version of libpng does not support user transform info");
|
"This version of libpng does not support user transform info");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/* This function returns a pointer to the user_transform_ptr associated with
|
/* This function returns a pointer to the user_transform_ptr associated with
|
||||||
* the user transform functions. The application should free any memory
|
* the user transform functions. The application should free any memory
|
||||||
@@ -663,7 +662,7 @@ png_set_user_transform_info(png_structp png_ptr, png_voidp
|
|||||||
* are called.
|
* are called.
|
||||||
*/
|
*/
|
||||||
png_voidp PNGAPI
|
png_voidp PNGAPI
|
||||||
png_get_user_transform_ptr(png_structp png_ptr)
|
png_get_user_transform_ptr(png_const_structp png_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
@@ -673,4 +672,6 @@ png_get_user_transform_ptr(png_structp png_ptr)
|
|||||||
return (NULL);
|
return (NULL);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#endif /* PNG_READ_USER_TRANSFORM_SUPPORTED ||
|
||||||
|
PNG_WRITE_USER_TRANSFORM_SUPPORTED */
|
||||||
#endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */
|
#endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */
|
||||||
|
|||||||
2
pngwio.c
@@ -155,7 +155,7 @@ png_default_flush(png_structp png_ptr)
|
|||||||
* arguments a pointer to a png_struct. After a call to
|
* arguments a pointer to a png_struct. After a call to
|
||||||
* the flush function, there should be no data in any buffers
|
* the flush function, there should be no data in any buffers
|
||||||
* or pending transmission. If the output method doesn't do
|
* or pending transmission. If the output method doesn't do
|
||||||
* any buffering of ouput, a function prototype must still be
|
* any buffering of output, a function prototype must still be
|
||||||
* supplied although it doesn't have to do anything. If
|
* supplied although it doesn't have to do anything. If
|
||||||
* PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile
|
* PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile
|
||||||
* time, output_flush_fn will be ignored, although it must be
|
* time, output_flush_fn will be ignored, although it must be
|
||||||
|
|||||||
29
pngwrite.c
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* pngwrite.c - general routines to write a PNG file
|
/* pngwrite.c - general routines to write a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.8 [July 7, 2011]
|
||||||
* Copyright (c) 1998-2010 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.)
|
||||||
*
|
*
|
||||||
@@ -38,7 +38,8 @@ png_write_info_before_PLTE(png_structp png_ptr, png_infop info_ptr)
|
|||||||
/* Write PNG signature */
|
/* Write PNG signature */
|
||||||
png_write_sig(png_ptr);
|
png_write_sig(png_ptr);
|
||||||
#ifdef PNG_MNG_FEATURES_SUPPORTED
|
#ifdef PNG_MNG_FEATURES_SUPPORTED
|
||||||
if ((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE)&&(png_ptr->mng_features_permitted))
|
if ((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE) && \
|
||||||
|
(png_ptr->mng_features_permitted))
|
||||||
{
|
{
|
||||||
png_warning(png_ptr, "MNG features are not allowed in a PNG datastream");
|
png_warning(png_ptr, "MNG features are not allowed in a PNG datastream");
|
||||||
png_ptr->mng_features_permitted = 0;
|
png_ptr->mng_features_permitted = 0;
|
||||||
@@ -294,6 +295,7 @@ png_write_info(png_structp png_ptr, png_infop info_ptr)
|
|||||||
if (keep != PNG_HANDLE_CHUNK_NEVER &&
|
if (keep != PNG_HANDLE_CHUNK_NEVER &&
|
||||||
up->location && (up->location & PNG_HAVE_PLTE) &&
|
up->location && (up->location & PNG_HAVE_PLTE) &&
|
||||||
!(up->location & PNG_HAVE_IDAT) &&
|
!(up->location & PNG_HAVE_IDAT) &&
|
||||||
|
!(up->location & PNG_AFTER_IDAT) &&
|
||||||
((up->name[3] & 0x20) || keep == PNG_HANDLE_CHUNK_ALWAYS ||
|
((up->name[3] & 0x20) || keep == PNG_HANDLE_CHUNK_ALWAYS ||
|
||||||
(png_ptr->flags & PNG_FLAG_KEEP_UNSAFE_CHUNKS)))
|
(png_ptr->flags & PNG_FLAG_KEEP_UNSAFE_CHUNKS)))
|
||||||
{
|
{
|
||||||
@@ -660,8 +662,8 @@ png_write_row(png_structp png_ptr, png_bytep row)
|
|||||||
if (png_ptr == NULL)
|
if (png_ptr == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
png_debug2(1, "in png_write_row (row %ld, pass %d)",
|
png_debug2(1, "in png_write_row (row %lu, pass %d)",
|
||||||
png_ptr->row_number, png_ptr->pass);
|
(unsigned long)png_ptr->row_number, png_ptr->pass);
|
||||||
|
|
||||||
/* Initialize transformations and other stuff if first time */
|
/* Initialize transformations and other stuff if first time */
|
||||||
if (png_ptr->row_number == 0 && png_ptr->pass == 0)
|
if (png_ptr->row_number == 0 && png_ptr->pass == 0)
|
||||||
@@ -680,9 +682,11 @@ png_write_row(png_structp png_ptr, png_bytep row)
|
|||||||
if (png_ptr->transformations & PNG_FILLER)
|
if (png_ptr->transformations & PNG_FILLER)
|
||||||
png_warning(png_ptr, "PNG_WRITE_FILLER_SUPPORTED is not defined");
|
png_warning(png_ptr, "PNG_WRITE_FILLER_SUPPORTED is not defined");
|
||||||
#endif
|
#endif
|
||||||
#if !defined(PNG_WRITE_PACKSWAP_SUPPORTED) && defined(PNG_READ_PACKSWAP_SUPPORTED)
|
#if !defined(PNG_WRITE_PACKSWAP_SUPPORTED) && \
|
||||||
|
defined(PNG_READ_PACKSWAP_SUPPORTED)
|
||||||
if (png_ptr->transformations & PNG_PACKSWAP)
|
if (png_ptr->transformations & PNG_PACKSWAP)
|
||||||
png_warning(png_ptr, "PNG_WRITE_PACKSWAP_SUPPORTED is not defined");
|
png_warning(png_ptr,
|
||||||
|
"PNG_WRITE_PACKSWAP_SUPPORTED is not defined");
|
||||||
#endif
|
#endif
|
||||||
#if !defined(PNG_WRITE_PACK_SUPPORTED) && defined(PNG_READ_PACK_SUPPORTED)
|
#if !defined(PNG_WRITE_PACK_SUPPORTED) && defined(PNG_READ_PACK_SUPPORTED)
|
||||||
if (png_ptr->transformations & PNG_PACK)
|
if (png_ptr->transformations & PNG_PACK)
|
||||||
@@ -775,7 +779,8 @@ png_write_row(png_structp png_ptr, png_bytep row)
|
|||||||
png_ptr->row_info.width);
|
png_ptr->row_info.width);
|
||||||
|
|
||||||
png_debug1(3, "row_info->color_type = %d", png_ptr->row_info.color_type);
|
png_debug1(3, "row_info->color_type = %d", png_ptr->row_info.color_type);
|
||||||
png_debug1(3, "row_info->width = %lu", png_ptr->row_info.width);
|
png_debug1(3, "row_info->width = %lu",
|
||||||
|
(unsigned long)png_ptr->row_info.width);
|
||||||
png_debug1(3, "row_info->channels = %d", png_ptr->row_info.channels);
|
png_debug1(3, "row_info->channels = %d", png_ptr->row_info.channels);
|
||||||
png_debug1(3, "row_info->bit_depth = %d", png_ptr->row_info.bit_depth);
|
png_debug1(3, "row_info->bit_depth = %d", png_ptr->row_info.bit_depth);
|
||||||
png_debug1(3, "row_info->pixel_depth = %d", png_ptr->row_info.pixel_depth);
|
png_debug1(3, "row_info->pixel_depth = %d", png_ptr->row_info.pixel_depth);
|
||||||
@@ -936,7 +941,7 @@ png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)
|
|||||||
{
|
{
|
||||||
png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
|
png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
|
||||||
|
|
||||||
#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
|
#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||||
if (png_ptr->num_chunk_list)
|
if (png_ptr->num_chunk_list)
|
||||||
{
|
{
|
||||||
png_free(png_ptr, png_ptr->chunk_list);
|
png_free(png_ptr, png_ptr->chunk_list);
|
||||||
@@ -1407,7 +1412,7 @@ png_write_png(png_structp png_ptr, png_infop info_ptr,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PNG_WRITE_FILLER_SUPPORTED
|
#ifdef PNG_WRITE_FILLER_SUPPORTED
|
||||||
/* Pack XRGB/RGBX/ARGB/RGBA into * RGB (4 channels -> 3 channels) */
|
/* Pack XRGB/RGBX/ARGB/RGBA into RGB (4 channels -> 3 channels) */
|
||||||
if (transforms & PNG_TRANSFORM_STRIP_FILLER_AFTER)
|
if (transforms & PNG_TRANSFORM_STRIP_FILLER_AFTER)
|
||||||
png_set_filler(png_ptr, 0, PNG_FILLER_AFTER);
|
png_set_filler(png_ptr, 0, PNG_FILLER_AFTER);
|
||||||
else if (transforms & PNG_TRANSFORM_STRIP_FILLER_BEFORE)
|
else if (transforms & PNG_TRANSFORM_STRIP_FILLER_BEFORE)
|
||||||
@@ -1447,8 +1452,8 @@ png_write_png(png_structp png_ptr, png_infop info_ptr,
|
|||||||
/* It is REQUIRED to call this to finish writing the rest of the file */
|
/* It is REQUIRED to call this to finish writing the rest of the file */
|
||||||
png_write_end(png_ptr, info_ptr);
|
png_write_end(png_ptr, info_ptr);
|
||||||
|
|
||||||
transforms = transforms; /* Quiet compiler warnings */
|
PNG_UNUSED(transforms) /* Quiet compiler warnings */
|
||||||
params = params;
|
PNG_UNUSED(params)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* PNG_WRITE_SUPPORTED */
|
#endif /* PNG_WRITE_SUPPORTED */
|
||||||
|
|||||||
@@ -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.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.1 [February 25, 2010]
|
||||||
* Copyright (c) 1998-2010 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2010 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.)
|
||||||
@@ -30,7 +30,8 @@ png_do_write_transformations(png_structp png_ptr)
|
|||||||
#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
|
#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
|
||||||
if (png_ptr->transformations & PNG_USER_TRANSFORM)
|
if (png_ptr->transformations & PNG_USER_TRANSFORM)
|
||||||
if (png_ptr->write_user_transform_fn != NULL)
|
if (png_ptr->write_user_transform_fn != NULL)
|
||||||
(*(png_ptr->write_user_transform_fn)) /* User write transform function */
|
(*(png_ptr->write_user_transform_fn)) /* User write transform
|
||||||
|
function */
|
||||||
(png_ptr, /* png_ptr */
|
(png_ptr, /* png_ptr */
|
||||||
&(png_ptr->row_info), /* row_info: */
|
&(png_ptr->row_info), /* row_info: */
|
||||||
/* png_uint_32 width; width of row */
|
/* png_uint_32 width; width of row */
|
||||||
@@ -194,6 +195,9 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth)
|
|||||||
*dp = (png_byte)v;
|
*dp = (png_byte)v;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
row_info->bit_depth = (png_byte)bit_depth;
|
row_info->bit_depth = (png_byte)bit_depth;
|
||||||
row_info->pixel_depth = (png_byte)(bit_depth * row_info->channels);
|
row_info->pixel_depth = (png_byte)(bit_depth * row_info->channels);
|
||||||
|
|||||||
43
pngwutil.c
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
/* pngwutil.c - utilities to write a PNG file
|
/* pngwutil.c - utilities to write a PNG file
|
||||||
*
|
*
|
||||||
* Last changed in libpng 1.4.0 [January 3, 2010]
|
* Last changed in libpng 1.4.8 [July 7, 2011]
|
||||||
* Copyright (c) 1998-2010 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.)
|
||||||
*
|
*
|
||||||
@@ -246,10 +246,12 @@ png_text_compress(png_structp png_ptr,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Set up the compression buffers */
|
/* Set up the compression buffers */
|
||||||
|
/* TODO: the following cast hides a potential overflow problem. */
|
||||||
png_ptr->zstream.avail_in = (uInt)text_len;
|
png_ptr->zstream.avail_in = (uInt)text_len;
|
||||||
|
/* NOTE: assume zlib doesn't overwrite the input */
|
||||||
png_ptr->zstream.next_in = (Bytef *)text;
|
png_ptr->zstream.next_in = (Bytef *)text;
|
||||||
png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
|
png_ptr->zstream.avail_out = png_ptr->zbuf_size;
|
||||||
png_ptr->zstream.next_out = (Bytef *)png_ptr->zbuf;
|
png_ptr->zstream.next_out = png_ptr->zbuf;
|
||||||
|
|
||||||
/* This is the same compression loop as in png_write_row() */
|
/* This is the same compression loop as in png_write_row() */
|
||||||
do
|
do
|
||||||
@@ -436,7 +438,8 @@ png_write_IHDR(png_structp png_ptr, png_uint_32 width, png_uint_32 height,
|
|||||||
case 4:
|
case 4:
|
||||||
case 8:
|
case 8:
|
||||||
case 16: png_ptr->channels = 1; break;
|
case 16: png_ptr->channels = 1; break;
|
||||||
default: png_error(png_ptr, "Invalid bit depth for grayscale image");
|
default: png_error(png_ptr,
|
||||||
|
"Invalid bit depth for grayscale image");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PNG_COLOR_TYPE_RGB:
|
case PNG_COLOR_TYPE_RGB:
|
||||||
@@ -639,7 +642,9 @@ png_write_PLTE(png_structp png_ptr, png_colorp palette, png_uint_32 num_pal)
|
|||||||
png_write_chunk_data(png_ptr, buf, (png_size_t)3);
|
png_write_chunk_data(png_ptr, buf, (png_size_t)3);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
/* This is a little slower but some buggy compilers need to do this instead */
|
/* This is a little slower but some buggy compilers need to do this
|
||||||
|
* instead
|
||||||
|
*/
|
||||||
pal_ptr=palette;
|
pal_ptr=palette;
|
||||||
for (i = 0; i < num_pal; i++)
|
for (i = 0; i < num_pal; i++)
|
||||||
{
|
{
|
||||||
@@ -677,11 +682,29 @@ png_write_IDAT(png_structp png_ptr, png_bytep data, png_size_t length)
|
|||||||
if (length >= 2 &&
|
if (length >= 2 &&
|
||||||
png_ptr->height < 16384 && png_ptr->width < 16384)
|
png_ptr->height < 16384 && png_ptr->width < 16384)
|
||||||
{
|
{
|
||||||
|
unsigned int z_cinfo;
|
||||||
|
unsigned int half_z_window_size;
|
||||||
|
|
||||||
|
/* Compute the maximum possible length of the datastream */
|
||||||
|
|
||||||
|
/* Number of pixels, plus for each row a filter byte
|
||||||
|
* and possibly a padding byte, so increase the maximum
|
||||||
|
* size to account for these.
|
||||||
|
*/
|
||||||
png_uint_32 uncompressed_idat_size = png_ptr->height *
|
png_uint_32 uncompressed_idat_size = png_ptr->height *
|
||||||
((png_ptr->width *
|
((png_ptr->width *
|
||||||
png_ptr->channels * png_ptr->bit_depth + 15) >> 3);
|
png_ptr->channels * png_ptr->bit_depth + 15) >> 3);
|
||||||
unsigned int z_cinfo = z_cmf >> 4;
|
|
||||||
unsigned int half_z_window_size = 1 << (z_cinfo + 7);
|
/* If it's interlaced, each block of 8 rows is sent as up to
|
||||||
|
* 14 rows, i.e., 6 additional rows, each with a filter byte
|
||||||
|
* and possibly a padding byte
|
||||||
|
*/
|
||||||
|
if (png_ptr->interlaced)
|
||||||
|
uncompressed_idat_size += ((png_ptr->height + 7)/8) *
|
||||||
|
(png_ptr->bit_depth < 8 ? 12 : 6);
|
||||||
|
|
||||||
|
z_cinfo = z_cmf >> 4;
|
||||||
|
half_z_window_size = 1 << (z_cinfo + 7);
|
||||||
while (uncompressed_idat_size <= half_z_window_size &&
|
while (uncompressed_idat_size <= half_z_window_size &&
|
||||||
half_z_window_size >= 256)
|
half_z_window_size >= 256)
|
||||||
{
|
{
|
||||||
@@ -2103,7 +2126,7 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
|
|||||||
png_uint_32 row_bytes = row_info->rowbytes;
|
png_uint_32 row_bytes = row_info->rowbytes;
|
||||||
#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
|
#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
|
||||||
int num_p_filters = (int)png_ptr->num_prev_filters;
|
int num_p_filters = (int)png_ptr->num_prev_filters;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
png_debug(1, "in png_write_find_filter");
|
png_debug(1, "in png_write_find_filter");
|
||||||
|
|
||||||
@@ -2113,7 +2136,7 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
|
|||||||
/* These will never be selected so we need not test them. */
|
/* These will never be selected so we need not test them. */
|
||||||
filter_to_do &= ~(PNG_FILTER_UP | PNG_FILTER_PAETH);
|
filter_to_do &= ~(PNG_FILTER_UP | PNG_FILTER_PAETH);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Find out how many bytes offset each pixel is */
|
/* Find out how many bytes offset each pixel is */
|
||||||
bpp = (row_info->pixel_depth + 7) >> 3;
|
bpp = (row_info->pixel_depth + 7) >> 3;
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
The cbuilder5 project has not been updated to libpng-1.4.0.
|
|
||||||
|
|
||||||
It needs to depend on pngpriv.h
|
|
||||||
|
|
||||||
It needs to *not* depend on pnggccrd.c or pngvcrd.c
|
|
||||||
|
|
||||||
It needs to DEFINE PNG_NO_PEDANTIC_WARNING while building
|
|
||||||
the library, but not while building an application.
|
|
||||||
|
|
||||||
If an updated version is not received, this project will
|
|
||||||
be removed when libpng-1.4.0 is released.
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
USEUNIT("libpng.cpp");
|
|
||||||
USEUNIT("..\..\png.c");
|
|
||||||
USEUNIT("..\..\pngerror.c");
|
|
||||||
USEUNIT("..\..\pngget.c");
|
|
||||||
USEUNIT("..\..\pngmem.c");
|
|
||||||
USEUNIT("..\..\pngpread.c");
|
|
||||||
USEUNIT("..\..\pngread.c");
|
|
||||||
USEUNIT("..\..\pngrio.c");
|
|
||||||
USEUNIT("..\..\pngrtran.c");
|
|
||||||
USEUNIT("..\..\pngrutil.c");
|
|
||||||
USEUNIT("..\..\pngset.c");
|
|
||||||
USEUNIT("..\..\pngtrans.c");
|
|
||||||
USEUNIT("..\..\pngwio.c");
|
|
||||||
USEUNIT("..\..\pngwrite.c");
|
|
||||||
USEUNIT("..\..\pngwtran.c");
|
|
||||||
USEUNIT("..\..\pngwutil.c");
|
|
||||||
USELIB("..\..\..\zlib\zlib.lib");
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
This file is used by the project manager only and should be treated like the project file
|
|
||||||
|
|
||||||
|
|
||||||
DllEntryPoint
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
#------------------------------------------------------------------------------
|
|
||||||
VERSION = BWS.01
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
!ifndef ROOT
|
|
||||||
ROOT = $(MAKEDIR)\..
|
|
||||||
!endif
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
|
|
||||||
DCC = $(ROOT)\bin\dcc32.exe $**
|
|
||||||
BRCC = $(ROOT)\bin\brcc32.exe $**
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
PROJECTS = libpngstat.lib libpng.dll
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
default: $(PROJECTS)
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
libpngstat.lib: libpngstat.bpr
|
|
||||||
$(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
|
|
||||||
$(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
|
|
||||||
|
|
||||||
libpng.dll: libpng.bpr
|
|
||||||
$(ROOT)\bin\bpr2mak $**
|
|
||||||
$(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,157 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8' ?>
|
|
||||||
<!-- C++Builder XML Project -->
|
|
||||||
<PROJECT>
|
|
||||||
<MACROS>
|
|
||||||
<VERSION value="BCB.05.03"/>
|
|
||||||
<PROJECT value="libpng.dll"/>
|
|
||||||
<OBJFILES value="libpng.obj ..\..\pngwutil.obj ..\..\pngerror.obj ..\..\pngget.obj
|
|
||||||
..\..\pngmem.obj ..\..\pngpread.obj ..\..\pngread.obj ..\..\pngrio.obj
|
|
||||||
..\..\pngrtran.obj ..\..\pngrutil.obj ..\..\pngset.obj ..\..\pngtrans.obj
|
|
||||||
..\..\pngwio.obj ..\..\pngwrite.obj ..\..\pngwtran.obj ..\..\png.obj"/>
|
|
||||||
<RESFILES value=""/>
|
|
||||||
<DEFFILE value=""/>
|
|
||||||
<RESDEPEN value="$(RESFILES)"/>
|
|
||||||
<LIBFILES value="..\..\..\zlib\zlib.lib"/>
|
|
||||||
<LIBRARIES value="bcbsmp50.lib dclocx50.lib NMFast50.lib Tee50.lib Vclx50.lib Vcl50.lib"/>
|
|
||||||
<SPARELIBS value="Vcl50.lib Vclx50.lib Tee50.lib NMFast50.lib dclocx50.lib bcbsmp50.lib"/>
|
|
||||||
<PACKAGES value="Vcl50.bpi Vclx50.bpi bcbsmp50.bpi Qrpt50.bpi Vcldb50.bpi Vclbde50.bpi
|
|
||||||
ibsmp50.bpi vcldbx50.bpi TeeUI50.bpi TeeDB50.bpi Tee50.bpi TeeQR50.bpi
|
|
||||||
VCLIB50.bpi bcbie50.bpi vclie50.bpi Inetdb50.bpi Inet50.bpi NMFast50.bpi
|
|
||||||
dclocx50.bpi bcb97axserver50.bpi SIMULUSCOMPONENTS.bpi Simulus2.bpi"/>
|
|
||||||
<PATHCPP value=".;..\.."/>
|
|
||||||
<PATHPAS value=".;"/>
|
|
||||||
<PATHRC value=".;"/>
|
|
||||||
<PATHASM value=".;"/>
|
|
||||||
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
|
|
||||||
<RELEASELIBPATH value="$(BCB)\lib\release"/>
|
|
||||||
<LINKER value="tlink32"/>
|
|
||||||
<USERDEFINES value="PNG_BUILD_DLL;PNG_NO_MODULEDEF"/>
|
|
||||||
<SYSDEFINES value="NO_STRICT;_NO_VCL;_RTLDLL"/>
|
|
||||||
<MAINSOURCE value="libpng.bpf"/>
|
|
||||||
<INCLUDEPATH value="..\..;..\..\..\zlib;$(BCB)\include"/>
|
|
||||||
<LIBPATH value="..\..;$(BCB)\lib\obj;$(BCB)\lib"/>
|
|
||||||
<WARNINGS value="-w8092 -w8091 -w8090 -w8089 -w8087 -wprc -wucp -wstv -wstu -wsig -wpin
|
|
||||||
-wnod -wnak -wdef -wcln -wbbf -wasm -wamp -wamb"/>
|
|
||||||
</MACROS>
|
|
||||||
<OPTIONS>
|
|
||||||
<CFLAG1 value="-WD -O2 -w -Vx -Ve -x- -RT- -X- -a8 -5 -b- -d -k- -vi -tWD -tWM -c"/>
|
|
||||||
<PFLAGS value="-$Y- -$L- -$D- -$C- -v -JPHNE -M"/>
|
|
||||||
<RFLAGS value=""/>
|
|
||||||
<AFLAGS value="/mx /w2 /zn"/>
|
|
||||||
<LFLAGS value="-D"" -aa -Tpd -x -Gn -Gi -w"/>
|
|
||||||
</OPTIONS>
|
|
||||||
<LINKER>
|
|
||||||
<ALLOBJ value="c0d32.obj $(OBJFILES)"/>
|
|
||||||
<ALLRES value="$(RESFILES)"/>
|
|
||||||
<ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mti.lib"/>
|
|
||||||
</LINKER>
|
|
||||||
<IDEOPTIONS>
|
|
||||||
[Version Info]
|
|
||||||
IncludeVerInfo=0
|
|
||||||
AutoIncBuild=0
|
|
||||||
MajorVer=1
|
|
||||||
MinorVer=0
|
|
||||||
Release=0
|
|
||||||
Build=0
|
|
||||||
Debug=0
|
|
||||||
PreRelease=0
|
|
||||||
Special=0
|
|
||||||
Private=0
|
|
||||||
DLL=1
|
|
||||||
Locale=2057
|
|
||||||
CodePage=1252
|
|
||||||
|
|
||||||
[Version Info Keys]
|
|
||||||
CompanyName=
|
|
||||||
FileDescription=
|
|
||||||
FileVersion=1.0.0.0
|
|
||||||
InternalName=
|
|
||||||
LegalCopyright=
|
|
||||||
LegalTrademarks=
|
|
||||||
OriginalFilename=
|
|
||||||
ProductName=
|
|
||||||
ProductVersion=
|
|
||||||
Comments=
|
|
||||||
|
|
||||||
[HistoryLists\hlIncludePath]
|
|
||||||
Count=18
|
|
||||||
Item0=..\..;..\..\..\zlib;$(BCB)\include
|
|
||||||
Item1=..\..;P:\My Documents\Source\PNG+ZLib\zlib;$(BCB)\include
|
|
||||||
Item2=..\..;..\Source\ThirdParty\PortableNetworkGraphics\external;..\Source\ThirdParty\PortableNetworkGraphics;..\Source\ThirdParty\ZLibCompression\external;$(BCB)\include
|
|
||||||
Item3=..\Source\ThirdParty\PortableNetworkGraphics\external;..\Source\ThirdParty\PortableNetworkGraphics;..\Source\ThirdParty\ZLibCompression\external;$(BCB)\include
|
|
||||||
Item4=..\Source\ThirdParty\PortableNetworkGraphics\external;..\Source\ThirdParty\PortableNetworkGraphics;..\Source\ThirdParty\ZLibCompression;$(BCB)\include
|
|
||||||
Item5=..\Source\ThirdParty\PortableNetworkGraphics;..\Source\ThirdParty\ZLibCompression;$(BCB)\include
|
|
||||||
Item6=..\Source\ThirdParty\PortableNetworkGraphics;P:\Development\Source\ThirdParty\ZLibCompression;$(BCB)\include
|
|
||||||
Item7=..\Source\ThirdParty\PortableNetworkGraphics;$(BCB)\include
|
|
||||||
Item8=$(BCB)\include
|
|
||||||
Item9=..\Source;..\Source\General\Templates;..\Source\SIMUtilities;$(BCB)\include;$(BCB)\include\vcl
|
|
||||||
Item10=P:\Development\Source\;P:\Development\Source\General\Templates\;P:\Development\Source\SIMUtilities\;$(BCB)\include;$(BCB)\include\vcl
|
|
||||||
Item11=P:\Development\Source;P:\Development\Source\General\Templates\;P:\Development\Source\SIMUtilities\;$(BCB)\include;$(BCB)\include\vcl
|
|
||||||
Item12=P:\Development\Source\General\Templates\;P:\Development\Source\SIMUtilities\;$(BCB)\include;$(BCB)\include\vcl
|
|
||||||
Item13=P:\Development\Source\General\Templates\;P:\Development\Source\SIMUtilities;$(BCB)\include;$(BCB)\include\vcl
|
|
||||||
Item14=P:\Development\Source\General\Templates\;$(BCB)\include;$(BCB)\include\vcl
|
|
||||||
Item15=P:\Development\Source\General\Templates;$(BCB)\include;$(BCB)\include\vcl
|
|
||||||
Item16=P:\Development\Source;$(BCB)\include;$(BCB)\include\vcl
|
|
||||||
Item17=$(BCB)\include;$(BCB)\include\vcl
|
|
||||||
|
|
||||||
[HistoryLists\hlLibraryPath]
|
|
||||||
Count=10
|
|
||||||
Item0=..\..;$(BCB)\lib\obj;$(BCB)\lib
|
|
||||||
Item1=..\..;..\Source\ThirdParty\PortableNetworkGraphics\external;..\Source\ThirdParty\PortableNetworkGraphics;$(BCB)\lib\obj;$(BCB)\lib
|
|
||||||
Item2=..\Source\ThirdParty\PortableNetworkGraphics\external;..\Source\ThirdParty\PortableNetworkGraphics;$(BCB)\lib\obj;$(BCB)\lib
|
|
||||||
Item3=..\Source\ThirdParty\PortableNetworkGraphics;$(BCB)\lib\obj;$(BCB)\lib
|
|
||||||
Item4=$(BCB)\lib\obj;$(BCB)\lib
|
|
||||||
Item5=..\Source\SIMUtilities;..\Source;$(BCB)\lib\obj;$(BCB)\lib
|
|
||||||
Item6=P:\Development\Source\SIMUtilities\;P:\Development\Source\;$(BCB)\lib\obj;$(BCB)\lib
|
|
||||||
Item7=P:\Development\Source\SIMUtilities;P:\Development\Source\;$(BCB)\lib\obj;$(BCB)\lib
|
|
||||||
Item8=P:\Development\Source\;$(BCB)\lib\obj;$(BCB)\lib
|
|
||||||
Item9=P:\Development\Source;$(BCB)\lib\obj;$(BCB)\lib
|
|
||||||
|
|
||||||
[HistoryLists\hlDebugSourcePath]
|
|
||||||
Count=1
|
|
||||||
Item0=$(BCB)\source\vcl
|
|
||||||
|
|
||||||
[HistoryLists\hlConditionals]
|
|
||||||
Count=20
|
|
||||||
Item0=ZLIB_DLL;Z_PREFIX;PNG_BUILD_DLL;PNG_NO_MODULEDEF
|
|
||||||
Item1=_DEBUG;ZLIB_DLL;Z_PREFIX;PNG_BUILD_DLL;PNG_NO_MODULEDEF
|
|
||||||
Item2=PNG_BUILD_DLL;ZLIB_DLL;_DEBUG;PNG_NO_MODULEDEF
|
|
||||||
Item3=PNG_BUILD_DLL;ZLIB_DLL;_DEBUG;PNG_DEBUG=5;PNG_NO_MODULEDEF;PNG_NO_GLOBAL_ARRAYS
|
|
||||||
Item4=PNG_BUILD_DLL;ZLIB_DLL;_DEBUG;PNG_DEBUG=5;PNG_NO_MODULEDEF;PNG_SETJMP_NOT_SUPPORTED;PNG_DEBUG_FILE=stderr
|
|
||||||
Item5=PNG_BUILD_DLL;ZLIB_DLL;_DEBUG;PNG_DEBUG;PNG_NO_MODULEDEF;PNG_SETJMP_NOT_SUPPORTED
|
|
||||||
Item6=PNG_BUILD_DLL;ZLIB_DLL;_DEBUG;PNG_DEBUG=5;PNG_NO_MODULEDEF;PNG_SETJMP_NOT_SUPPORTED
|
|
||||||
Item7=PNG_BUILD_DLL;ZLIB_DLL;_DEBUG;PNG_DEBUG=5;PNG_NO_MODULEDEF
|
|
||||||
Item8=PNG_BUILD_DLL;ZLIB_DLL;_DEBUG;PNG_DEBUG=5
|
|
||||||
Item9=PNG_BUILD_DLL;ZLIB_DLL;_DEBUG
|
|
||||||
Item10=PNG_BUILD_DLL;ZLIB_DLL
|
|
||||||
Item11=PNG_BUILD_DLL
|
|
||||||
Item12=PNG_DLL;PNG_BUILD_DLL;ZLIB_DLL
|
|
||||||
Item13=PNG_DLL;PNG_BUILD_DLL;PNG_NO_GLOBAL_ARRAYS;ZLIB_DLL
|
|
||||||
Item14=PNG_DLL;PNG_BUILD_DLL;PNG_NO_GLOBAL_ARRAYS
|
|
||||||
Item15=PNG_DLL;PNG_BUILD_DLL
|
|
||||||
Item16=PNG_DLL;PNG_BUILD_DLL;PNG_MODULEDEF
|
|
||||||
Item17=_HTML_FORM
|
|
||||||
Item18=_DEBUG;_HTML_FORM
|
|
||||||
Item19=_DEBUG
|
|
||||||
|
|
||||||
[HistoryLists\hlIntOutputDir]
|
|
||||||
Count=2
|
|
||||||
Item0=..\Obj
|
|
||||||
Item1=P:\Development\Obj
|
|
||||||
|
|
||||||
[Debugging]
|
|
||||||
DebugSourceDirs=
|
|
||||||
|
|
||||||
[Parameters]
|
|
||||||
RunParams=
|
|
||||||
HostApplication=P:\Development\Executables\LibPNGTestApp.exe
|
|
||||||
RemoteHost=
|
|
||||||
RemotePath=
|
|
||||||
RemoteDebug=0
|
|
||||||
|
|
||||||
[Compiler]
|
|
||||||
ShowInfoMsgs=0
|
|
||||||
LinkDebugVcl=0
|
|
||||||
LinkCGLIB=0
|
|
||||||
</IDEOPTIONS>
|
|
||||||
</PROJECT>
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------
|
|
||||||
#include <windows.h>
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
// Important note about DLL memory management when your DLL uses the
|
|
||||||
// static version of the RunTime Library:
|
|
||||||
//
|
|
||||||
// If your DLL exports any functions that pass String objects (or structs/
|
|
||||||
// classes containing nested Strings) as parameter or function results,
|
|
||||||
// you will need to add the library MEMMGR.LIB to both the DLL project and
|
|
||||||
// any other projects that use the DLL. You will also need to use MEMMGR.LIB
|
|
||||||
// if any other projects which use the DLL will be performing new or delete
|
|
||||||
// operations on any non-TObject-derived classes which are exported from the
|
|
||||||
// DLL. Adding MEMMGR.LIB to your project will change the DLL and its calling
|
|
||||||
// EXE's to use the BORLNDMM.DLL as their memory manager. In these cases,
|
|
||||||
// the file BORLNDMM.DLL should be deployed along with your DLL.
|
|
||||||
//
|
|
||||||
// To avoid using BORLNDMM.DLL, pass string information using "char *" or
|
|
||||||
// ShortString parameters.
|
|
||||||
//
|
|
||||||
// If your DLL uses the dynamic version of the RTL, you do not need to
|
|
||||||
// explicitly add MEMMGR.LIB as this will be done implicitly for you
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
int WINAPI DllEntryPoint(HINSTANCE, unsigned long, void*)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
Project files to build libpng using Borland C++ Builder v5.0
|
|
||||||
|
|
||||||
In order to build and use libpng, please follow these steps:
|
|
||||||
|
|
||||||
1). Install zlib in a directory at the same level with libpng.
|
|
||||||
|
|
||||||
2). In a console window, go to the zlib directory and type:
|
|
||||||
make -f win32\Makefile.bor
|
|
||||||
After performing this step, you should have a file named
|
|
||||||
zlib.lib in the zlib directory.
|
|
||||||
|
|
||||||
3). Add the following conditional define to your project:
|
|
||||||
PNG_USE_DLL
|
|
||||||
|
|
||||||
4). Add libpng.lib or libpngstat.lib to the project.
|
|
||||||
Build the project.
|
|
||||||
|
|
||||||
5). If the build fails, add the paths to png.h and zlib.h to
|
|
||||||
your include path, and restart the build.
|
|
||||||
|
|
||||||
By default, the libpng project uses zlib as a static library. If
|
|
||||||
you wish to use zlib as a DLL, please read the important notes from
|
|
||||||
the zlib DLL FAQ, found inside the zlib distribution.
|
|
||||||
|
|
||||||
See the libpng documentation for instructions on how to use the code.
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
USEUNIT("..\..\png.c");
|
|
||||||
USEUNIT("..\..\pngerror.c");
|
|
||||||
USEUNIT("..\..\pngget.c");
|
|
||||||
USEUNIT("..\..\pngmem.c");
|
|
||||||
USEUNIT("..\..\pngpread.c");
|
|
||||||
USEUNIT("..\..\pngread.c");
|
|
||||||
USEUNIT("..\..\pngrio.c");
|
|
||||||
USEUNIT("..\..\pngrtran.c");
|
|
||||||
USEUNIT("..\..\pngrutil.c");
|
|
||||||
USEUNIT("..\..\pngset.c");
|
|
||||||
USEUNIT("..\..\pngtrans.c");
|
|
||||||
USEUNIT("..\..\pngwio.c");
|
|
||||||
USEUNIT("..\..\pngwrite.c");
|
|
||||||
USEUNIT("..\..\pngwtran.c");
|
|
||||||
USEUNIT("..\..\pngwutil.c");
|
|
||||||
USELIB("..\..\..\zlib\zlib.lib");
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
#define Library
|
|
||||||
|
|
||||||
// To add a file to the library use the Project menu 'Add to Project'.
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8' ?>
|
|
||||||
<!-- C++Builder XML Project -->
|
|
||||||
<PROJECT>
|
|
||||||
<MACROS>
|
|
||||||
<VERSION value="BCB.05.03"/>
|
|
||||||
<PROJECT value="libpngstat.lib"/>
|
|
||||||
<OBJFILES value="..\..\pngerror.obj ..\..\png.obj ..\..\pngwutil.obj ..\..\pngmem.obj
|
|
||||||
..\..\pngpread.obj ..\..\pngread.obj ..\..\pngrio.obj ..\..\pngrtran.obj
|
|
||||||
..\..\pngrutil.obj ..\..\pngset.obj ..\..\pngtrans.obj ..\..\pngwio.obj
|
|
||||||
..\..\pngwrite.obj ..\..\pngwtran.obj ..\..\pngget.obj"/>
|
|
||||||
<RESFILES value=""/>
|
|
||||||
<DEFFILE value=""/>
|
|
||||||
<RESDEPEN value="$(RESFILES)"/>
|
|
||||||
<LIBFILES value="..\..\..\zlib\zlib.lib"/>
|
|
||||||
<LIBRARIES value=""/>
|
|
||||||
<PACKAGES value=""/>
|
|
||||||
<PATHCPP value=".;..\.."/>
|
|
||||||
<PATHPAS value=".;"/>
|
|
||||||
<PATHRC value=".;"/>
|
|
||||||
<PATHASM value=".;"/>
|
|
||||||
<LINKER value="TLib"/>
|
|
||||||
<USERDEFINES value=""/>
|
|
||||||
<SYSDEFINES value="_RTLDLL;NO_STRICT"/>
|
|
||||||
<MAINSOURCE value="libpngstat.bpf"/>
|
|
||||||
<INCLUDEPATH value="..\..;..\..\..\zlib;$(BCB)\include"/>
|
|
||||||
<LIBPATH value="..\..;$(BCB)\lib\obj;$(BCB)\lib"/>
|
|
||||||
<WARNINGS value="-w-par"/>
|
|
||||||
<LISTFILE value=""/>
|
|
||||||
</MACROS>
|
|
||||||
<OPTIONS>
|
|
||||||
<CFLAG1 value="-O2 -w -Vx -Ve -X- -a8 -5 -b- -d -k- -vi -c -tW -tWM"/>
|
|
||||||
<PFLAGS value="-$Y- -$L- -$D- -$C- -v -JPHNE -M"/>
|
|
||||||
<AFLAGS value="/mx /w2 /zn"/>
|
|
||||||
<LFLAGS value=""/>
|
|
||||||
</OPTIONS>
|
|
||||||
<LINKER>
|
|
||||||
<ALLOBJ value="$(OBJFILES)"/>
|
|
||||||
<ALLLIB value=""/>
|
|
||||||
</LINKER>
|
|
||||||
<IDEOPTIONS>
|
|
||||||
[Version Info]
|
|
||||||
IncludeVerInfo=0
|
|
||||||
AutoIncBuild=0
|
|
||||||
MajorVer=1
|
|
||||||
MinorVer=0
|
|
||||||
Release=0
|
|
||||||
Build=0
|
|
||||||
Debug=0
|
|
||||||
PreRelease=0
|
|
||||||
Special=0
|
|
||||||
Private=0
|
|
||||||
DLL=0
|
|
||||||
Locale=2057
|
|
||||||
CodePage=1252
|
|
||||||
|
|
||||||
[Version Info Keys]
|
|
||||||
CompanyName=
|
|
||||||
FileDescription=
|
|
||||||
FileVersion=1.0.0.0
|
|
||||||
InternalName=
|
|
||||||
LegalCopyright=
|
|
||||||
LegalTrademarks=
|
|
||||||
OriginalFilename=
|
|
||||||
ProductName=
|
|
||||||
ProductVersion=1.0.0.0
|
|
||||||
Comments=
|
|
||||||
|
|
||||||
[HistoryLists\hlIncludePath]
|
|
||||||
Count=2
|
|
||||||
Item0=..\..;P:\My Documents\Source\PNG+ZLib\zlib;$(BCB)\include
|
|
||||||
Item1=..\..;$(BCB)\include;$(BCB)\include\vcl
|
|
||||||
|
|
||||||
[HistoryLists\hlLibraryPath]
|
|
||||||
Count=1
|
|
||||||
Item0=..\..;$(BCB)\lib\obj;$(BCB)\lib
|
|
||||||
|
|
||||||
[HistoryLists\hlDebugSourcePath]
|
|
||||||
Count=1
|
|
||||||
Item0=$(BCB)\source\vcl
|
|
||||||
|
|
||||||
[HistoryLists\hlConditionals]
|
|
||||||
Count=1
|
|
||||||
Item0=_DEBUG
|
|
||||||
|
|
||||||
[HistoryLists\hlTlibPageSize]
|
|
||||||
Count=1
|
|
||||||
Item0=0x0010
|
|
||||||
|
|
||||||
[Debugging]
|
|
||||||
DebugSourceDirs=$(BCB)\source\vcl
|
|
||||||
|
|
||||||
[Parameters]
|
|
||||||
RunParams=
|
|
||||||
HostApplication=
|
|
||||||
RemoteHost=
|
|
||||||
RemotePath=
|
|
||||||
RemoteDebug=0
|
|
||||||
|
|
||||||
[Compiler]
|
|
||||||
ShowInfoMsgs=0
|
|
||||||
LinkDebugVcl=0
|
|
||||||
LinkCGLIB=0
|
|
||||||
|
|
||||||
[Language]
|
|
||||||
ActiveLang=
|
|
||||||
ProjectLang=
|
|
||||||
RootDir=
|
|
||||||
</IDEOPTIONS>
|
|
||||||
</PROJECT>
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
The project that builds libpng under Borland C++ Builder does not
|
|
||||||
explicitly build zlib. By taking this decision, there is no need
|
|
||||||
to update the libpng project each time when there is a change in
|
|
||||||
the list of zlib source files. After all, this list is private to
|
|
||||||
zlib, and applications (such as libpng) should not assume anything
|
|
||||||
about it.
|
|
||||||
|
|
||||||
If you wish to contribute a project that builds zlib under Borland
|
|
||||||
C++ Builder, please submit it to the zlib developers, not to the
|
|
||||||
libpng developers.
|
|
||||||
|
|
||||||
By default, the libpng project uses zlib as a static library. If
|
|
||||||
you wish to use zlib as a DLL, please read the important notes from
|
|
||||||
the zlib DLL FAQ, found inside the zlib distribution.
|
|
||||||
@@ -6,6 +6,8 @@ Copyright (C) 2004 Cosmin Truta.
|
|||||||
This code is released under the libpng license.
|
This code is released under the libpng license.
|
||||||
For conditions of distribution and use, see copyright notice in png.h
|
For conditions of distribution and use, see copyright notice in png.h
|
||||||
|
|
||||||
|
NOTE: This project will be removed from libpng-1.5.0. It has
|
||||||
|
been replaced with the "vstudio" project.
|
||||||
|
|
||||||
Assumptions:
|
Assumptions:
|
||||||
* The libpng source files are in ..\..
|
* The libpng source files are in ..\..
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ Copyright (C) 2004 Simon-Pierre Cadieux.
|
|||||||
This code is released under the libpng license.
|
This code is released under the libpng license.
|
||||||
For conditions of distribution and use, see copyright notice in png.h
|
For conditions of distribution and use, see copyright notice in png.h
|
||||||
|
|
||||||
|
NOTE: This project will be removed from libpng-1.5.0. It has
|
||||||
|
been replaced with the "vstudio" project.
|
||||||
|
|
||||||
Assumptions:
|
Assumptions:
|
||||||
* The libpng source files are in ..\..
|
* The libpng source files are in ..\..
|
||||||
* The zlib source files are in ..\..\..\zlib
|
* The zlib source files are in ..\..\..\zlib
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ Copyright (C) 2004 Cosmin Truta.
|
|||||||
This code is released under the libpng license.
|
This code is released under the libpng license.
|
||||||
For conditions of distribution and use, see copyright notice in zlib.h.
|
For conditions of distribution and use, see copyright notice in zlib.h.
|
||||||
|
|
||||||
|
NOTE: This project will be removed from libpng-1.5.0. It has
|
||||||
|
been replaced with the "vstudio" project.
|
||||||
|
|
||||||
To use:
|
To use:
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;PNG_BUILD_DLL;ZLIB_DLL;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;PNG_BUILD_DLL;ZLIB_DLL;_CRT_SECURE_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
Culture="1033"
|
Culture="1033"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib;$(IntDir)"/>
|
AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib;$(IntDir)"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;DEBUG;PNG_DEBUG=1;PNG_BUILD_DLL;ZLIB_DLL;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;DEBUG;PNG_DEBUG=1;PNG_BUILD_DLL;ZLIB_DLL;_CRT_SECURE_NO_WARNINGS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="3"
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="_DEBUG,PNG_DEBUG=1"
|
PreprocessorDefinitions="_DEBUG,PNG_DEBUG=1"
|
||||||
Culture="1033"
|
Culture="1033"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib;$(IntDir)"/>
|
AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib;$(IntDir)"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
@@ -113,8 +113,8 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;PNG_BUILD_DLL;ZLIB_DLL;PNGAPI=__stdcall;PNG_NO_MODULEDEF;PNG_LIBPNG_SPECIALBUILD;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;PNG_BUILD_DLL;ZLIB_DLL;PNGAPI=__stdcall;PNG_NO_MODULEDEF;PNG_LIBPNG_SPECIALBUILD;PNG_USER_PRIVATEBUILD;_CRT_SECURE_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
@@ -141,7 +141,7 @@
|
|||||||
AdditionalOptions="/d PNG_NO_PEDANTIC_WARNINGS /d PNG_LIBPNG_DLLFNAME_POSTFIX=""""VB"""" /d PNG_LIBPNG_SPECIALBUILD=""""__stdcall calling convention used for exported functions"""""
|
AdditionalOptions="/d PNG_NO_PEDANTIC_WARNINGS /d PNG_LIBPNG_DLLFNAME_POSTFIX=""""VB"""" /d PNG_LIBPNG_SPECIALBUILD=""""__stdcall calling convention used for exported functions"""""
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
Culture="1033"
|
Culture="1033"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib;$(IntDir)"/>
|
AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib;$(IntDir)"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
@@ -161,10 +161,10 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
UsePrecompiledHeader="3"
|
UsePrecompiledHeader="3"
|
||||||
PrecompiledHeaderThrough="png.h"
|
PrecompiledHeaderThrough="png.h"
|
||||||
@@ -202,10 +202,10 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;DEBUG;PNG_DEBUG=1;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;DEBUG;PNG_DEBUG=1;_CRT_SECURE_NO_WARNINGS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="1"
|
||||||
UsePrecompiledHeader="3"
|
UsePrecompiledHeader="3"
|
||||||
PrecompiledHeaderThrough="png.h"
|
PrecompiledHeaderThrough="png.h"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;PNG_DLL;PNG_NO_STDIO;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;PNG_DLL;PNG_NO_STDIO;_CRT_SECURE_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
@@ -64,7 +64,7 @@ $(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;PNG_DLL;PNG_NO_STDIO;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;PNG_DLL;PNG_NO_STDIO;_CRT_SECURE_NO_WARNINGS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="3"
|
||||||
@@ -112,8 +112,8 @@ $(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;PNG_DLL;PNG_NO_STDIO;PNGAPI=__stdcall;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;PNG_DLL;PNG_NO_STDIO;PNGAPI=__stdcall;PNG_USER_PRIVATEBUILD;_CRT_SECURE_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
@@ -162,10 +162,10 @@ $(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
CompileAs="0"/>
|
CompileAs="0"/>
|
||||||
@@ -210,10 +210,10 @@ $(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="1"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
CompileAs="0"/>
|
CompileAs="0"/>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="3"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
@@ -107,9 +107,9 @@
|
|||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
CompileAs="1"/>
|
CompileAs="1"/>
|
||||||
@@ -146,9 +146,9 @@
|
|||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="1"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
CompileAs="1"/>
|
CompileAs="1"/>
|
||||||
@@ -196,7 +196,16 @@
|
|||||||
RelativePath="..\..\..\zlib\deflate.c">
|
RelativePath="..\..\..\zlib\deflate.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\gzio.c">
|
RelativePath="..\..\..\zlib\gzlib.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\..\zlib\gzclose.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\..\zlib\gzread.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\..\zlib\gzwrite.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\infback.c">
|
RelativePath="..\..\..\zlib\infback.c">
|
||||||
|
|||||||
233
projects/vstudio/libpng/libpng.vcxproj
Normal file
@@ -0,0 +1,233 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug Library|Win32">
|
||||||
|
<Configuration>Debug Library</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release Library|Win32">
|
||||||
|
<Configuration>Release Library</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{D6973076-9317-4EF2-A0B8-B7A18AC0713E}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>libpng</RootNamespace>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<Import Project="$(SolutionDir)\zlib.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<CustomBuildBeforeTargets>
|
||||||
|
</CustomBuildBeforeTargets>
|
||||||
|
<TargetName>$(ProjectName)14</TargetName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<CustomBuildBeforeTargets />
|
||||||
|
<TargetName>$(ProjectName)14</TargetName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<CustomBuildBeforeTargets>
|
||||||
|
</CustomBuildBeforeTargets>
|
||||||
|
<TargetName>$(ProjectName)14</TargetName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<CustomBuildBeforeTargets />
|
||||||
|
<TargetName>$(ProjectName)14</TargetName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level4</WarningLevel>
|
||||||
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
|
<PreprocessorDefinitions>WIN32;PNG_BUILD_DLL;PNG_NO_MODULEDEF;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
|
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
|
||||||
|
<PrecompiledHeaderFile>png.h</PrecompiledHeaderFile>
|
||||||
|
<BrowseInformation>true</BrowseInformation>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<StringPooling>true</StringPooling>
|
||||||
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalDependencies>zlib.lib;msvcrtd.lib;kernel32.lib</AdditionalDependencies>
|
||||||
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
|
<Version>14</Version>
|
||||||
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level4</WarningLevel>
|
||||||
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
|
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
|
||||||
|
<PrecompiledHeaderFile>png.h</PrecompiledHeaderFile>
|
||||||
|
<BrowseInformation>true</BrowseInformation>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<StringPooling>true</StringPooling>
|
||||||
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level4</WarningLevel>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;PNG_BUILD_DLL;PNG_NO_MODULEDEF;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
|
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
|
||||||
|
<PrecompiledHeaderFile>png.h</PrecompiledHeaderFile>
|
||||||
|
<BrowseInformation>true</BrowseInformation>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<StringPooling>true</StringPooling>
|
||||||
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
|
<AdditionalIncludeDirectories>$(ZLib1Dir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
|
<Optimization>Full</Optimization>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<AdditionalDependencies>zdll.lib;msvcrt.lib;kernel32.lib</AdditionalDependencies>
|
||||||
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
|
<Version>14</Version>
|
||||||
|
<AdditionalLibraryDirectories>$(ZLib1Dir)</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level4</WarningLevel>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
|
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
|
||||||
|
<PrecompiledHeaderFile>png.h</PrecompiledHeaderFile>
|
||||||
|
<BrowseInformation>true</BrowseInformation>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<StringPooling>true</StringPooling>
|
||||||
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
|
<AdditionalIncludeDirectories>$(ZLib1Dir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
|
<Optimization>Full</Optimization>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\..\..\png.c">
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||||
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">Create</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\pngerror.c" />
|
||||||
|
<ClCompile Include="..\..\..\pngget.c" />
|
||||||
|
<ClCompile Include="..\..\..\pngmem.c" />
|
||||||
|
<ClCompile Include="..\..\..\pngpread.c" />
|
||||||
|
<ClCompile Include="..\..\..\pngread.c" />
|
||||||
|
<ClCompile Include="..\..\..\pngrio.c" />
|
||||||
|
<ClCompile Include="..\..\..\pngrtran.c" />
|
||||||
|
<ClCompile Include="..\..\..\pngrutil.c" />
|
||||||
|
<ClCompile Include="..\..\..\pngset.c" />
|
||||||
|
<ClCompile Include="..\..\..\pngtrans.c" />
|
||||||
|
<ClCompile Include="..\..\..\pngwio.c" />
|
||||||
|
<ClCompile Include="..\..\..\pngwrite.c" />
|
||||||
|
<ClCompile Include="..\..\..\pngwtran.c" />
|
||||||
|
<ClCompile Include="..\..\..\pngwutil.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="..\..\..\scripts\pngwin.rc">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">true</ExcludedFromBuild>
|
||||||
|
</ResourceCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
217
projects/vstudio/pngtest/pngtest.vcxproj
Normal file
@@ -0,0 +1,217 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug Library|Win32">
|
||||||
|
<Configuration>Debug Library</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release Library|Win32">
|
||||||
|
<Configuration>Release Library</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>pngtest</RootNamespace>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<Import Project="$(SolutionDir)\zlib.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<CustomBuildAfterTargets />
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<CustomBuildAfterTargets />
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<CustomBuildAfterTargets />
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<CustomBuildAfterTargets />
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level4</WarningLevel>
|
||||||
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||||
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<StringPooling>true</StringPooling>
|
||||||
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
|
<BrowseInformation>true</BrowseInformation>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalDependencies>libpng14.lib;zlib.lib;msvcrtd.lib;kernel32.lib</AdditionalDependencies>
|
||||||
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Message>Executing PNG test program</Message>
|
||||||
|
<Command>"$(OutDir)pngtest.exe" ..\..\..\pngtest.png "$(IntDir)pngout.png"</Command>
|
||||||
|
<Outputs>$(IntDir)pngout.png</Outputs>
|
||||||
|
<Inputs>..\..\..\pngtest.png;$(OutDir)pngtest.exe</Inputs>
|
||||||
|
</CustomBuildStep>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level4</WarningLevel>
|
||||||
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||||
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<StringPooling>true</StringPooling>
|
||||||
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
|
<BrowseInformation>true</BrowseInformation>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalDependencies>libpng14.lib;zlib.lib;msvcrtd.lib;kernel32.lib</AdditionalDependencies>
|
||||||
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Message>Executing PNG test program</Message>
|
||||||
|
<Command>"$(OutDir)pngtest.exe" ..\..\..\pngtest.png "$(IntDir)pngout.png"</Command>
|
||||||
|
<Outputs>$(IntDir)pngout.png</Outputs>
|
||||||
|
<Inputs>..\..\..\pngtest.png;$(OutDir)pngtest.exe</Inputs>
|
||||||
|
</CustomBuildStep>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level4</WarningLevel>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<Optimization>Full</Optimization>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(ZLib1Dir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||||
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
|
<StringPooling>true</StringPooling>
|
||||||
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
|
<BrowseInformation>true</BrowseInformation>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<AdditionalDependencies>libpng14.lib;msvcrt.lib;kernel32.lib</AdditionalDependencies>
|
||||||
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Message>Executing PNG test program</Message>
|
||||||
|
<Command>"$(OutDir)pngtest.exe" ..\..\..\pngtest.png "$(IntDir)pngout.png"</Command>
|
||||||
|
<Outputs>$(IntDir)pngout.png</Outputs>
|
||||||
|
<Inputs>..\..\..\pngtest.png;$(OutDir)pngtest.exe</Inputs>
|
||||||
|
</CustomBuildStep>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level4</WarningLevel>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<Optimization>Full</Optimization>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(ZLib1Dir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||||
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
|
<StringPooling>true</StringPooling>
|
||||||
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
|
<BrowseInformation>true</BrowseInformation>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<AdditionalDependencies>libpng14.lib;zlib.lib;msvcrt.lib;kernel32.lib</AdditionalDependencies>
|
||||||
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
|
<AdditionalLibraryDirectories>$(OutDir);$(ZLib1Dir)</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Message>Executing PNG test program</Message>
|
||||||
|
<Command>$(OutDir)pngtest.exe ..\..\..\pngtest.png $(IntDir)pngout.png</Command>
|
||||||
|
<Command>"$(OutDir)pngtest.exe" ..\..\..\pngtest.png "$(IntDir)pngout.png"</Command>
|
||||||
|
<Outputs>$(IntDir)pngout.png</Outputs>
|
||||||
|
<Inputs>..\..\..\pngtest.png;$(OutDir)pngtest.exe</Inputs>
|
||||||
|
</CustomBuildStep>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="..\..\..\pngtest.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
93
projects/vstudio/readme.txt
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
|
||||||
|
VisualStudio instructions
|
||||||
|
|
||||||
|
libpng version 1.4.12 - July 10, 2012
|
||||||
|
|
||||||
|
Copyright (c) 1998-2010 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
|
||||||
|
|
||||||
|
This directory contains support for building libpng under MicroSoft
|
||||||
|
VisualStudio 2010. It may also work under later versions of VisualStudio.
|
||||||
|
You should be familiar with VisualStudio before using this directory.
|
||||||
|
|
||||||
|
This is a slightly modified copy of the 'vstudio' solution from libpng
|
||||||
|
1.5; it is intended to provide compatibility for libpng 1.4 with later
|
||||||
|
releases of zlib (from 1.2.4) and to provide a migration aid for 1.5.
|
||||||
|
|
||||||
|
A 'VB' DLL is no longer produced - use the standard 'Release' DLL.
|
||||||
|
|
||||||
|
Initial preparations
|
||||||
|
====================
|
||||||
|
You should install the 'official' build of zlib on your system - follow the
|
||||||
|
instructions provided on http://www.zlib.net. When a new release is being
|
||||||
|
made of zlib the instructions disappear for a while until the new official
|
||||||
|
build is available. You will have to wait.
|
||||||
|
|
||||||
|
You must enter some information in zlib.props before attempting to build
|
||||||
|
with this 'solution'. Please read and edit zlib.props first. You will
|
||||||
|
probably not be familiar with the contents of zlib.props - do not worry,
|
||||||
|
it is mostly harmless.
|
||||||
|
|
||||||
|
Make sure that your official build layout matches the requirements listed
|
||||||
|
in zlib.props. Prior to zlib-1.2.4 the official build (1.2.3) placed
|
||||||
|
include and library files in different directories - if you find this
|
||||||
|
has happened just put them all in the same directory.
|
||||||
|
|
||||||
|
This is all you need to do to build the 'release' and 'release library'
|
||||||
|
configurations.
|
||||||
|
|
||||||
|
Debugging
|
||||||
|
=========
|
||||||
|
The release configurations default to /Ox optimization. Full debugging
|
||||||
|
information is produced (in the .pdb), but if you encounter a problem the
|
||||||
|
optimization may make it difficult to debug. Simply rebuild with a lower
|
||||||
|
optimization level (e.g. /Od.)
|
||||||
|
|
||||||
|
Stop reading here
|
||||||
|
=================
|
||||||
|
You have enough information to build a working application.
|
||||||
|
|
||||||
|
Debug versions have limited support
|
||||||
|
===================================
|
||||||
|
This solution includes limited support for debug versions of libpng. You
|
||||||
|
do not need these unless your own solution itself uses debug builds (it is
|
||||||
|
far more effective to debug on the release builds, there is no point building
|
||||||
|
a special debug build.)
|
||||||
|
|
||||||
|
If, despite the previous paragraph, you still feel you need a debug build you
|
||||||
|
will have to download the zlib source as well (http://www.zlib.net) and include
|
||||||
|
the directory where you unpack it in zlib.props. This solution will then be
|
||||||
|
able to build a minimal zlib sufficient for libpng. This build is only
|
||||||
|
suitable for making a debug libpng.
|
||||||
|
|
||||||
|
The debug build of libpng is minimally supported. Support for debug builds of
|
||||||
|
zlib is also minimal. You really don't want to do this.
|
||||||
|
|
||||||
|
This solution only supports the Multi-Threaded DLL C Runtime
|
||||||
|
============================================================
|
||||||
|
If you examine the solution you will find that it very deliberately lists
|
||||||
|
exactly which MicroSoft DLLs it is linking against. It explicitly links
|
||||||
|
against msvcrt.lib. The debug version links against msvcrtd.lib (this is
|
||||||
|
why it is a debug version - it's nothing to do with having any special
|
||||||
|
debug support, it doesn't).
|
||||||
|
|
||||||
|
These versions of the MicroSoft C runtime correspond to the compiler flags
|
||||||
|
/MD (release) and /MDd (debug) - the "Multi-Threaded DLL" implementation of the
|
||||||
|
C runtime library.
|
||||||
|
|
||||||
|
If you need to change this then you will have to make sure that both the
|
||||||
|
compiler flags and the ".lib" in the linker dependences match up. Fortunately
|
||||||
|
neither zlib nor libpng require libraries other than a C runtime and
|
||||||
|
kernel32.
|
||||||
|
|
||||||
|
You cannot pass (FILE*) objects from a different runtime (including msvcrtd
|
||||||
|
to msvcrt) to libpng. If you do then your program will crash within libpng
|
||||||
|
when it first makes a file read or write call.
|
||||||
|
|
||||||
|
It is likely if you have read this far that you have found you can't avoid
|
||||||
|
having multiple C runtimes in your program. This is OK, it does work, but
|
||||||
|
you will have to implement the libpng file read/write callbacks rather than
|
||||||
|
using the internal libpng default. This is easy.
|
||||||
49
projects/vstudio/vstudio.sln
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||||
|
# Visual C++ Express 2010
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "libpng\libpng.vcxproj", "{D6973076-9317-4EF2-A0B8-B7A18AC0713E}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{18040998-CC22-2BAE-FE7A-C0A3038F1D5C} = {18040998-CC22-2BAE-FE7A-C0A3038F1D5C}
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pngtest", "pngtest\pngtest.vcxproj", "{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {D6973076-9317-4EF2-A0B8-B7A18AC0713E}
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "zlib\zlib.vcxproj", "{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug Library|Win32 = Debug Library|Win32
|
||||||
|
Debug|Win32 = Debug|Win32
|
||||||
|
Release Library|Win32 = Release Library|Win32
|
||||||
|
Release|Win32 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
||||||
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
||||||
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
||||||
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release Library|Win32.Build.0 = Release Library|Win32
|
||||||
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
||||||
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
||||||
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
||||||
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release Library|Win32.Build.0 = Release Library|Win32
|
||||||
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
||||||
|
{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
||||||
|
{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}.Release Library|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}.Release|Win32.ActiveCfg = Debug|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
43
projects/vstudio/zlib.props
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
* zlib.props - location of zlib source and build
|
||||||
|
*
|
||||||
|
* libpng version 1.4.12 - July 10, 2012
|
||||||
|
*
|
||||||
|
* Copyright (c) 1998-2011 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
|
||||||
|
|
||||||
|
* You must edit this file to record the location of the zlib
|
||||||
|
* official and debug builds unless they are in the default
|
||||||
|
* directories:
|
||||||
|
|
||||||
|
* official: zlib1
|
||||||
|
* debug: zlib debug
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<!-- Place the name of the directory containing the official
|
||||||
|
build of zlib and the corresponding header files in this
|
||||||
|
property. The directory is expected to contain at least:
|
||||||
|
|
||||||
|
zdll.lib # The DLL import library
|
||||||
|
zlib.lib # The static library
|
||||||
|
zlib.h # The header file
|
||||||
|
zconf.h # Another header file included by zlib.h
|
||||||
|
-->
|
||||||
|
<ZLib1Dir>..\..\..\..\zlib125-dll\zlib-1.2.5</ZLib1Dir>
|
||||||
|
|
||||||
|
<!-- Place the name of the directory containing the source of
|
||||||
|
zlib used for debugging in this property.
|
||||||
|
The directory need only contain the '.c' and '.h' files
|
||||||
|
from the source. For your own sanity make sure that the
|
||||||
|
'.h' files in the source match those from the 'official'
|
||||||
|
build above.
|
||||||
|
-->
|
||||||
|
<ZLibSrcDir>..\..\..\..\zlib-1.2.5</ZLibSrcDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
112
projects/vstudio/zlib/zlib.vcxproj
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug Library|Win32">
|
||||||
|
<Configuration>Debug Library</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="$(ZLibSrcDir)\adler32.c" />
|
||||||
|
<ClCompile Include="$(ZLibSrcDir)\compress.c" />
|
||||||
|
<ClCompile Include="$(ZLibSrcDir)\crc32.c" />
|
||||||
|
<ClCompile Include="$(ZLibSrcDir)\deflate.c" />
|
||||||
|
<ClCompile Include="$(ZLibSrcDir)\infback.c" />
|
||||||
|
<ClCompile Include="$(ZLibSrcDir)\inffast.c" />
|
||||||
|
<ClCompile Include="$(ZLibSrcDir)\inflate.c" />
|
||||||
|
<ClCompile Include="$(ZLibSrcDir)\inftrees.c" />
|
||||||
|
<ClCompile Include="$(ZLibSrcDir)\trees.c" />
|
||||||
|
<ClCompile Include="$(ZLibSrcDir)\uncompr.c" />
|
||||||
|
<ClCompile Include="$(ZLibSrcDir)\zutil.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<Import Project="$(SolutionDir)\zlib.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PreprocessorDefinitions>WIN32;ZLIB_DLL;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<Version>1</Version>
|
||||||
|
<AdditionalDependencies>msvcrtd.lib;kernel32.lib</AdditionalDependencies>
|
||||||
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;DEBUGZLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>English</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>libpng</string>
|
|
||||||
<key>CFBundleIconFile</key>
|
|
||||||
<string></string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.carbonframeworktemplate</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>FMWK</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>1.0</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>1.0</string>
|
|
||||||
<key>CSResourcesFileMapped</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,9 +1,3 @@
|
|||||||
The xcode project has not been entirely updated to libpng-1.4.0.
|
|
||||||
|
|
||||||
It needs to *not* depend on pnggccrd.c or pngvcrd.c
|
1 September 2010: Philippe Hausler updated the xcode project to work
|
||||||
|
with libpng-1.4.x and added iOS targets for simulator and device.
|
||||||
It needs to PNG_NO_PEDANTIC_WARNINGS in the CFLAGS while building
|
|
||||||
the library, but not while building an application.
|
|
||||||
|
|
||||||
If an updated version is not received, this project will
|
|
||||||
be removed when libpng-1.4.0 is released.
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
Makefiles for libpng version 1.4.0 - January 3, 2010
|
Makefiles for libpng version 1.4.12 - July 10, 2012
|
||||||
|
|
||||||
makefile.linux => Linux/ELF makefile
|
makefile.linux => Linux/ELF makefile
|
||||||
(gcc, creates libpng14.so.14.1.4.0)
|
(gcc, creates libpng14.so.14.1.4.12)
|
||||||
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 @@ Makefiles for libpng version 1.4.0 - January 3, 2010
|
|||||||
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 libpng14.so.14.1.4.0)
|
(gcc, creates libpng14.so.14.1.4.12)
|
||||||
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
|
||||||
@@ -36,12 +36,12 @@ Makefiles for libpng version 1.4.0 - January 3, 2010
|
|||||||
makefile.os2 => OS/2 Makefile (gcc and emx, requires pngos2.def)
|
makefile.os2 => OS/2 Makefile (gcc and emx, requires pngos2.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 libpng14.so.14.1.4.0)
|
creates libpng14.so.14.1.4.12)
|
||||||
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 libpng14.so.14.1.4.0)
|
creates libpng14.so.14.1.4.12)
|
||||||
makefile.so9 => Solaris 9 makefile (gcc,
|
makefile.so9 => Solaris 9 makefile (gcc,
|
||||||
creates libpng14.so.14.1.4.0)
|
creates libpng14.so.14.1.4.12)
|
||||||
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
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
# Modeled after libxml-config.
|
# Modeled after libxml-config.
|
||||||
|
|
||||||
version=1.4.0
|
version=1.4.12
|
||||||
prefix=""
|
prefix=""
|
||||||
libdir=""
|
libdir=""
|
||||||
libs=""
|
libs=""
|
||||||
|
|||||||