Imported from libpng-1.0.6a.tar

This commit is contained in:
Glenn Randers-Pehrson 2000-04-01 21:10:05 -06:00
parent 520a764cd7
commit 68ea243ca3
44 changed files with 316 additions and 264 deletions

View File

@ -1,85 +1,20 @@
Libpng 1.0.6 - March 21, 2000
Libpng 1.0.6a - April 2, 2000
This is a public release of libpng, intended for use in production codes.
This is not intended to be a public release. It will be replaced
within a few weeks by a public version or by another test version.
Changes since the last public release (1.0.5):
Changes since the last public release (1.0.6):
Added contrib/pngsuite and contrib/pngminus (Willem van Schaik)
Fixed a typo in the png_set_sRGB() function call in example.c (Jan Nijtmans)
Further optimization and bugfix of pngvcrd.c
Revised pngset.c so that it does not allocate or free memory in the user's
text_ptr structure. Instead, it makes its own copy.
Added code in pngwrite.c to free info_ptr->text[i].key to stop a memory leak.
Created separate write_end_info_struct in pngtest.c for a more severe test.
Moved PNG_FLAG_HAVE_CHUNK_HEADER, PNG_FLAG_BACKGROUND_IS_GRAY and
PNG_FLAG_WROTE_tIME from flags to mode.
Added png_write_info_before_PLTE() function.
Fixed some typecasting in contrib/gregbook/*.c
Updated scripts/makevms.com (Martin Zinser)
Moved png_get_header_version from png.h to png.c, to accomodate ansi2knr.
Removed all global arrays (according to PNG_NO_GLOBAL_ARRAYS macro), to
accomodate making DLL's: Moved usr_png_ver from global variable to function
png_get_header_ver() in png.c. Moved png_sig to png_sig_bytes in png.c and
eliminated use of png_sig in pngwutil.c. Moved the various png_CHNK arrays
into local arrays. Eliminated use of global png_pass arrays. Declared the
png_CHNK and png_pass arrays to be "const". Made the global arrays
available to applications when PNG_NO_GLOBAL_ARRAYS is not defined or
when PNG_USE_GLOBAL_ARRAYS is defined. Made available to applications a
macro "PNG_USE_LOCAL_ARRAYS".
Changed the PNG_sRGB_INTENT macros in png.h to be consistent with PNG-1.2.
Change PNG_SRGB_INTENT to PNG_sRGB_INTENT in libpng.txt and libpng.3
Added PNG_EXPORT_VAR macro to accommodate making DLL's.
Refactored the inflate/deflate support to make adding new chunks with
trailing compressed parts easier in the future (Eric S. Raymond).
Added iCCP, iTXt, sCAL, and sPLT support; added "lang", "lang_key", and
itxt_length" members to the png_text structure (Eric S. Raymond, Glenn R-P)
Changed png_get_oFFs() and png_set_oFFs() to use signed rather than unsigned
offsets (Eric S. Raymond).
Combined PNG_READ_cHNK_SUPPORTED and PNG_WRITE_cHNK_SUPPORTED macros into
PNG_cHNK_SUPPORTED and combined the three types of PNG_text_SUPPORTED
macros, leaving the separate macros also available.
Removed comments on #endifs at the end of many short, non-nested #if-blocks.
Changed makefile.solaris to issue a warning about potential problems when
the ucb "ld" is in the path ahead of the ccs "ld".
Removed "- [date]" from the "synopsis" line in libpng.3 and libpngpf.3.
Added code in pngwrite.c to work around a newly discovered zlib bug.
Unknown chunk handling is now supported (Eric S. Raymond).
Option to eliminate all floating point support was added. Some new
fixed-point functions such as png_set_gAMA_fixed() were added.
Added new type "png_fixed_point" for integers that hold float*100000 values
Added many parentheses, e.g., "if (a && b & c)" becomes "if (a && (b & c))"
Added png_handle_as_unknown()
Added chunk_list and num_chunk_list members of png_ptr.
Define png_get_int_32 when oFFs chunk is supported as well as when pCAL is.
Added functions png_set_read_user_chunk_fn() and png_get_user_chunk_ptr()
for setting a callback function to handle unknown chunks and for
retrieving the associated user pointer (Glenn).
Added png_free_data() function.
Added high-level functions png_read_png() and png_write_png() (ESR).
Renamed pngdll.mak to makefile.bd32
Cosmetic changes in pngtest.c
Fixed pngvcrd.c bug by pushing/popping registers in mmxsupport (Bruce Oberg)
Revised makefile.gcmmx
Fixed a bug in pngrtran.c that improperly expanded the background color.
Return *num_text=0 from png_get_text() when appropriate, and fix documentation
of png_get_text() in libpng.txt/libpng.3.
Added PNG_SETJMP_SUPPORTED, PNG_SETJMP_NOT_SUPPORTED, and PNG_ABORT() and
"png_jmpbuf()" macros to pngconf.h, to help people migrate to the new error
handler that's planned for the next libpng release, and changed example.c,
pngtest.c, and contrib programs to use this macro.
Revised some of the DLL-export macros in pngconf.h (Greg Roelofs)
Fixed some mistakes in the unused and undocumented INCH_CONVERSIONS functions
in pngget.c
Updated makefile.linux and makefile.gccmmx to make directories conditionally.
Increased precision of rgb_to_gray calculations from 8 to 15 bits and
added png_set_rgb_to_gray_fixed() function.
Added makefile.bc32 (32-bit Borland C++, C mode)
Updated references to the zlib home page, which has moved to freesoftware.com.
Corrected bugs in documentation regarding png_read_row() and png_write_row().
Renamed makefile.borland,turboc3 back to makefile.bor,tc3 as in version 1.0.3,
revised borland makefiles; added makefile.ibmvac3 and makefile.gcc (Cosmin)
Added makefile.sggcc (SGI IRIX with gcc)
version 1.0.6a [April 2, 2000]
Changed sprintf() to strcpy() in png_write_sCAL_s() to work without STDIO
Added data_length parameter to png_decompress_chunk() function
Revised documentation to remove reference to abandoned png_free_chnk functions
Fixed an error in png_rgb_to_gray_fixed()
Revised example.c, usage of png_destroy_write_struct().
Renamed makefile.ibmvac3 to makefile.ibmc, added libpng.icc IBM project file
Added a check for info_ptr->free_me&PNG_FREE_TEXT when free'ing text in png.c
Simplify png_sig_bytes() function to remove use of non-ISO-C strdup().
Send comments/corrections/commendations to
png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu

16
CHANGES
View File

@ -657,6 +657,20 @@ version 1.0.5v [March 11, 2000]
Updated documentation of png_rgb_to_gray calculations in libpng.3/libpng.txt.
Renamed makefile.borland,turboc3 back to makefile.bor,tc3 as in version 1.0.3,
revised borland makefiles; added makefile.ibmvac3 and makefile.gcc (Cosmin)
version 1.0.6 [March 21, 2000]
version 1.0.6 [March 20, 2000]
Minor revisions of makefile.bor, libpng.txt, and gregbook/rpng2-win.c
Added makefile.sggcc (SGI IRIX with gcc)
version 1.0.6a [April 2, 2000]
Changed sprintf() to strcpy() in png_write_sCAL_s() to work without STDIO
Added data_length parameter to png_decompress_chunk() function
Revised documentation to remove reference to abandoned png_free_chnk functions
Fixed an error in png_rgb_to_gray_fixed()
Revised example.c, usage of png_destroy_write_struct().
Renamed makefile.ibmvac3 to makefile.ibmc, added libpng.icc IBM project file
Added a check for info_ptr->free_me&PNG_FREE_TEXT when free'ing text in png.c
Simplify png_sig_bytes() function to remove use of non-ISO-C strdup().
Send comments/corrections/commendations to
png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
Glenn R-P

15
INSTALL
View File

@ -1,5 +1,5 @@
Installing libpng version 1.0.6 - March 21, 2000
Installing libpng version 1.0.6a - April 2, 2000
Before installing libpng, you must first install zlib. zlib
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.
You can rename the directories that you downloaded (they
might be called "libpng-1.0.6" or "lpng106" and "zlib-1.1.3"
might be called "libpng-1.0.6a" or "lpng106" and "zlib-1.1.3"
or "zlib113") so that you have directories called "zlib" and "libpng".
Your directory structure should look like this:
@ -47,8 +47,8 @@ The files that are presently available in the scripts directory
include
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.linux => Linux/ELF makefile (gcc, creates libpng.so.2.1.0.6)
makefile.gcmmx => Linux/ELF makefile (gcc, creates libpng.so.2.1.0.6,
makefile.linux => Linux/ELF makefile (gcc, creates libpng.so.2.1.0.6a)
makefile.gcmmx => Linux/ELF makefile (gcc, creates libpng.so.2.1.0.6a,
uses assembler code tuned for Intel MMX platform)
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with
@ -56,11 +56,12 @@ include
ftp://ftp.cs.wisc.edu/ghost)
makefile.dec => DEC Alpha UNIX makefile
makefile.hpux => HPUX (10.20 and 11.00) makefile
makefile.ibmvac3 => IBM VisualAge/C++ version 3.x for Win32 and OS/2 (static)
makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 (static)
libpng.icc => Project file for IBM VisualAge/C++ version 4.0 or later
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.0.6)
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.0.6a)
makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.6)
makefile.solaris => Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.6a)
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
makefile.mips => MIPS makefile
makefile.acorn => Acorn makefile

View File

@ -1,8 +1,47 @@
Known bugs and suggested enhancements in libpng-1.0.6
1. April 1, 2000 -- BUG
1. March 15, 1998 -- OPTIMIZATION -- Kevin Bracey
Under some circumstances old applications that make direct access to
the info_ptr->text and its members might free the same memory that
is also free'ed by libpng during the png_destroy_struct process.
Fixed in libpng-1.0.6-patch-c and libpng-1.0.6a. The PNG_FREE_TEXT flag
bit in info_ptr->free_me is now checked to make sure libpng is responsible
for freeing the memory.
2. April 1, 2000 -- BUG
The non-ISO-C "strdup()" function is used in png.c
STATUS: The function has been simplified and no longer uses strdup()
in libpng-1.0.6-patch-c and libpng-1.0.6a.
3. March 24, 2000 -- BUG
The png_set_rgb_to_gray_fixed() function is setting incorrect weighting
factors.
STATUS: Fixed in libpng-1.0.6-patch-b and libpng-1.0.6a.
4. March 22, 2000 -- BUG
There are some printf() and fprintf() statements active in pngwutil.c
when PNG_NO_STDIO and PNG_sCAL_SUPPORTED are both defined.
STATUS: Fixed in libpng-1.0.6-patch-a and libpng-1.0.6a. The strcpy()
function is used instead.
5. March 22, 2000 -- BUG
The length of the iCCP chunk data is calculated incorrectly; because
it can contain zeroes, strlen() doesn't work.
STATUS: Fixed in libpng-1.0.6-patch-a by adding a data_length parameter
to the png_decompress_chunk() function.
6. March 15, 1998 -- OPTIMIZATION -- Kevin Bracey
Loops need to be optimized everywhere
@ -17,7 +56,7 @@ Known bugs and suggested enhancements in libpng-1.0.6
libpng-1.1.0. About 160 loops will be turned around
in libpng-1.1.Nn, for testing.
2. July 4, 1998 -- ENHANCEMENT -- Glenn R-P
7. July 4, 1998 -- ENHANCEMENT -- Glenn R-P
libpng-1.0.5 and earlier transform colors to gamma=1.0 space for
merging with background, and then back to the image's gamma. The
@ -29,7 +68,7 @@ Known bugs and suggested enhancements in libpng-1.0.6
STATUS: under development.
3. September 1999 -- ENHANCEMENT --
8. September 1999 -- ENHANCEMENT --
It should be possible to use libpng without floating-point aritmetic.
@ -38,6 +77,6 @@ Known bugs and suggested enhancements in libpng-1.0.6
for the png_set_gAMA(), png_set_cHRM(), and corresponding png_get_()
functions will be needed.
Much of this was completed in libpng-1.0.5h, but gamma compensation
Much of this was completed in libpng-1.0.6, but gamma compensation
is not yet done in fixed-point arithmetic.

View File

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

13
README
View File

@ -1,4 +1,4 @@
README for libpng 1.0.6 - March 21, 2000 (shared library 2.1)
README for libpng 1.0.6a - April 2, 2000 (shared library 2.1)
See the note about version numbers near the top of png.h
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
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.linux => Linux/ELF makefile
(gcc, creates libpng.so.2.1.0.6)
(gcc, creates libpng.so.2.1.0.6a)
makefile.gcmmx => Linux/ELF makefile (gcc, creates
libpng.so.2.1.0.6, uses assembler code
libpng.so.2.1.0.6a, uses assembler code
tuned for Intel MMX platform)
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with
@ -182,12 +182,13 @@ Files in this distribution:
ftp://ftp.cs.wisc.edu/ghost)
makefile.dec => DEC Alpha UNIX makefile
makefile.hpux => HPUX (10.20 and 11.00) makefile
makefile.ibmvac3 => IBM VisualAge/C++ ver 3.x for Win32, OS/2 (static)
makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 (static)
libpng.icc => Project file, IBM VisualAge/C++ 4.0 or later
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.0.6)
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.0.6a)
makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile
(gcc, creates libpng.so.2.1.0.6)
(gcc, creates libpng.so.2.1.0.6a)
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
makefile.mips => MIPS makefile
makefile.acorn => Acorn makefile

View File

@ -1,13 +1,13 @@
Y2K compliance in libpng:
=========================
March 21, 2000
April 2, 2000
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
upward through 1.0.6 are Y2K compliant. It is my belief that earlier
upward through 1.0.6a are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer

2
configure vendored
View File

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

View File

@ -54,7 +54,7 @@ int check_if_png(char *file_name, FILE **fp)
char buf[PNG_BYTES_TO_CHECK];
/* Open the prospective PNG file. */
if ((*fp = fopen(file_name, "rb")) != NULL);
if ((*fp = fopen(file_name, "rb")) == NULL)
return 0;
/* Read in some of the signature bytes */
@ -565,7 +565,7 @@ void write_png(char *file_name /* , ... other image information ... */)
{
/* If we get here, we had a problem reading the file */
fclose(fp);
png_destroy_write_struct(&png_ptr, (png_infopp)NULL);
png_destroy_write_struct(&png_ptr, (png_infopp)info_ptr);
return;
}
@ -761,7 +761,7 @@ void write_png(char *file_name /* , ... other image information ... */)
png_free(png_ptr, trans);
/* clean up after the write, and free any memory allocated */
png_destroy_write_struct(&png_ptr, (png_infopp)NULL);
png_destroy_write_struct(&png_ptr, (png_infopp)info_ptr);
/* close the file */
fclose(fp);

105
libpng.3
View File

@ -1,6 +1,6 @@
.TH LIBPNG 3 "March 21, 2000"
.TH LIBPNG 3 "April 2, 2000"
.SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.0.6
libpng \- Portable Network Graphics (PNG) Reference Library 1.0.6a
.SH SYNOPSIS
\fI\fB
@ -713,7 +713,7 @@ Following is a copy of the libpng.txt file that accompanies libpng.
.SH LIBPNG.TXT
libpng.txt - A description on how to use and modify libpng
libpng version 1.0.6 - March 21, 2000
libpng version 1.0.6a - April 2, 2000
Updated and distributed by Glenn Randers-Pehrson
<randeg@alum.rpi.edu>
Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@ -1834,8 +1834,9 @@ point to libpng-allocated storage with the following functions:
(-1 for all items)
These functions may be safely called when the relevant storage has
already been freed, or has not yet been allocated, and will in that
case do nothing. The "n" parameter is ignored if only one item
already been freed, or has not yet been allocated, or was allocated
by the user and not by libpng, and will in those
cases do nothing. The "n" parameter is ignored if only one item
of the selected data type, such as PLTE, is allowed. If "n" is not
-1, and multiple items are allowed for the data type identified in
the mask, such as text or splt, only the n'th item is freed.
@ -2509,7 +2510,7 @@ make sure to only enable a transformation if it will be valid for the
data. For example, don't swap red and blue on grayscale data.
PNG files store RGB pixels packed into 3 or 6 bytes. This code tells
the library to trip input data that has 4 or 8 bytes per pixel down
the library to strip input data that has 4 or 8 bytes per pixel down
to 3 or 6 bytes (or strip 2 or 4-byte grayscale+filler data to 1 or 2
bytes per pixel).
@ -2712,30 +2713,24 @@ When you are done, you can free all memory used by libpng like this:
It is also possible to individually free the info_ptr members that
point to libpng-allocated storage with the following functions:
png_free_text(png_ptr, info_ptr, num)
num - number of text item to be freed (-1 for all items)
png_free_hIST(png_ptr, info_ptr)
png_free_iCCP(png_ptr, info_ptr)
png_free_pCAL(png_ptr, info_ptr)
png_free_sCAL(png_ptr, info_ptr)
png_free_sPLT(png_ptr, info_ptr, num)
num - number of suggested-paletted entry to be freed
(-1 for all suggested palettes)
png_free_pixels(png_ptr, info_ptr)
png_free_unknown_chunk(png_ptr, info_ptr, num)
num - number of unknown chunk entry to be freed
(-1 for all suggested palettes)
png_free_data(png_ptr, info_ptr, mask, n)
mask - identifies data to be freed, a mask
made up by the OR one or more of
PNG_FREE_PLTE, PNG_FREE_TRNS,
PNG_FREE_HIST, PNG_FREE_ICCP,
PNG_FREE_SPLT, PNG_FREE_ROWS,
PNG_FREE_PCAL, PNG_FREE_SCAL,
PNG_FREE_TEXT, PNG_FREE_UNKN,
or simply PNG_FREE_ALL
n - sequence number of item to be freed
(-1 for all items)
These functions may be safely called when the relevant storage has
already been freed, or has not yet been allocated, and will in that
case do nothing.
case do nothing. The "n" parameter is ignored if only one item
of the selected data type, such as PLTE, is allowed. If "n" is not
-1, and multiple items are allowed for the data type identified in
the mask, such as text or splt, only the n'th item is freed.
If you allocated data such as a palette that you passed in to libpng with
png_set_*, you must not free it until just before the call to
@ -3113,13 +3108,13 @@ the old method.
.SH VII. Y2K Compliance in libpng
March 21, 2000
April 2, 2000
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
upward through 1.0.6 are Y2K compliant. It is my belief that earlier
upward through 1.0.6a are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer that
@ -3176,21 +3171,35 @@ on the library has not always been consistent and straightforward.
The following table summarizes matters since version 0.89c, which was
the first widely used release:
source png.h png.h shared-lib
version string int version
------- ------ ------ ----------
0.89c 0.89 89 1.0.89
0.90 0.90 90 0.90 [should be 2.0.90]
0.95 0.95 95 0.95 [should be 2.0.95]
0.96 0.96 96 0.96 [should be 2.0.96]
0.97b 1.00.97 97 1.0.1 [should be 2.0.97]
0.97c 0.97 97 2.0.97
0.98 0.98 98 2.0.98
0.99 0.99 98 2.0.99
0.99a-m 0.99 99 2.0.99
1.00 1.00 100 2.1.0 [int should be 10000]
1.0.0 1.0.0 100 2.1.0 [int should be 10000]
1.0.1 1.0.1 10001 2.1.0
source png.h png.h shared-lib
version string int version
------- ------ ----- ----------
0.89c ("1.0 beta 3") 0.89 89 1.0.89
0.90 ("1.0 beta 4") 0.90 90 0.90 [should have been 2.0.90]
0.95 ("1.0 beta 5") 0.95 95 0.95 [should have been 2.0.95]
0.96 ("1.0 beta 6") 0.96 96 0.96 [should have been 2.0.96]
0.97b ("1.00.97 beta 7") 1.00.97 97 1.0.1 [should have been 2.0.97]
0.97c 0.97 97 2.0.97
0.98 0.98 98 2.0.98
0.99 0.99 98 2.0.99
0.99a-m 0.99 99 2.0.99
1.00 1.00 100 2.1.0 [100 should be 10000]
1.0.0 1.0.0 100 2.1.0 [100 should be 10000]
1.0.1 1.0.1 10001 2.1.0
1.0.1a-e 1.0.1a-e 10002 2.1.0.1a-e
1.0.2 1.0.2 10002 2.1.0.2
1.0.2a-b 1.0.2a-b 10003 2.1.0.2a-b
1.0.3 1.0.3 10003 2.1.0.3
1.0.3a-d 1.0.3a-d 10004 2.1.0.3a-d
1.0.4 1.0.4 10004 2.1.0.4
1.0.4a-f 1.0.4a-f 10005 2.1.0.4a-f
1.0.5 1.0.5 10005 2.1.0.5
1.0.5a-d 1.0.5a-d 10006 2.1.0.5a-d
1.0.5e-r 1.0.5e-r 10100 2.1.0.5e-r (not compatible)
1.0.5s-v 1.0.5s-v 10006 2.1.0.5s-v (compatible)
1.0.6 1.0.6 10006 2.1.0.6
1.0.6a 1.0.6a 10007 2.1.0.6a
1.3.0 1.3.0 10300 3.1.3.0
Henceforth the source version will match the shared-library
minor and patch numbers; the shared-library major version number will be
@ -3245,7 +3254,7 @@ possible without all of you.
Thanks to Frank J. T. Wojcik for helping with the documentation.
Libpng version 1.0.6 - March 21, 2000:
Libpng version 1.0.6a - April 2, 2000:
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
@ -3256,11 +3265,11 @@ Supported by the PNG development group
.SH COPYRIGHT NOTICE:
Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
(libpng versions 0.5, May 1995, through 0.89c, May 1996)
(libpng versions 0.5, May 1995, through 0.88, January 1996)
Copyright (c) 1996, 1997 Andreas Dilger
(libpng versions 0.90, December 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
(libpng versions 0.97, January 1998, through 1.0.6, March 21, 2000)
(libpng versions 0.97, January 1998, through 1.0.6a, April 2, 2000)
For the purposes of this copyright and license, "Contributing Authors"
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 version 1.0.6 - March 21, 2000
libpng version 1.0.6a - April 2, 2000
Updated and distributed by Glenn Randers-Pehrson
<randeg@alum.rpi.edu>
Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@ -1121,8 +1121,9 @@ point to libpng-allocated storage with the following functions:
(-1 for all items)
These functions may be safely called when the relevant storage has
already been freed, or has not yet been allocated, and will in that
case do nothing. The "n" parameter is ignored if only one item
already been freed, or has not yet been allocated, or was allocated
by the user and not by libpng, and will in those
cases do nothing. The "n" parameter is ignored if only one item
of the selected data type, such as PLTE, is allowed. If "n" is not
-1, and multiple items are allowed for the data type identified in
the mask, such as text or splt, only the n'th item is freed.
@ -1796,7 +1797,7 @@ make sure to only enable a transformation if it will be valid for the
data. For example, don't swap red and blue on grayscale data.
PNG files store RGB pixels packed into 3 or 6 bytes. This code tells
the library to trip input data that has 4 or 8 bytes per pixel down
the library to strip input data that has 4 or 8 bytes per pixel down
to 3 or 6 bytes (or strip 2 or 4-byte grayscale+filler data to 1 or 2
bytes per pixel).
@ -1999,30 +2000,24 @@ When you are done, you can free all memory used by libpng like this:
It is also possible to individually free the info_ptr members that
point to libpng-allocated storage with the following functions:
png_free_text(png_ptr, info_ptr, num)
num - number of text item to be freed (-1 for all items)
png_free_hIST(png_ptr, info_ptr)
png_free_iCCP(png_ptr, info_ptr)
png_free_pCAL(png_ptr, info_ptr)
png_free_sCAL(png_ptr, info_ptr)
png_free_sPLT(png_ptr, info_ptr, num)
num - number of suggested-paletted entry to be freed
(-1 for all suggested palettes)
png_free_pixels(png_ptr, info_ptr)
png_free_unknown_chunk(png_ptr, info_ptr, num)
num - number of unknown chunk entry to be freed
(-1 for all suggested palettes)
png_free_data(png_ptr, info_ptr, mask, n)
mask - identifies data to be freed, a mask
made up by the OR one or more of
PNG_FREE_PLTE, PNG_FREE_TRNS,
PNG_FREE_HIST, PNG_FREE_ICCP,
PNG_FREE_SPLT, PNG_FREE_ROWS,
PNG_FREE_PCAL, PNG_FREE_SCAL,
PNG_FREE_TEXT, PNG_FREE_UNKN,
or simply PNG_FREE_ALL
n - sequence number of item to be freed
(-1 for all items)
These functions may be safely called when the relevant storage has
already been freed, or has not yet been allocated, and will in that
case do nothing.
case do nothing. The "n" parameter is ignored if only one item
of the selected data type, such as PLTE, is allowed. If "n" is not
-1, and multiple items are allowed for the data type identified in
the mask, such as text or splt, only the n'th item is freed.
If you allocated data such as a palette that you passed in to libpng with
png_set_*, you must not free it until just before the call to
@ -2400,13 +2395,13 @@ the old method.
VII. Y2K Compliance in libpng
March 21, 2000
April 2, 2000
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
upward through 1.0.6 are Y2K compliant. It is my belief that earlier
upward through 1.0.6a are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer that

View File

@ -1,6 +1,6 @@
.TH LIBPNGPF 3 March 21, 2000
.TH LIBPNGPF 3 April 2, 2000
.SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.0.6
libpng \- Portable Network Graphics (PNG) Reference Library 1.0.6a
(private functions)
.SH SYNOPSIS
\fB#include <png.h>\fP
@ -55,6 +55,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.6
\fI\fB
\fBpng_charp png_decompress_chunk (png_structp \fP\fIpng_ptr\fP\fB, int \fP\fIcomp_type\fP\fB, png_charp \fP\fIchunkdata\fP\fB, png_size_t \fP\fIchunklength\fP\fB, png_size_t \fP\fIprefix_length\fP\fB, png_size_t \fI*data_length\fP\fB);\fP
\fI\fB
\fBvoid png_destroy_struct (png_voidp \fIstruct_ptr\fP\fB);\fP
\fI\fB

2
png.5
View File

@ -1,4 +1,4 @@
.TH PNG 5 "March 21, 2000"
.TH PNG 5 "April 2, 2000"
.SH NAME
png \- Portable Network Graphics (PNG) format
.SH DESCRIPTION

21
png.c
View File

@ -1,7 +1,7 @@
/* png.c - location for general purpose libpng functions
*
* libpng version 1.0.6 - March 21, 2000
* libpng version 1.0.6a - April 2, 2000
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@ -14,14 +14,14 @@
#include "png.h"
/* Generate a compiler error if there is an old png.h in the search path. */
typedef version_1_0_6 Your_png_h_is_not_version_1_0_6;
typedef version_1_0_6a Your_png_h_is_not_version_1_0_6a;
/* Version information for C files. This had better match the version
* string defined in png.h. */
#ifdef PNG_USE_GLOBAL_ARRAYS
/* png_libpng_ver was changed to a function in version 1.0.5c */
char png_libpng_ver[12] = "1.0.6";
char png_libpng_ver[12] = "1.0.6a";
/* png_sig was changed to a function in version 1.0.5c */
/* Place to hold the signature string for a PNG file. */
@ -269,7 +269,7 @@ png_free_data(png_structp png_ptr, png_infop info_ptr, png_uint_32 mask, int num
#if defined(PNG_TEXT_SUPPORTED)
/* free text item num or (if num == -1) all text items */
if (mask & PNG_FREE_TEXT)
if (mask & PNG_FREE_TEXT & info_ptr->free_me & PNG_FREE_TEXT)
{
if (num != -1)
{
@ -535,17 +535,16 @@ png_convert_to_rfc1123(png_structp png_ptr, png_timep ptime)
png_bytep
png_sig_bytes(png_structp png_ptr)
{
const png_byte png_sig_numbers[9] = {137, 80, 78, 71, 13, 10, 26, 10, 0};
if (png_ptr == NULL) /* silence compiler warning */
return ((png_bytep) strdup((png_const_charp)png_sig_numbers));
return ((png_bytep) strdup((png_const_charp)png_sig_numbers));
if (png_ptr != NULL || png_ptr == NULL) /* silence compiler warning */
return ("\212\120\116\107\015\012\032\012");
return ("");
}
png_charp
png_get_copyright(png_structp png_ptr)
{
if (png_ptr != NULL || png_ptr == NULL) /* silence compiler warning */
return ("\n libpng version 1.0.6 - March 21, 2000\n\
return ("\n libpng version 1.0.6a - April 2, 2000\n\
Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.\n\
Copyright (c) 1996, 1997 Andreas Dilger\n\
Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson\n");
@ -563,8 +562,8 @@ png_get_libpng_ver(png_structp png_ptr)
{
/* Version of *.c files used when building libpng */
if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */
return("1.0.6");
return("1.0.6");
return("1.0.6a");
return("1.0.6a");
}
png_charp

42
png.h
View File

@ -1,15 +1,15 @@
/* png.h - header file for PNG reference library
*
* libpng version 1.0.6 - March 21, 2000
* libpng version 1.0.6a - April 2, 2000
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
*
* Authors and maintainers:
* libpng versions 0.71, May 1995, through 0.89c, May 1996: Guy Schalnat
* libpng versions 0.90, December 1996, through 0.96, May 1997: Andreas Dilger
* libpng versions 0.97, January 1998, through 1.0.6 - March 21, 2000: Glenn
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
* libpng versions 0.97, January 1998, through 1.0.6a - April 2, 2000: Glenn
* See also "Contributing Authors", below.
*
* Note about libpng version numbers:
@ -45,8 +45,9 @@
* 1.0.5 1.0.5 10005 2.1.0.5
* 1.0.5a-d 1.0.5a-d 10006 2.1.0.5a-d
* 1.0.5e-r 1.0.5e-r 10100 2.1.0.5e-r (not compatible)
* 1.0.5s-v 1.0.5s-v 10006 2.1.0.5s-w (compatible)
* 1.0.5s-v 1.0.5s-v 10006 2.1.0.5s-v (compatible)
* 1.0.6 1.0.6 10006 2.1.0.6
* 1.0.6a 1.0.6a 10007 2.1.0.6a
* 1.3.0 1.3.0 10300 3.1.3.0
*
* Henceforth the source version will match the shared-library minor
@ -64,14 +65,16 @@
*/
/*
* COPYRIGHT NOTICE:
* COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
*
* If you modify libpng you may insert additional notices after this sentence.
*
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* (libpng versions 0.5, May 1995, through 0.89c, May 1996)
* (libpng versions 0.5, May 1995, through 0.88, January 1996)
* Copyright (c) 1996, 1997 Andreas Dilger
* (libpng versions 0.90, December 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
* (libpng versions 0.97, January 1998, through 1.0.6, March 21, 2000)
* (libpng versions 0.97, January 1998, through 1.0.6a, April 2, 2000)
*
* For the purposes of this copyright and license, "Contributing Authors"
* is defined as the following set of individuals:
@ -146,13 +149,13 @@
* Y2K compliance in libpng:
* =========================
*
* March 21, 2000
* April 2, 2000
*
* Since the PNG Development group is an ad-hoc body, we can't make
* an official declaration.
*
* This is your unofficial assurance that libpng from version 0.71 and
* upward through 1.0.6 are Y2K compliant. It is my belief that earlier
* upward through 1.0.6a are Y2K compliant. It is my belief that earlier
* versions were also Y2K compliant.
*
* Libpng only has three year fields. One is a 2-byte unsigned integer
@ -230,14 +233,14 @@ extern "C" {
*/
/* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.0.6"
#define PNG_LIBPNG_VER_STRING "1.0.6a"
/* Careful here. At one time, Guy wanted to use 082, but that would be octal.
* We must not include leading zeros.
* Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
* version 1.0.0 was mis-numbered 100 instead of 10000). From
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z=bugfix */
#define PNG_LIBPNG_VER 10006 /* 1.0.6 */
#define PNG_LIBPNG_VER 10007 /* 1.0.7 */
/* Note to maintainer: update this number in scripts/pngdef.pas as well */
@ -651,13 +654,12 @@ defined(PNG_READ_BACKGROUND_SUPPORTED)
#ifdef PNG_FLOATING_POINT_SUPPORTED
double scal_pixel_width; /* width of one pixel */
double scal_pixel_height; /* height of one pixel */
#else
#endif
#ifdef PNG_FIXED_POINT_SUPPORTED
png_charp scal_s_width; /* string containing height */
png_charp scal_s_height; /* string containing width */
#endif
#endif
#endif
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
/* storage for unknown chunks that the library doesn't recognize. */
@ -1056,9 +1058,9 @@ struct png_struct_def
};
/* This prevents a compiler error in png_get_copyright() in png.c if png.c
and png.h are both at * version 1.0.6
and png.h are both at * version 1.0.6a
*/
typedef png_structp version_1_0_6;
typedef png_structp version_1_0_6a;
typedef png_struct FAR * FAR * png_structpp;
@ -2031,7 +2033,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));
#define PNG_HEADER_VERSION_STRING \
" libpng version 1.0.6 - March 21, 2000 (header)\n"
" libpng version 1.0.6a - April 2, 2000 (header)\n"
#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
/* With these routines we avoid an integer divide, which will be slower on
@ -2304,7 +2306,7 @@ PNG_EXTERN void png_crc_read PNGARG((png_structp png_ptr, png_bytep buf,
defined(PNG_READ_iCCP_SUPPORTED) || defined(PNG_READ_sPLT_SUPPORTED)
PNG_EXTERN png_charp png_decompress_chunk PNGARG((png_structp png_ptr,
int comp_type, png_charp chunkdata, png_size_t chunklength,
png_size_t prefix_size));
png_size_t prefix_length, png_size_t *data_length));
#endif
/* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */
@ -2468,7 +2470,7 @@ PNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr,
#endif
#if defined(PNG_WRITE_sCAL_SUPPORTED)
#ifdef PNG_FLOATING_POINT_SUPPORTED
#if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO)
PNG_EXTERN void png_write_sCAL PNGARG((png_structp png_ptr,
int unit, double width, double height));
#else

View File

@ -1,6 +1,6 @@
/* pngasmrd.h - assembler version of utilities to read a PNG file
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1999, 2000 Glenn Randers-Pehrson
*

View File

@ -1,7 +1,7 @@
/* pngconf.h - machine configurable file for libpng
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngerror.c - stub functions for i/o and memory allocation
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -6,7 +6,7 @@
* and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
* for Intel's performance analysis of the MMX vs. non-MMX code.
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998, Intel Corporation
* Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson

View File

@ -1,7 +1,7 @@
/* pngget.c - retrieval of values from info struct
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngmem.c - stub functions for memory allocation
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngpread.c - read a png file in push mode
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngread.c - read a PNG file
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
@ -641,7 +641,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
* be ignored, so pass NULL to it.
*
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.6.
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.6a.
*/
void
@ -690,7 +690,7 @@ png_read_rows(png_structp png_ptr, png_bytepp row,
* only call this function once. If you desire to have an image for
* each pass of a interlaced image, use png_read_rows() instead.
*
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.6.
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.6a.
*/
void
png_read_image(png_structp png_ptr, png_bytepp image)

View File

@ -1,7 +1,7 @@
/* pngrio.c - functions for data input
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngrtran.c - transforms the data in a row for PNG readers
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
@ -622,7 +622,7 @@ png_set_rgb_to_gray_fixed(png_structp png_ptr, int error_action,
#endif
{
png_uint_16 red_int, green_int;
if(red > 0 && green > 0)
if(red < 0 || green < 0)
{
red_int = 6968; /* .212671 * 32768 + .5 */
green_int = 23434; /* .715160 * 32768 + .5 */

View File

@ -1,7 +1,7 @@
/* pngrutil.c - utilities to read a PNG file
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
@ -143,7 +143,7 @@ png_crc_error(png_structp png_ptr)
*/
png_charp png_decompress_chunk(png_structp png_ptr, int comp_type,
png_charp chunkdata, png_size_t chunklength,
png_size_t prefix_size)
png_size_t prefix_size, png_size_t *newlength)
{
static char msg[] = "Error decoding compressed text";
png_charp text = NULL;
@ -227,6 +227,7 @@ png_charp png_decompress_chunk(png_structp png_ptr, int comp_type,
png_free(png_ptr, chunkdata);
chunkdata = text;
*newlength=text_size;
}
else /* if (comp_type >= PNG_TEXT_COMPRESSION_LAST) */
{
@ -889,7 +890,7 @@ png_handle_iCCP(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
png_byte compression_type;
png_charp profile;
png_uint_32 skip = 0;
png_size_t slength, prefix_length;
png_size_t slength, prefix_length, data_length;
png_debug(1, "in png_handle_iCCP\n");
@ -951,10 +952,10 @@ png_handle_iCCP(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
prefix_length = profile - chunkdata;
chunkdata = png_decompress_chunk(png_ptr, compression_type, chunkdata,
slength, prefix_length);
slength, prefix_length, &data_length);
png_set_iCCP(png_ptr, info_ptr, chunkdata, compression_type,
chunkdata + prefix_length, png_strlen(chunkdata + prefix_length));
chunkdata + prefix_length, data_length);
png_free(png_ptr, chunkdata);
}
#endif /* PNG_READ_iCCP_SUPPORTED */
@ -1722,7 +1723,7 @@ png_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
png_charp chunkdata;
png_charp text;
int comp_type;
png_size_t slength, prefix_len;
png_size_t slength, prefix_len, data_len;
png_debug(1, "in png_handle_zTXt\n");
if (!(png_ptr->mode & PNG_HAVE_IHDR))
@ -1770,7 +1771,7 @@ png_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
prefix_len = text - chunkdata;
chunkdata = (png_charp)png_decompress_chunk(png_ptr, comp_type, chunkdata,
(png_size_t)length, prefix_len);
(png_size_t)length, prefix_len, &data_len);
text_ptr = (png_textp)png_malloc(png_ptr, (png_uint_32)sizeof(png_text));
text_ptr->compression = comp_type;
@ -1778,7 +1779,7 @@ png_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
text_ptr->key = chunkdata;
text_ptr->lang_key = NULL;
text_ptr->text = chunkdata + prefix_len;
text_ptr->text_length = png_strlen(text);
text_ptr->text_length = data_len;
text_ptr->itxt_length = 0;
png_set_text(png_ptr, info_ptr, text_ptr, 1);
@ -1798,7 +1799,7 @@ png_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
png_charp key, lang, text, lang_key;
int comp_flag;
int comp_type = 0;
png_size_t slength, prefix_len;
png_size_t slength, prefix_len, data_len;
png_debug(1, "in png_handle_iTXt\n");
@ -1862,7 +1863,9 @@ png_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
key=chunkdata;
if (comp_flag)
chunkdata = png_decompress_chunk(png_ptr, comp_type, chunkdata,
(size_t)length, prefix_len);
(size_t)length, prefix_len, &data_len);
else
data_len=png_strlen(chunkdata + prefix_len);
text_ptr = (png_textp)png_malloc(png_ptr, (png_uint_32)sizeof(png_text));
text_ptr->compression = (int)comp_flag + 1;
text_ptr->lang_key = chunkdata+(lang_key-key);
@ -1870,7 +1873,7 @@ png_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
text_ptr->key = chunkdata;
text_ptr->text = chunkdata + prefix_len;
text_ptr->text_length = 0;
text_ptr->itxt_length = png_strlen(text_ptr->text);
text_ptr->itxt_length = data_len;
png_set_text(png_ptr, info_ptr, text_ptr, 1);

View File

@ -1,7 +1,7 @@
/* pngset.c - storage of image information into info struct
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngtest.c - a simple test program to test libpng
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
@ -1344,4 +1344,4 @@ main(int argc, char *argv[])
}
/* Generate a compiler error if there is an old png.h in the search path. */
typedef version_1_0_6 your_png_h_is_not_version_1_0_6;
typedef version_1_0_6a your_png_h_is_not_version_1_0_6a;

View File

@ -1,7 +1,7 @@
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -2,7 +2,7 @@
*
* For Intel x86 CPU and Microsoft Visual C++ compiler
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998, Intel Corporation
* Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson

View File

@ -1,7 +1,7 @@
/* pngwio.c - functions for data output
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngwrite.c - general routines to write a PNG file
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
@ -165,13 +165,16 @@ png_write_info(png_structp png_ptr, png_infop info_ptr)
#endif
#if defined(PNG_WRITE_sCAL_SUPPORTED)
if (info_ptr->valid & PNG_INFO_sCAL)
#ifdef PNG_FLOATING_POINT_SUPPORTED
#if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO)
png_write_sCAL(png_ptr, (int)info_ptr->scal_unit,
info_ptr->scal_pixel_width, info_ptr->scal_pixel_height);
#else
#ifdef PNG_FIXED_POINT_SUPPORTED
png_write_sCAL_s(png_ptr, (int)info_ptr->scal_unit,
info_ptr->scal_s_width, info_ptr->scal_s_height);
#else
png_warning(png_ptr,
"png_write_sCAL not supported; sCAL chunk not written.\n");
#endif
#endif
#endif

View File

@ -1,7 +1,7 @@
/* pngwtran.c - transforms the data in a row for PNG writers
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger

View File

@ -1,7 +1,7 @@
/* pngwutil.c - utilities to write a PNG file
*
* libpng 1.0.6 - March 21, 2000
* libpng 1.0.6a - April 2, 2000
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
@ -795,7 +795,9 @@ png_write_cHRM(png_structp png_ptr, double white_x, double white_y,
white_x + white_y > 1.0)
{
png_warning(png_ptr, "Invalid cHRM white point specified");
#if !defined(PNG_NO_STDIO)
printf("white_x=%f, white_y=%f\n",white_x, white_y);
#endif
return;
}
itemp = (png_uint_32)(white_x * 100000.0 + 0.5);
@ -856,7 +858,9 @@ png_write_cHRM_fixed(png_structp png_ptr, png_fixed_point white_x,
if (white_x > 80000L || white_y > 80000L || white_x + white_y > 100000L)
{
png_warning(png_ptr, "Invalid fixed cHRM white point specified");
#if !defined(PNG_NO_STDIO)
printf("white_x=%ld, white_y=%ld\n",white_x, white_y);
#endif
return;
}
png_save_uint_32(buf, white_x);
@ -1381,7 +1385,7 @@ png_write_pCAL(png_structp png_ptr, png_charp purpose, png_int_32 X0,
#if defined(PNG_WRITE_sCAL_SUPPORTED)
/* write the sCAL chunk */
#ifdef PNG_FLOATING_POINT_SUPPORTED
#if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO)
void
png_write_sCAL(png_structp png_ptr, int unit, double width,double height)
{
@ -1417,10 +1421,10 @@ png_write_sCAL_s(png_structp png_ptr, int unit, png_charp width,
png_size_t total_len;
char wbuf[32], hbuf[32];
png_debug(1, "in png_write_sCAL\n");
png_debug(1, "in png_write_sCAL_s\n");
sprintf(wbuf, "%s", width);
sprintf(hbuf, "%s", height);
strcpy(wbuf,(const char *)width);
strcpy(hbuf,(const char *)height);
total_len = 1 + png_strlen(wbuf)+1 + png_strlen(hbuf);
png_debug1(3, "sCAL total length = %d\n", total_len);

43
scripts/libpng.icc Normal file
View File

@ -0,0 +1,43 @@
// Project file for libpng (static)
// IBM VisualAge/C++ version 4.0 or later
// Copyright (C) 2000 Cosmin Truta
// Notes:
// All modules are compiled in C mode
// Tested with IBM VAC++ 4.0 under Win32
// Expected to work with IBM VAC++ 4.0 or later under OS/2 and Win32
// Can be easily adapted for IBM VAC++ 4.0 or later under AIX
// For conditions of distribution and use, see copyright notice in png.h
option incl(searchpath, "../zlib"), opt(level, "2"),
link(libsearchpath, "../zlib")
{
target type(lib) "libpng.lib"
{
source type(c) "png.c"
source type(c) "pngerror.c"
source type(c) "pngget.c"
source type(c) "pngmem.c"
source type(c) "pngpread.c"
source type(c) "pngread.c"
source type(c) "pngrio.c"
source type(c) "pngrtran.c"
source type(c) "pngrutil.c"
source type(c) "pngset.c"
source type(c) "pngtrans.c"
source type(c) "pngwio.c"
source type(c) "pngwrite.c"
source type(c) "pngwtran.c"
source type(c) "pngwutil.c"
}
}
option incl(searchpath, "../zlib"), opt(level, "2"),
link(libsearchpath, "../zlib")
{
target type(exe) "pngtest.exe"
{
source type(c) "pngtest.c"
source type(lib) "libpng.lib"
source type(lib) "zlib.lib"
}
}

View File

@ -31,7 +31,7 @@ RANLIB=ranlib
# read libpng.txt or png.h to see why PNGMAJ is 2. You should not
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.6
PNGMIN = 1.0.6a
PNGVER = $(PNGMAJ).$(PNGMIN)
# 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
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.6
PNGMIN = 1.0.6a
PNGVER = $(PNGMAJ).$(PNGMIN)
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
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.6
PNGMIN = 1.0.6a
PNGVER = $(PNGMAJ).$(PNGMIN)
INCPATH=$(prefix)/include

View File

@ -1,10 +1,10 @@
# Makefile for libpng
# IBM VisualAge/C++ version 3.x for Win32 and OS/2 (static)
# Makefile for libpng (static)
# IBM C version 3.x for Win32 and OS/2
# Copyright (C) 2000 Cosmin Truta
# Notes:
# Derived from makefile.std
# All modules are compiled in C mode
# Tested with VAC++ 3.6.5 under Win32, expected to work under OS/2 too
# Tested with IBM C 3.6.5 under Win32, expected to work under OS/2 too
# Can be easily adapted for IBM VisualAge/C++ for AIX
# For conditions of distribution and use, see copyright notice in png.h

View File

@ -34,7 +34,7 @@ RANLIB=ranlib
# read libpng.txt or png.h to see why PNGMAJ is 2. You should not
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.6
PNGMIN = 1.0.6a
PNGVER = $(PNGMAJ).$(PNGMIN)
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
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.6
PNGMIN = 1.0.6a
PNGVER = $(PNGMAJ).$(PNGMIN)
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
LDSHARED=gcc -shared
VER=1.0.6
LIBS=libpng.so.1.0.6
VER=1.0.6a
LIBS=libpng.so.1.0.6a
SHAREDLIB=libpng.so
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
# have to change it.
PNGMAJ = 2
PNGMIN = 1.0.6
PNGMIN = 1.0.6a
PNGVER = $(PNGMAJ).$(PNGMIN)
INCPATH=$(prefix)/include

View File

@ -3,8 +3,8 @@ unit pngdef;
interface
const
PNG_LIBPNG_VER_STRING = '1.0.6';
PNG_LIBPNG_VER = 10006;
PNG_LIBPNG_VER_STRING = '1.0.6a';
PNG_LIBPNG_VER = 10007;
type
png_uint_32 = Cardinal;