Imported from libpng-1.0.7beta14.tar

This commit is contained in:
Glenn Randers-Pehrson 2000-05-17 17:39:34 -05:00
parent ec61c23d56
commit fc4a143ec6
42 changed files with 202 additions and 153 deletions

View File

@ -1,5 +1,5 @@
Libpng 1.0.7beta13 - May 16, 2000 Libpng 1.0.7beta14 - May 17, 2000
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.
@ -72,6 +72,9 @@ Changes since the last public release (1.0.6):
Made the default PNG_USE_LOCAL_ARRAYS depend on PNG_DLL instead of WIN32. Made the default PNG_USE_LOCAL_ARRAYS depend on PNG_DLL instead of WIN32.
Make png_free_data() ignore its final parameter when freeing data that can Make png_free_data() ignore its final parameter when freeing data that can
have multiple instances (text, sPLT, unknowns). have multiple instances (text, sPLT, unknowns).
Removed info_ptr->valid tests from png_free_data(), as in version 1.0.5.
Added png_set_invalid() function.
Fixed incorrect illustrations of png_destroy_write_struct() in example.c.
Send comments/corrections/commendations to Send comments/corrections/commendations to
png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu

View File

@ -753,6 +753,11 @@ version 1.0.7beta13 [May 16, 2000]
Made the default PNG_USE_LOCAL_ARRAYS depend on PNG_DLL instead of WIN32. Made the default PNG_USE_LOCAL_ARRAYS depend on PNG_DLL instead of WIN32.
Make png_free_data() ignore its final parameter when freeing data that can Make png_free_data() ignore its final parameter when freeing data that can
have multiple instances (text, sPLT, unknowns). have multiple instances (text, sPLT, unknowns).
version 1.0.7beta14 [May 17, 2000]
Fixed a new bug in png_set_rows().
Removed info_ptr->valid tests from png_free_data(), as in version 1.0.5.
Added png_set_invalid() function.
Fixed incorrect illustrations of png_destroy_write_struct() in example.c.
Send comments/corrections/commendations to Send comments/corrections/commendations to
png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu

12
INSTALL
View File

@ -1,5 +1,5 @@
Installing libpng version 1.0.7beta13 - May 16, 2000 Installing libpng version 1.0.7beta14 - May 17, 2000
Before installing libpng, you must first install zlib. zlib Before installing libpng, you must first install zlib. zlib
can usually be found wherever you got libpng. zlib can be can usually be found wherever you got libpng. zlib can be
@ -10,7 +10,7 @@ zlib.h and zconf.h include files that correspond to the
version of zlib that's installed. 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.0.7beta13" or "lpng106" and "zlib-1.1.3" might be called "libpng-1.0.7beta14" or "lpng106" and "zlib-1.1.3"
or "zlib113") so that you have directories called "zlib" and "libpng". or "zlib113") so that you have directories called "zlib" and "libpng".
Your directory structure should look like this: Your directory structure should look like this:
@ -47,8 +47,8 @@ The files that are presently available in the scripts directory
include include
makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.linux => Linux/ELF makefile (gcc, creates libpng.so.2.1.0.7beta13) makefile.linux => Linux/ELF makefile (gcc, creates libpng.so.2.1.0.7beta14)
makefile.gcmmx => Linux/ELF makefile (gcc, creates libpng.so.2.1.0.7beta13, makefile.gcmmx => Linux/ELF makefile (gcc, creates libpng.so.2.1.0.7beta14,
uses assembler code tuned for Intel MMX platform) uses assembler code tuned for Intel MMX platform)
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
@ -60,9 +60,9 @@ include
makefile.intel => Intel C/C++ version 4.0 and later makefile.intel => Intel C/C++ version 4.0 and later
libpng.icc => Project file for IBM VisualAge/C++ version 4.0 or later libpng.icc => Project file for IBM VisualAge/C++ version 4.0 or later
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib) makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.0.7beta13) makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.0.7beta14)
makefile.sunos => Sun makefile makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.7beta13) makefile.solaris => Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.7beta14)
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.mips => MIPS makefile makefile.mips => MIPS makefile
makefile.acorn => Acorn makefile makefile.acorn => Acorn makefile

View File

@ -5,7 +5,7 @@ Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
Copyright (c) 1996, 1997 Andreas Dilger Copyright (c) 1996, 1997 Andreas Dilger
(libpng versions 0.90, December 1996, through 0.96, May 1997) (libpng versions 0.90, December 1996, through 0.96, May 1997)
Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
(libpng versions 0.97, January 1998, through 1.0.7beta13, May 16, 2000) (libpng versions 0.97, January 1998, through 1.0.7beta14, May 17, 2000)
For the purposes of this copyright and license, "Contributing Authors" For the purposes of this copyright and license, "Contributing Authors"
is defined as the following set of individuals: is defined as the following set of individuals:
@ -68,4 +68,4 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson Glenn Randers-Pehrson
randeg@alum.rpi.edu randeg@alum.rpi.edu
May 16, 2000 May 17, 2000

10
README
View File

@ -1,4 +1,4 @@
README for libpng 1.0.7beta13 - May 16, 2000 (shared library 2.1) README for libpng 1.0.7beta14 - May 17, 2000 (shared library 2.1)
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.
@ -172,9 +172,9 @@ Files in this distribution:
descrip.mms => VMS makefile for MMS or MMK descrip.mms => VMS makefile for MMS or MMK
makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.linux => Linux/ELF makefile makefile.linux => Linux/ELF makefile
(gcc, creates libpng.so.2.1.0.7beta13) (gcc, creates libpng.so.2.1.0.7beta14)
makefile.gcmmx => Linux/ELF makefile (gcc, creates makefile.gcmmx => Linux/ELF makefile (gcc, creates
libpng.so.2.1.0.7beta13, uses assembler code libpng.so.2.1.0.7beta14, uses assembler code
tuned for Intel MMX platform) tuned for Intel MMX platform)
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
@ -186,10 +186,10 @@ Files in this distribution:
makefile.intel => Intel C/C++ version 4.0 and later makefile.intel => Intel C/C++ version 4.0 and later
libpng.icc => Project file, IBM VisualAge/C++ 4.0 or later libpng.icc => Project file, IBM VisualAge/C++ 4.0 or later
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib) makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.0.7beta13) makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.0.7beta14)
makefile.sunos => Sun makefile makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile makefile.solaris => Solaris 2.X makefile
(gcc, creates libpng.so.2.1.0.7beta13) (gcc, creates libpng.so.2.1.0.7beta14)
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.mips => MIPS makefile makefile.mips => MIPS makefile
makefile.acorn => Acorn makefile makefile.acorn => Acorn makefile

View File

@ -1,13 +1,13 @@
Y2K compliance in libpng: Y2K compliance in libpng:
========================= =========================
May 16, 2000 May 17, 2000
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.0.7beta13 are Y2K compliant. It is my belief that earlier upward through 1.0.7beta14 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 Libpng only has three year fields. One is a 2-byte unsigned integer

2
configure vendored
View File

@ -1,5 +1,5 @@
echo " echo "
There is no \"configure\" script for Libpng-1.0.7beta13. Instead, please There is no \"configure\" script for Libpng-1.0.7beta14. Instead, please
copy the appropriate makefile for your system from the \"scripts\" copy the appropriate makefile for your system from the \"scripts\"
directory. Read the INSTALL file for more details. directory. Read the INSTALL file for more details.
" "

View File

@ -566,7 +566,7 @@ void write_png(char *file_name /* , ... other image information ... */)
{ {
/* If we get here, we had a problem reading the file */ /* If we get here, we had a problem reading the file */
fclose(fp); fclose(fp);
png_destroy_write_struct(&png_ptr, (png_infopp)info_ptr); png_destroy_write_struct(&png_ptr, &info_ptr);
return; return;
} }
@ -762,7 +762,7 @@ void write_png(char *file_name /* , ... other image information ... */)
png_free(png_ptr, trans); png_free(png_ptr, trans);
/* clean up after the write, and free any memory allocated */ /* clean up after the write, and free any memory allocated */
png_destroy_write_struct(&png_ptr, (png_infopp)info_ptr); png_destroy_write_struct(&png_ptr, &info_ptr);
/* close the file */ /* close the file */
fclose(fp); fclose(fp);

View File

@ -1,6 +1,6 @@
.TH LIBPNG 3 "May 16, 2000" .TH LIBPNG 3 "May 17, 2000"
.SH NAME .SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.0.7beta13 libpng \- Portable Network Graphics (PNG) Reference Library 1.0.7beta14
.SH SYNOPSIS .SH SYNOPSIS
\fI\fB \fI\fB
@ -488,6 +488,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.7beta13
\fI\fB \fI\fB
\fBvoid png_set_invalid (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, int \fImask\fP\fB);\fP
\fI\fB
\fBvoid png_set_invert_alpha (png_structp \fIpng_ptr\fP\fB);\fP \fBvoid png_set_invert_alpha (png_structp \fIpng_ptr\fP\fB);\fP
\fI\fB \fI\fB
@ -743,7 +747,7 @@ Following is a copy of the libpng.txt file that accompanies libpng.
.SH LIBPNG.TXT .SH LIBPNG.TXT
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.0.7beta13 - May 16, 2000 libpng version 1.0.7beta14 - May 17, 2000
Updated and distributed by Glenn Randers-Pehrson Updated and distributed by Glenn Randers-Pehrson
<randeg@alum.rpi.edu> <randeg@alum.rpi.edu>
Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@ -1922,7 +1926,7 @@ When you are done, you can free all memory allocated by libpng like this:
&end_info); &end_info);
It is also possible to individually free the info_ptr members that It is also possible to individually free the info_ptr members that
point to libpng-allocated storage with the following functions: point to libpng-allocated storage with the following function:
png_free_data(png_ptr, info_ptr, mask, n) png_free_data(png_ptr, info_ptr, mask, n)
mask - identifies data to be freed, a mask mask - identifies data to be freed, a mask
@ -1937,7 +1941,7 @@ point to libpng-allocated storage with the following functions:
n - sequence number of item to be freed n - sequence number of item to be freed
(-1 for all items) (-1 for all items)
These functions may be safely called when the relevant storage has This function may be safely called when the relevant storage has
already been freed, or has not yet been allocated, or was allocated already been freed, or has not yet been allocated, or was allocated
by the user and not by libpng, and will in those by the user and not by libpng, and will in those
cases do nothing. The "n" parameter is ignored if only one item cases do nothing. The "n" parameter is ignored if only one item
@ -1982,6 +1986,23 @@ the key member, and png_free_data() will free only text_ptr.key. Similarly,
if you transfer responsibility for free'ing text_ptr from libpng to your if you transfer responsibility for free'ing text_ptr from libpng to your
application, your application must not separately free those members. application, your application must not separately free those members.
The png_free_data() function will turn off the "valid" flag for anything
it frees. If you need to turn the flag off for a chunk that was freed by your
application instead of by libpng, you can use
png_set_invalid(png_ptr, info_ptr, mask);
mask - identifies the chunks to be made invalid,
containing the logical OR of one or
more of
PNG_INFO_gAMA, PNG_INFO_sBIT,
PNG_INFO_cHRM, PNG_INFO_PLTE,
PNG_INFO_tRNS, PNG_INFO_bKGD,
PNG_INFO_hIST, PNG_INFO_pHYs,
PNG_INFO_oFFs, PNG_INFO_tIME,
PNG_INFO_pCAL, PNG_INFO_sRGB,
PNG_INFO_iCCP, PNG_INFO_sPLT,
PNG_INFO_sCAL, PNG_INFO_IDAT
For a more compact example of reading a PNG image, see the file example.c. For a more compact example of reading a PNG image, see the file example.c.
.SS Reading PNG files progressively .SS Reading PNG files progressively
@ -2880,7 +2901,7 @@ When you are done, you can free all memory used by libpng like this:
png_destroy_write_struct(&png_ptr, &info_ptr); png_destroy_write_struct(&png_ptr, &info_ptr);
It is also possible to individually free the info_ptr members that It is also possible to individually free the info_ptr members that
point to libpng-allocated storage with the following functions: point to libpng-allocated storage with the following function:
png_free_data(png_ptr, info_ptr, mask, n) png_free_data(png_ptr, info_ptr, mask, n)
mask - identifies data to be freed, a mask mask - identifies data to be freed, a mask
@ -2895,7 +2916,7 @@ point to libpng-allocated storage with the following functions:
n - sequence number of item to be freed n - sequence number of item to be freed
(-1 for all items) (-1 for all items)
These functions may be safely called when the relevant storage has This function may be safely called when the relevant storage has
already been freed, or has not yet been allocated, or was allocated already been freed, or has not yet been allocated, or was allocated
by the user and not by libpng, and will in those by the user and not by libpng, and will in those
cases do nothing. The "n" parameter is ignored if only one item cases do nothing. The "n" parameter is ignored if only one item
@ -3356,13 +3377,13 @@ application:
.SH VII. Y2K Compliance in libpng .SH VII. Y2K Compliance in libpng
May 16, 2000 May 17, 2000
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.0.7beta13 are Y2K compliant. It is my belief that earlier upward through 1.0.7beta14 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
@ -3503,7 +3524,7 @@ possible without all of you.
Thanks to Frank J. T. Wojcik for helping with the documentation. Thanks to Frank J. T. Wojcik for helping with the documentation.
Libpng version 1.0.7beta13 - May 16, 2000: Libpng version 1.0.7beta14 - May 17, 2000:
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu). Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
@ -3518,7 +3539,7 @@ Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
Copyright (c) 1996, 1997 Andreas Dilger Copyright (c) 1996, 1997 Andreas Dilger
(libpng versions 0.89c, May 1996, through 0.96, May 1997) (libpng versions 0.89c, May 1996, through 0.96, May 1997)
Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
(libpng versions 0.97, January 1998, through 1.0.7beta13, May 16, 2000) (libpng versions 0.97, January 1998, through 1.0.7beta14, May 17, 2000)
For the purposes of this copyright and license, "Contributing Authors" For the purposes of this copyright and license, "Contributing Authors"
is defined as the following set of individuals: is defined as the following set of individuals:

View File

@ -1,6 +1,6 @@
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.0.7beta13 - May 16, 2000 libpng version 1.0.7beta14 - May 17, 2000
Updated and distributed by Glenn Randers-Pehrson Updated and distributed by Glenn Randers-Pehrson
<randeg@alum.rpi.edu> <randeg@alum.rpi.edu>
Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@ -1179,7 +1179,7 @@ When you are done, you can free all memory allocated by libpng like this:
&end_info); &end_info);
It is also possible to individually free the info_ptr members that It is also possible to individually free the info_ptr members that
point to libpng-allocated storage with the following functions: point to libpng-allocated storage with the following function:
png_free_data(png_ptr, info_ptr, mask, n) png_free_data(png_ptr, info_ptr, mask, n)
mask - identifies data to be freed, a mask mask - identifies data to be freed, a mask
@ -1194,7 +1194,7 @@ point to libpng-allocated storage with the following functions:
n - sequence number of item to be freed n - sequence number of item to be freed
(-1 for all items) (-1 for all items)
These functions may be safely called when the relevant storage has This function may be safely called when the relevant storage has
already been freed, or has not yet been allocated, or was allocated already been freed, or has not yet been allocated, or was allocated
by the user and not by libpng, and will in those by the user and not by libpng, and will in those
cases do nothing. The "n" parameter is ignored if only one item cases do nothing. The "n" parameter is ignored if only one item
@ -1239,6 +1239,23 @@ the key member, and png_free_data() will free only text_ptr.key. Similarly,
if you transfer responsibility for free'ing text_ptr from libpng to your if you transfer responsibility for free'ing text_ptr from libpng to your
application, your application must not separately free those members. application, your application must not separately free those members.
The png_free_data() function will turn off the "valid" flag for anything
it frees. If you need to turn the flag off for a chunk that was freed by your
application instead of by libpng, you can use
png_set_invalid(png_ptr, info_ptr, mask);
mask - identifies the chunks to be made invalid,
containing the logical OR of one or
more of
PNG_INFO_gAMA, PNG_INFO_sBIT,
PNG_INFO_cHRM, PNG_INFO_PLTE,
PNG_INFO_tRNS, PNG_INFO_bKGD,
PNG_INFO_hIST, PNG_INFO_pHYs,
PNG_INFO_oFFs, PNG_INFO_tIME,
PNG_INFO_pCAL, PNG_INFO_sRGB,
PNG_INFO_iCCP, PNG_INFO_sPLT,
PNG_INFO_sCAL, PNG_INFO_IDAT
For a more compact example of reading a PNG image, see the file example.c. For a more compact example of reading a PNG image, see the file example.c.
Reading PNG files progressively Reading PNG files progressively
@ -2137,7 +2154,7 @@ When you are done, you can free all memory used by libpng like this:
png_destroy_write_struct(&png_ptr, &info_ptr); png_destroy_write_struct(&png_ptr, &info_ptr);
It is also possible to individually free the info_ptr members that It is also possible to individually free the info_ptr members that
point to libpng-allocated storage with the following functions: point to libpng-allocated storage with the following function:
png_free_data(png_ptr, info_ptr, mask, n) png_free_data(png_ptr, info_ptr, mask, n)
mask - identifies data to be freed, a mask mask - identifies data to be freed, a mask
@ -2152,7 +2169,7 @@ point to libpng-allocated storage with the following functions:
n - sequence number of item to be freed n - sequence number of item to be freed
(-1 for all items) (-1 for all items)
These functions may be safely called when the relevant storage has This function may be safely called when the relevant storage has
already been freed, or has not yet been allocated, or was allocated already been freed, or has not yet been allocated, or was allocated
by the user and not by libpng, and will in those by the user and not by libpng, and will in those
cases do nothing. The "n" parameter is ignored if only one item cases do nothing. The "n" parameter is ignored if only one item
@ -2613,13 +2630,13 @@ application:
VII. Y2K Compliance in libpng VII. Y2K Compliance in libpng
May 16, 2000 May 17, 2000
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.0.7beta13 are Y2K compliant. It is my belief that earlier upward through 1.0.7beta14 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

View File

@ -1,6 +1,6 @@
.TH LIBPNGPF 3 "May 16, 2000" .TH LIBPNGPF 3 "May 17, 2000"
.SH NAME .SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.0.7beta13 libpng \- Portable Network Graphics (PNG) Reference Library 1.0.7beta14
(private functions) (private functions)
.SH SYNOPSIS .SH SYNOPSIS
\fB#include <png.h>\fP \fB#include <png.h>\fP

2
png.5
View File

@ -1,4 +1,4 @@
.TH PNG 5 "May 16, 2000" .TH PNG 5 "May 17, 2000"
.SH NAME .SH NAME
png \- Portable Network Graphics (PNG) format png \- Portable Network Graphics (PNG) format
.SH DESCRIPTION .SH DESCRIPTION

121
png.c
View File

@ -1,7 +1,7 @@
/* png.c - location for general purpose libpng functions /* png.c - location for general purpose libpng functions
* *
* libpng version 1.0.7beta13 - May 16, 2000 * libpng version 1.0.7beta14 - May 17, 2000
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@ -14,14 +14,14 @@
#include "png.h" #include "png.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_0_7beta13 Your_png_h_is_not_version_1_0_7beta13; typedef version_1_0_7beta14 Your_png_h_is_not_version_1_0_7beta14;
/* Version information for C files. This had better match the version /* Version information for C files. This had better match the version
* string defined in png.h. */ * string defined in png.h. */
#ifdef PNG_USE_GLOBAL_ARRAYS #ifdef PNG_USE_GLOBAL_ARRAYS
/* png_libpng_ver was changed to a function in version 1.0.5c */ /* png_libpng_ver was changed to a function in version 1.0.5c */
char png_libpng_ver[12] = "1.0.7beta13"; char png_libpng_ver[12] = "1.0.7beta14";
/* png_sig was changed to a function in version 1.0.5c */ /* png_sig was changed to a function in version 1.0.5c */
/* Place to hold the signature string for a PNG file. */ /* Place to hold the signature string for a PNG file. */
@ -289,14 +289,14 @@ png_free_data(png_structp png_ptr, png_infop info_ptr, png_uint_32 mask, int num
#if defined(PNG_TEXT_SUPPORTED) #if defined(PNG_TEXT_SUPPORTED)
/* free text item num or (if num == -1) all text items */ /* free text item num or (if num == -1) all text items */
#ifdef PNG_FREE_ME_SUPPORTED #ifdef PNG_FREE_ME_SUPPORTED
if (mask & info_ptr->free_me & PNG_FREE_TEXT) if ((mask & PNG_FREE_TEXT) & info_ptr->free_me)
#else #else
if (mask & PNG_FREE_TEXT) if (mask & PNG_FREE_TEXT)
#endif #endif
{ {
if (num != -1) if (num != -1)
{ {
if (info_ptr->text[num].key) if (info_ptr->text && info_ptr->text[num].key)
{ {
png_free(png_ptr, info_ptr->text[num].key); png_free(png_ptr, info_ptr->text[num].key);
info_ptr->text[num].key = NULL; info_ptr->text[num].key = NULL;
@ -304,15 +304,12 @@ if (mask & PNG_FREE_TEXT)
} }
else else
{ {
if (info_ptr->text != NULL)
{
int i; int i;
for (i = 0; i < info_ptr->num_text; i++) for (i = 0; i < info_ptr->num_text; i++)
png_free_data(png_ptr, info_ptr, PNG_FREE_TEXT, i); png_free_data(png_ptr, info_ptr, PNG_FREE_TEXT, i);
png_free(png_ptr, info_ptr->text); png_free(png_ptr, info_ptr->text);
info_ptr->text = NULL; info_ptr->text = NULL;
info_ptr->num_text=0; info_ptr->num_text=0;
}
} }
} }
#endif #endif
@ -320,94 +317,82 @@ if (mask & PNG_FREE_TEXT)
#if defined(PNG_tRNS_SUPPORTED) #if defined(PNG_tRNS_SUPPORTED)
/* free any tRNS entry */ /* free any tRNS entry */
#ifdef PNG_FREE_ME_SUPPORTED #ifdef PNG_FREE_ME_SUPPORTED
if (mask & PNG_FREE_TRNS & info_ptr->free_me) if ((mask & PNG_FREE_TRNS) & info_ptr->free_me)
#else #else
if ((mask & PNG_FREE_TRNS) && (png_ptr->flags & PNG_FLAG_FREE_TRNS)) if ((mask & PNG_FREE_TRNS) && (png_ptr->flags & PNG_FLAG_FREE_TRNS))
#endif #endif
{ {
if (info_ptr->valid & PNG_INFO_tRNS) png_free(png_ptr, info_ptr->trans);
{ info_ptr->valid &= ~PNG_INFO_tRNS;
png_free(png_ptr, info_ptr->trans);
info_ptr->valid &= ~PNG_INFO_tRNS;
}
} }
#endif #endif
#if defined(PNG_sCAL_SUPPORTED) #if defined(PNG_sCAL_SUPPORTED)
/* free any sCAL entry */ /* free any sCAL entry */
#ifdef PNG_FREE_ME_SUPPORTED #ifdef PNG_FREE_ME_SUPPORTED
if (mask & PNG_FREE_SCAL & info_ptr->free_me) if ((mask & PNG_FREE_SCAL) & info_ptr->free_me)
#else #else
if (mask & PNG_FREE_SCAL) if (mask & PNG_FREE_SCAL)
#endif #endif
{ {
if (info_ptr->valid & PNG_INFO_sCAL)
{
#if defined(PNG_FIXED_POINT_SUPPORTED) && !defined(PNG_FLOATING_POINT_SUPPORTED) #if defined(PNG_FIXED_POINT_SUPPORTED) && !defined(PNG_FLOATING_POINT_SUPPORTED)
png_free(png_ptr, info_ptr->scal_s_width); png_free(png_ptr, info_ptr->scal_s_width);
png_free(png_ptr, info_ptr->scal_s_height); png_free(png_ptr, info_ptr->scal_s_height);
#endif #endif
info_ptr->valid &= ~PNG_INFO_sCAL; info_ptr->valid &= ~PNG_INFO_sCAL;
}
} }
#endif #endif
#if defined(PNG_pCAL_SUPPORTED) #if defined(PNG_pCAL_SUPPORTED)
/* free any pCAL entry */ /* free any pCAL entry */
#ifdef PNG_FREE_ME_SUPPORTED #ifdef PNG_FREE_ME_SUPPORTED
if (mask & PNG_FREE_PCAL & info_ptr->free_me) if ((mask & PNG_FREE_PCAL) & info_ptr->free_me)
#else #else
if (mask & PNG_FREE_PCAL) if (mask & PNG_FREE_PCAL)
#endif #endif
{ {
if (info_ptr->valid & PNG_INFO_pCAL) png_free(png_ptr, info_ptr->pcal_purpose);
{ png_free(png_ptr, info_ptr->pcal_units);
png_free(png_ptr, info_ptr->pcal_purpose); if (info_ptr->pcal_params != NULL)
png_free(png_ptr, info_ptr->pcal_units); {
if (info_ptr->pcal_params != NULL) int i;
{ for (i = 0; i < (int)info_ptr->pcal_nparams; i++)
int i; png_free(png_ptr, info_ptr->pcal_params[i]);
for (i = 0; i < (int)info_ptr->pcal_nparams; i++) png_free(png_ptr, info_ptr->pcal_params);
{ }
png_free(png_ptr, info_ptr->pcal_params[i]); info_ptr->valid &= ~PNG_INFO_pCAL;
}
png_free(png_ptr, info_ptr->pcal_params);
info_ptr->valid &= ~PNG_INFO_pCAL;
}
}
} }
#endif #endif
#if defined(PNG_iCCP_SUPPORTED) #if defined(PNG_iCCP_SUPPORTED)
/* free any iCCP entry */ /* free any iCCP entry */
#ifdef PNG_FREE_ME_SUPPORTED #ifdef PNG_FREE_ME_SUPPORTED
if (mask & PNG_FREE_ICCP & info_ptr->free_me) if ((mask & PNG_FREE_ICCP) & info_ptr->free_me)
#else #else
if (mask & PNG_FREE_ICCP) if (mask & PNG_FREE_ICCP)
#endif #endif
{ {
if (info_ptr->valid & PNG_INFO_iCCP) png_free(png_ptr, info_ptr->iccp_name);
{ png_free(png_ptr, info_ptr->iccp_profile);
png_free(png_ptr, info_ptr->iccp_name); info_ptr->valid &= ~PNG_INFO_iCCP;
png_free(png_ptr, info_ptr->iccp_profile);
info_ptr->valid &= ~PNG_INFO_iCCP;
}
} }
#endif #endif
#if defined(PNG_sPLT_SUPPORTED) #if defined(PNG_sPLT_SUPPORTED)
/* free a given sPLT entry, or (if num == -1) all sPLT entries */ /* free a given sPLT entry, or (if num == -1) all sPLT entries */
#ifdef PNG_FREE_ME_SUPPORTED #ifdef PNG_FREE_ME_SUPPORTED
if (mask & PNG_FREE_SPLT & info_ptr->free_me) if ((mask & PNG_FREE_SPLT) & info_ptr->free_me)
#else #else
if (mask & PNG_FREE_SPLT) if (mask & PNG_FREE_SPLT)
#endif #endif
{ {
if (num != -1) if (num != -1)
{ {
png_free(png_ptr, info_ptr->splt_palettes[num].name); if(info_ptr->splt_palettes)
png_free(png_ptr, info_ptr->splt_palettes[num].entries); {
info_ptr->valid &= ~PNG_INFO_sPLT; png_free(png_ptr, info_ptr->splt_palettes[num].name);
png_free(png_ptr, info_ptr->splt_palettes[num].entries);
}
} }
else else
{ {
@ -420,21 +405,25 @@ if (mask & PNG_FREE_SPLT)
png_free(png_ptr, info_ptr->splt_palettes); png_free(png_ptr, info_ptr->splt_palettes);
info_ptr->splt_palettes_num = 0; info_ptr->splt_palettes_num = 0;
} }
info_ptr->valid &= ~PNG_INFO_sPLT;
} }
} }
#endif #endif
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
#ifdef PNG_FREE_ME_SUPPORTED #ifdef PNG_FREE_ME_SUPPORTED
if (mask & info_ptr->free_me & PNG_FREE_UNKN) if ((mask & PNG_FREE_UNKN) & info_ptr->free_me)
#else #else
if (mask & PNG_FREE_UNKN) if (mask & PNG_FREE_UNKN)
#endif #endif
{ {
if (num != -1) if (num != -1)
{ {
png_free(png_ptr, info_ptr->unknown_chunks[num].data); if(info_ptr->unknown_chunks)
info_ptr->unknown_chunks[num].data = NULL; {
png_free(png_ptr, info_ptr->unknown_chunks[num].data);
info_ptr->unknown_chunks[num].data = NULL;
}
} }
else else
{ {
@ -455,38 +444,32 @@ if (mask & PNG_FREE_UNKN)
#if defined(PNG_hIST_SUPPORTED) #if defined(PNG_hIST_SUPPORTED)
/* free any hIST entry */ /* free any hIST entry */
#ifdef PNG_FREE_ME_SUPPORTED #ifdef PNG_FREE_ME_SUPPORTED
if (mask & PNG_FREE_HIST & info_ptr->free_me) if ((mask & PNG_FREE_HIST) & info_ptr->free_me)
#else #else
if ((mask & PNG_FREE_HIST) && (png_ptr->flags & PNG_FLAG_FREE_HIST)) if ((mask & PNG_FREE_HIST) && (png_ptr->flags & PNG_FLAG_FREE_HIST))
#endif #endif
{ {
if (info_ptr->valid & PNG_INFO_hIST) png_free(png_ptr, info_ptr->hist);
{ info_ptr->valid &= ~PNG_INFO_hIST;
png_free(png_ptr, info_ptr->hist);
info_ptr->valid &= ~PNG_INFO_hIST;
}
} }
#endif #endif
/* free any PLTE entry that was internally allocated */ /* free any PLTE entry that was internally allocated */
#ifdef PNG_FREE_ME_SUPPORTED #ifdef PNG_FREE_ME_SUPPORTED
if (mask & PNG_FREE_PLTE & info_ptr->free_me) if ((mask & PNG_FREE_PLTE) & info_ptr->free_me)
#else #else
if ((mask & PNG_FREE_PLTE) && (png_ptr->flags & PNG_FLAG_FREE_PLTE)) if ((mask & PNG_FREE_PLTE) && (png_ptr->flags & PNG_FLAG_FREE_PLTE))
#endif #endif
{ {
if (info_ptr->valid & PNG_INFO_PLTE) png_zfree(png_ptr, info_ptr->palette);
{ info_ptr->valid &= ~PNG_INFO_PLTE;
png_zfree(png_ptr, info_ptr->palette); info_ptr->num_palette = 0;
info_ptr->valid &= ~(PNG_INFO_PLTE);
info_ptr->num_palette = 0;
}
} }
#if defined(PNG_INFO_IMAGE_SUPPORTED) #if defined(PNG_INFO_IMAGE_SUPPORTED)
/* free any image bits attached to the info structure */ /* free any image bits attached to the info structure */
#ifdef PNG_FREE_ME_SUPPORTED #ifdef PNG_FREE_ME_SUPPORTED
if (mask & info_ptr->free_me & PNG_FREE_ROWS) if ((mask & PNG_FREE_ROWS) & info_ptr->free_me)
#else #else
if (mask & PNG_FREE_ROWS) if (mask & PNG_FREE_ROWS)
#endif #endif
@ -499,8 +482,10 @@ if (mask & PNG_FREE_ROWS)
png_free(png_ptr, info_ptr->row_pointers); png_free(png_ptr, info_ptr->row_pointers);
info_ptr->row_pointers=NULL; info_ptr->row_pointers=NULL;
} }
info_ptr->valid &= ~PNG_INFO_IDAT;
} }
#endif #endif
#ifdef PNG_FREE_ME_SUPPORTED #ifdef PNG_FREE_ME_SUPPORTED
if(num == -1) if(num == -1)
info_ptr->free_me &= ~mask; info_ptr->free_me &= ~mask;
@ -606,7 +591,7 @@ png_charp PNGAPI
png_get_copyright(png_structp png_ptr) png_get_copyright(png_structp png_ptr)
{ {
if (png_ptr != NULL || png_ptr == NULL) /* silence compiler warning */ if (png_ptr != NULL || png_ptr == NULL) /* silence compiler warning */
return ("\n libpng version 1.0.7beta13 - May 16, 2000\n\ return ("\n libpng version 1.0.7beta14 - May 17, 2000\n\
Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.\n\ Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.\n\
Copyright (c) 1996, 1997 Andreas Dilger\n\ Copyright (c) 1996, 1997 Andreas Dilger\n\
Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson\n"); Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson\n");
@ -624,8 +609,8 @@ png_get_libpng_ver(png_structp png_ptr)
{ {
/* Version of *.c files used when building libpng */ /* Version of *.c files used when building libpng */
if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */ if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */
return("1.0.7beta13"); return("1.0.7beta14");
return("1.0.7beta13"); return("1.0.7beta14");
} }
png_charp PNGAPI png_charp PNGAPI

26
png.h
View File

@ -1,7 +1,7 @@
/* png.h - header file for PNG reference library /* png.h - header file for PNG reference library
* *
* libpng version 1.0.7beta13 - May 16, 2000 * libpng version 1.0.7beta14 - May 17, 2000
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@ -9,7 +9,7 @@
* Authors and maintainers: * Authors and maintainers:
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
* libpng versions 0.97, January 1998, through 1.0.7beta13 - May 16, 2000: Glenn * libpng versions 0.97, January 1998, through 1.0.7beta14 - May 17, 2000: Glenn
* See also "Contributing Authors", below. * See also "Contributing Authors", below.
* *
* Note about libpng version numbers: * Note about libpng version numbers:
@ -87,7 +87,7 @@
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger
* (libpng versions 0.89c, June 1996, through 0.96, May 1997) * (libpng versions 0.89c, June 1996, through 0.96, May 1997)
* Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
* (libpng versions 0.97, January 1998, through 1.0.7beta13, May 16, 2000) * (libpng versions 0.97, January 1998, through 1.0.7beta14, May 17, 2000)
* *
* For the purposes of this copyright and license, "Contributing Authors" * For the purposes of this copyright and license, "Contributing Authors"
* is defined as the following set of individuals: * is defined as the following set of individuals:
@ -162,13 +162,13 @@
* Y2K compliance in libpng: * Y2K compliance in libpng:
* ========================= * =========================
* *
* May 16, 2000 * May 17, 2000
* *
* 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.0.7beta13 are Y2K compliant. It is my belief that earlier * upward through 1.0.7beta14 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 * Libpng only has three year fields. One is a 2-byte unsigned integer
@ -224,7 +224,7 @@
*/ */
/* Version information for png.h - this should match the version in png.c */ /* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.0.7beta13" #define PNG_LIBPNG_VER_STRING "1.0.7beta14"
#define PNG_LIBPNG_VER_SONUM 2 #define PNG_LIBPNG_VER_SONUM 2
@ -234,7 +234,7 @@
#define PNG_LIBPNG_VER_RELEASE 7 #define PNG_LIBPNG_VER_RELEASE 7
/* This should match the numeric part of the final component of /* This should match the numeric part of the final component of
* PNG_LIBPNG_VER_STRING, omitting any leading zero: */ * PNG_LIBPNG_VER_STRING, omitting any leading zero: */
#define PNG_LIBPNG_VER_BUILD 13 #define PNG_LIBPNG_VER_BUILD 14
/* Careful here. At one time, Guy wanted to use 082, but that would be octal. /* Careful here. At one time, Guy wanted to use 082, but that would be octal.
* We must not include leading zeros. * We must not include leading zeros.
@ -1123,9 +1123,9 @@ struct png_struct_def
}; };
/* This prevents a compiler error in png_get_copyright() in png.c if png.c /* This prevents a compiler error in png_get_copyright() in png.c if png.c
and png.h are both at * version 1.0.7beta13 and png.h are both at * version 1.0.7beta14
*/ */
typedef png_structp version_1_0_7beta13; typedef png_structp version_1_0_7beta14;
typedef png_struct FAR * FAR * png_structpp; typedef png_struct FAR * FAR * png_structpp;
@ -2077,6 +2077,12 @@ extern PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp
png_ptr, png_infop info_ptr, png_unknown_chunkpp entries)); png_ptr, png_infop info_ptr, png_unknown_chunkpp entries));
#endif #endif
/* Png_free_data() will turn off the "valid" flag for anything it frees.
If you need to turn it off for a chunk that your application has freed,
you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); */
extern PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr,
png_infop info_ptr, int mask));
#if defined(PNG_INFO_IMAGE_SUPPORTED) #if defined(PNG_INFO_IMAGE_SUPPORTED)
/* The "params" pointer is currently not used and is for future expansion. */ /* The "params" pointer is currently not used and is for future expansion. */
extern PNG_EXPORT(void, png_read_png) PNGARG((png_structp png_ptr, extern PNG_EXPORT(void, png_read_png) PNGARG((png_structp png_ptr,
@ -2138,7 +2144,7 @@ extern PNG_EXPORT(png_charp,png_get_header_version) PNGARG((png_structp png_ptr)
extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr)); extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr));
#define PNG_HEADER_VERSION_STRING \ #define PNG_HEADER_VERSION_STRING \
" libpng version 1.0.7beta13 - May 16, 2000 (header)\n" " libpng version 1.0.7beta14 - May 17, 2000 (header)\n"
#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
/* With these routines we avoid an integer divide, which will be slower on /* With these routines we avoid an integer divide, which will be slower on

View File

@ -1,6 +1,6 @@
/* pngasmrd.h - assembler version of utilities to read a PNG file /* pngasmrd.h - assembler version of utilities to read a PNG file
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1999, 2000 Glenn Randers-Pehrson * Copyright (c) 1999, 2000 Glenn Randers-Pehrson
* *

View File

@ -1,6 +1,6 @@
/* pngconf.h - machine configurable file for libpng /* pngconf.h - machine configurable file for libpng
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngerror.c - stub functions for i/o and memory allocation /* pngerror.c - stub functions for i/o and memory allocation
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -6,7 +6,7 @@
* and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm * and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
* for Intel's performance analysis of the MMX vs. non-MMX code. * for Intel's performance analysis of the MMX vs. non-MMX code.
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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, Intel Corporation * Copyright (c) 1998, Intel Corporation
* Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson

View File

@ -1,7 +1,7 @@
/* pngget.c - retrieval of values from info struct /* pngget.c - retrieval of values from info struct
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngmem.c - stub functions for memory allocation /* pngmem.c - stub functions for memory allocation
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngpread.c - read a png file in push mode /* pngpread.c - read a png file in push mode
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngread.c - read a PNG file /* pngread.c - read a PNG file
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger
@ -697,7 +697,7 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
* not called png_set_interlace_handling(), the display_row buffer will * not called png_set_interlace_handling(), the display_row buffer will
* be ignored, so pass NULL to it. * be ignored, so pass NULL to it.
* *
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.7beta13 * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.7beta14
*/ */
void PNGAPI void PNGAPI
@ -746,7 +746,7 @@ png_read_rows(png_structp png_ptr, png_bytepp row,
* only call this function once. If you desire to have an image for * only call this function once. If you desire to have an image for
* each pass of a interlaced image, use png_read_rows() instead. * each pass of a interlaced image, use png_read_rows() instead.
* *
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.7beta13 * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.7beta14
*/ */
void PNGAPI void PNGAPI
png_read_image(png_structp png_ptr, png_bytepp image) png_read_image(png_structp png_ptr, png_bytepp image)

View File

@ -1,7 +1,7 @@
/* pngrio.c - functions for data input /* pngrio.c - functions for data input
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngrtran.c - transforms the data in a row for PNG readers /* pngrtran.c - transforms the data in a row for PNG readers
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngrutil.c - utilities to read a PNG file /* pngrutil.c - utilities to read a PNG file
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngset.c - storage of image information into info struct /* pngset.c - storage of image information into info struct
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger
@ -802,15 +802,16 @@ void PNGAPI
png_set_rows(png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers) png_set_rows(png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers)
{ {
png_debug1(1, "in %s storage function\n", "rows"); png_debug1(1, "in %s storage function\n", "rows");
if (png_ptr == NULL || info_ptr == NULL) if (png_ptr == NULL || info_ptr == NULL)
return; return;
if(info_ptr->row_pointers && (info_ptr->row_pointers != row_pointers)) if(info_ptr->row_pointers && (info_ptr->row_pointers != row_pointers))
{
png_free_data(png_ptr, info_ptr, PNG_FREE_ROWS, 0); png_free_data(png_ptr, info_ptr, PNG_FREE_ROWS, 0);
info_ptr->row_pointers = row_pointers; info_ptr->row_pointers = row_pointers;
} if(row_pointers)
info_ptr->valid |= PNG_INFO_IDAT; info_ptr->valid |= PNG_INFO_IDAT;
} }
#endif #endif
@ -824,3 +825,10 @@ png_set_compression_buffer_size(png_structp png_ptr, png_uint_32 size)
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;
} }
void PNGAPI
png_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask)
{
if (png_ptr && info_ptr)
info_ptr->valid &= ~(mask);
}

View File

@ -1,7 +1,7 @@
/* pngtest.c - a simple test program to test libpng /* pngtest.c - a simple test program to test libpng
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger
@ -1380,4 +1380,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_0_7beta13 your_png_h_is_not_version_1_0_7beta13; typedef version_1_0_7beta14 your_png_h_is_not_version_1_0_7beta14;

View File

@ -1,7 +1,7 @@
/* pngtrans.c - transforms the data in a row (used by both readers and writers) /* pngtrans.c - transforms the data in a row (used by both readers and writers)
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -2,7 +2,7 @@
* *
* For Intel x86 CPU and Microsoft Visual C++ compiler * For Intel x86 CPU and Microsoft Visual C++ compiler
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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, Intel Corporation * Copyright (c) 1998, Intel Corporation
* Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson

View File

@ -1,7 +1,7 @@
/* pngwio.c - functions for data output /* pngwio.c - functions for data output
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngwrite.c - general routines to write a PNG file /* pngwrite.c - general routines to write a PNG file
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -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
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngwutil.c - utilities to write a PNG file /* pngwutil.c - utilities to write a PNG file
* *
* libpng 1.0.7beta13 - May 16, 2000 * libpng 1.0.7beta14 - May 17, 2000
* 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) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -31,7 +31,7 @@ RANLIB=ranlib
# read libpng.txt or png.h to see why PNGMAJ is 2. You should not # read libpng.txt or png.h to see why PNGMAJ is 2. You should not
# have to change it. # have to change it.
PNGMAJ = 2 PNGMAJ = 2
PNGMIN = 1.0.7beta13 PNGMIN = 1.0.7beta14
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# where make install puts libpng.a, libpng.so*, and png.h # where make install puts libpng.a, libpng.so*, and png.h

View File

@ -14,7 +14,7 @@ ZLIBINC=../zlib
# read libpng.txt or png.h to see why PNGMAJ is 2. You should not # read libpng.txt or png.h to see why PNGMAJ is 2. You should not
# have to change it. # have to change it.
PNGMAJ = 2 PNGMAJ = 2
PNGMIN = 1.0.7beta13 PNGMIN = 1.0.7beta14
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
CC=cc CC=cc

View File

@ -34,7 +34,7 @@ RANLIB=ranlib
# read libpng.txt or png.h to see why PNGMAJ is 2. You should not # read libpng.txt or png.h to see why PNGMAJ is 2. You should not
# have to change it. # have to change it.
PNGMAJ = 2 PNGMAJ = 2
PNGMIN = 1.0.7beta13 PNGMIN = 1.0.7beta14
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
INCPATH=$(prefix)/include INCPATH=$(prefix)/include

View File

@ -34,7 +34,7 @@ RANLIB=ranlib
# read libpng.txt or png.h to see why PNGMAJ is 2. You should not # read libpng.txt or png.h to see why PNGMAJ is 2. You should not
# have to change it. # have to change it.
PNGMAJ = 2 PNGMAJ = 2
PNGMIN = 1.0.7beta13 PNGMIN = 1.0.7beta14
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
INCPATH=$(prefix)/include INCPATH=$(prefix)/include

View File

@ -25,7 +25,7 @@ RANLIB=echo
# read libpng.txt or png.h to see why PNGMAJ is 2. You should not # read libpng.txt or png.h to see why PNGMAJ is 2. You should not
# have to change it. # have to change it.
PNGMAJ = 2 PNGMAJ = 2
PNGMIN = 1.0.7beta13 PNGMIN = 1.0.7beta14
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
INCPATH=$(prefix)/include INCPATH=$(prefix)/include

View File

@ -19,8 +19,8 @@ CFLAGS=-I$(ZLIBINC) -O2 $(WARNMORE) -fPIC -mabi=n32 # -g -DPNG_DEBUG=5
LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
LDSHARED=gcc -shared LDSHARED=gcc -shared
VER=1.0.7beta13 VER=1.0.7beta14
LIBS=libpng.so.1.0.7beta13 LIBS=libpng.so.1.0.7beta14
SHAREDLIB=libpng.so SHAREDLIB=libpng.so
libdir=$(prefix)/lib32 libdir=$(prefix)/lib32

View File

@ -31,7 +31,7 @@ RANLIB=echo
# read libpng.txt or png.h to see why PNGMAJ is 2. You should not # read libpng.txt or png.h to see why PNGMAJ is 2. You should not
# have to change it. # have to change it.
PNGMAJ = 2 PNGMAJ = 2
PNGMIN = 1.0.7beta13 PNGMIN = 1.0.7beta14
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
INCPATH=$(prefix)/include INCPATH=$(prefix)/include

View File

@ -5,7 +5,7 @@ unit pngdef;
interface interface
const const
PNG_LIBPNG_VER_STRING = '1.0.7beta13'; PNG_LIBPNG_VER_STRING = '1.0.7beta14';
PNG_LIBPNG_VER = 10007; PNG_LIBPNG_VER = 10007;
type type
@ -510,6 +510,9 @@ procedure png_set_hIST(png_ptr: png_structp; info_ptr: png_infop;
stdcall; stdcall;
function png_set_interlace_handling(png_ptr: png_structp): int; function png_set_interlace_handling(png_ptr: png_structp): int;
stdcall; stdcall;
procedure png_set_invalid(png_ptr: png_structp; info_ptr:png_infop;
mask: int);
stdcall;
procedure png_set_invert_alpha(png_ptr: png_structp); procedure png_set_invert_alpha(png_ptr: png_structp);
stdcall; stdcall;
procedure png_set_invert_mono(png_ptr: png_structp); procedure png_set_invert_mono(png_ptr: png_structp);

View File

@ -38,6 +38,7 @@ EXPORTS
png_build_grayscale_palette png_build_grayscale_palette
png_set_strip_alpha png_set_strip_alpha
png_set_swap_alpha png_set_swap_alpha
png_set_invalid
png_set_invert_alpha png_set_invert_alpha
png_set_filler png_set_filler
png_set_swap png_set_swap