summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LICENSE4
-rw-r--r--README2
-rw-r--r--libpng-manual.txt53
-rw-r--r--libpng.361
-rw-r--r--libpngpf.32
-rw-r--r--png.52
-rw-r--r--png.h10
-rw-r--r--pngconf.h2
-rw-r--r--projects/vstudio/readme.txt2
-rw-r--r--projects/vstudio/zlib.props2
-rw-r--r--scripts/README.txt2
11 files changed, 78 insertions, 64 deletions
diff --git a/LICENSE b/LICENSE
index d5e4068f9..c98170955 100644
--- a/LICENSE
+++ b/LICENSE
@@ -10,7 +10,7 @@ this sentence.
This code is released under the libpng license.
-libpng versions 1.2.6, August 15, 2004, through 1.5.5beta07, August 26, 2011, are
+libpng versions 1.2.6, August 15, 2004, through 1.5.5beta07, September 8, 2011, are
Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
@@ -108,4 +108,4 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
-August 26, 2011
+September 8, 2011
diff --git a/README b/README
index be9556047..0c4aea8f1 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.5.5beta07 - August 26, 2011 (shared library 15.0)
+README for libpng version 1.5.5beta07 - September 8, 2011 (shared library 15.0)
See the note about version numbers near the top of png.h
See INSTALL for instructions on how to install libpng.
diff --git a/libpng-manual.txt b/libpng-manual.txt
index 2175339ab..996a4f7f1 100644
--- a/libpng-manual.txt
+++ b/libpng-manual.txt
@@ -1,6 +1,6 @@
libpng-manual.txt - A description on how to use and modify libpng
- libpng version 1.5.5beta07 - August 26, 2011
+ libpng version 1.5.5beta07 - September 8, 2011
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2011 Glenn Randers-Pehrson
@@ -11,7 +11,7 @@ libpng-manual.txt - A description on how to use and modify libpng
Based on:
- libpng versions 0.97, January 1998, through 1.5.5beta07 - August 26, 2011
+ libpng versions 0.97, January 1998, through 1.5.5beta07 - September 8, 2011
Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2011 Glenn Randers-Pehrson
@@ -691,7 +691,7 @@ or you can use the fixed point equivalent:
png_set_gamma_fixed(png_ptr, PNG_FP_1*screen_gamma, PNG_FP_1/screen_gamma);
-If you don't know the gamma for you system it is probably 2.2 - a good
+If you don't know the gamma for your system it is probably 2.2 - a good
approximation to the IEC standard for display systems (sRGB). If images are
too contrasty or washed out you got the value wrong - check your system
documentation!
@@ -720,16 +720,18 @@ channel. To display these files correctly you need to compose the data onto a
suitable background, as described in the PNG specification.
Libpng only supports composing onto a single color (using png_set_background;
-see below.) Otherwise you must do the composition yourself and, in this case,
+see below). Otherwise you must do the composition yourself and, in this case,
you may need to call png_set_alpha_mode:
#if PNG_LIBPNG_VER >= 10504
png_set_alpha_mode(png_ptr, mode, screen_gamma);
+#else
+ png_set_gamma(png_ptr, screen_gamma, 1.0/screen_gamma);
#endif
-The screen_gamma value is the same as the argument to png_set_gamma, however how
-it affects the output depends on the mode. png_set_alpha_mode() sets the file
-gamma default to 1/screen_gamma, so normally you don't need to call
+The screen_gamma value is the same as the argument to png_set_gamma; however,
+how it affects the output depends on the mode. png_set_alpha_mode() sets the
+file gamma default to 1/screen_gamma, so normally you don't need to call
png_set_gamma. If you need different defaults call png_set_gamma() before
png_set_alpha_mode() - if you call it after it will override the settings made
by png_set_alpha_mode().
@@ -756,10 +758,11 @@ scaled, linear encoded, pre-multiplied component values must
be used!
The remaining modes assume you don't need to do any further color correction or
-that if you do your color correction software knows all about alpha (it
+that if you do, your color correction software knows all about alpha (it
probably doesn't!)
- PNG_ALPHA_STANDARD: The data libpng produces is encoded in the standard way
+ PNG_ALPHA_STANDARD: The data libpng produces
+is encoded in the standard way
assumed by most correctly written graphics software.
The gamma encoding will be removed by libpng and the
linear component values will be pre-multiplied by the
@@ -789,7 +792,8 @@ dynamic range. To avoid problems, and if your software
supports it, use png_set_expand_16() to force all
components to 16 bits.
- PNG_ALPHA_OPTIMIZED: This mode is the same as PNG_ALPHA_STANDARD except that
+ PNG_ALPHA_OPTIMIZED: This mode is the same
+as PNG_ALPHA_STANDARD except that
completely opaque pixels are gamma encoded according to
the screen_gamma value. Pixels with alpha less than 1.0
will still have linear components.
@@ -809,10 +813,11 @@ representation of non-opaque pixels are irrelevant.
You can also try this format if your software is broken;
it might look better.
- PNG_ALPHA_BROKEN: This is PNG_ALPHA_STANDARD however all component values,
+ PNG_ALPHA_BROKEN: This is PNG_ALPHA_STANDARD;
+however, all component values,
including the alpha channel are gamma encoded. This is
an appropriate format to try if your software, or more
-likely hardware, is totally broken: if it performs
+likely hardware, is totally broken, i.e., if it performs
linear arithmetic directly on gamma encoded values.
In most cases of broken software or hardware the bug in the final display
@@ -828,14 +833,14 @@ them, there are three recommended ways of using png_set_alpha_mode():
screen_gamma);
You can do color correction on the result (libpng does not currently
-support color correction internally.) When you handle the alpha channel
+support color correction internally). When you handle the alpha channel
you need to undo the gamma encoding and multiply out the alpha.
png_set_alpha_mode(png_ptr, PNG_ALPHA_STANDARD,
screen_gamma);
png_set_expand_16(png_ptr);
-If you are using the high level interface don't call png_set_expand_16();
+If you are using the high level interface, don't call png_set_expand_16();
instead pass PNG_TRANSFORM_EXPAND_16 to the interface.
With this mode you can't do color correction, but you can do arithmetic,
@@ -847,7 +852,7 @@ including composition and scaling, on the data without further processing.
You can avoid the expansion to 16-bit components with this mode, but you
lose the ability to scale the image or perform other linear arithmetic.
All you can do is compose the result onto a matching output. Since this
-mode is libpng specific you also need to write your own composition
+mode is libpng-specific you also need to write your own composition
software.
If you don't need, or can't handle, the alpha channel you can call
@@ -860,7 +865,7 @@ transparent parts of this image.
The background_color is an RGB or grayscale value according to the data format
libpng will produce for you. Because you don't yet know the format of the PNG
-file if you call png_set_background at this point you must arrange for the
+file, if you call png_set_background at this point you must arrange for the
format produced by libpng to always have 8-bit or 16-bit components and then
store the color as an 8-bit or 16-bit color as appropriate. The color contains
separate gray and RGB component values, so you can let libpng produce gray or
@@ -2101,7 +2106,7 @@ to load the whole file into memory when it is interlaced.
libpng includes a test program, pngvalid, that illustrates reading and
writing of interlaced images. If you can't get interlacing to work in your
-code and don't want to leave it to libpng (the recommended approach) see
+code and don't want to leave it to libpng (the recommended approach), see
how pngvalid.c does it.
Finishing a sequential read
@@ -3909,6 +3914,9 @@ The number libpng_vn is constructed from the major version, minor
version with leading zero, and release number with leading zero,
(e.g., libpng_vn for version 1.0.7 is 10007).
+Note that this function does not take a png_ptr, so you can call it
+before you've created one.
+
You can also check which version of png.h you used when compiling your
application:
@@ -4145,10 +4153,9 @@ In png_get_iCCP, the type of "profile" was changed from png_charpp
to png_bytepp, and in png_set_iCCP, from png_charp to png_const_bytep.
There are changes of form in png.h, including new and changed macros to
-declare
-parts of the API. Some API functions with arguments that are pointers to
-data not modified within the function have been corrected to declare
-these arguments with PNG_CONST.
+declare parts of the API. Some API functions with arguments that are
+pointers to data not modified within the function have been corrected to
+declare these arguments with PNG_CONST.
Much of the internal use of C macros to control the library build has also
changed and some of this is visible in the exported header files, in
@@ -4222,7 +4229,7 @@ Applications can now choose whether to use these macros or to call the
corresponding function by defining PNG_USE_READ_MACROS or
PNG_NO_USE_READ_MACROS before including png.h. Notice that this is
only supported from 1.5.0 -defining PNG_NO_USE_READ_MACROS prior to 1.5.0
- will lead to a link failure.
+will lead to a link failure.
Prior to libpng-1.5.4, the zlib compressor used the same set of parameters
when compressing the IDAT data and textual data such as zTXt and iCCP.
@@ -4553,7 +4560,7 @@ Other rules can be inferred by inspecting the libpng source.
XIV. Y2K Compliance in libpng
-August 26, 2011
+September 8, 2011
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
diff --git a/libpng.3 b/libpng.3
index 615177891..655bac8da 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,4 +1,4 @@
-.TH LIBPNG 3 "August 26, 2011"
+.TH LIBPNG 3 "September 8, 2011"
.SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.5.5beta07
.SH SYNOPSIS
@@ -977,7 +977,7 @@ Following is a copy of the libpng-manual.txt file that accompanies libpng.
.SH LIBPNG.TXT
libpng-manual.txt - A description on how to use and modify libpng
- libpng version 1.5.5beta07 - August 26, 2011
+ libpng version 1.5.5beta07 - September 8, 2011
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2011 Glenn Randers-Pehrson
@@ -988,7 +988,7 @@ libpng-manual.txt - A description on how to use and modify libpng
Based on:
- libpng versions 0.97, January 1998, through 1.5.5beta07 - August 26, 2011
+ libpng versions 0.97, January 1998, through 1.5.5beta07 - September 8, 2011
Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2011 Glenn Randers-Pehrson
@@ -1668,7 +1668,7 @@ or you can use the fixed point equivalent:
png_set_gamma_fixed(png_ptr, PNG_FP_1*screen_gamma, PNG_FP_1/screen_gamma);
-If you don't know the gamma for you system it is probably 2.2 - a good
+If you don't know the gamma for your system it is probably 2.2 - a good
approximation to the IEC standard for display systems (sRGB). If images are
too contrasty or washed out you got the value wrong - check your system
documentation!
@@ -1697,16 +1697,18 @@ channel. To display these files correctly you need to compose the data onto a
suitable background, as described in the PNG specification.
Libpng only supports composing onto a single color (using png_set_background;
-see below.) Otherwise you must do the composition yourself and, in this case,
+see below). Otherwise you must do the composition yourself and, in this case,
you may need to call png_set_alpha_mode:
#if PNG_LIBPNG_VER >= 10504
png_set_alpha_mode(png_ptr, mode, screen_gamma);
+#else
+ png_set_gamma(png_ptr, screen_gamma, 1.0/screen_gamma);
#endif
-The screen_gamma value is the same as the argument to png_set_gamma, however how
-it affects the output depends on the mode. png_set_alpha_mode() sets the file
-gamma default to 1/screen_gamma, so normally you don't need to call
+The screen_gamma value is the same as the argument to png_set_gamma; however,
+how it affects the output depends on the mode. png_set_alpha_mode() sets the
+file gamma default to 1/screen_gamma, so normally you don't need to call
png_set_gamma. If you need different defaults call png_set_gamma() before
png_set_alpha_mode() - if you call it after it will override the settings made
by png_set_alpha_mode().
@@ -1733,10 +1735,11 @@ scaled, linear encoded, pre-multiplied component values must
be used!
The remaining modes assume you don't need to do any further color correction or
-that if you do your color correction software knows all about alpha (it
+that if you do, your color correction software knows all about alpha (it
probably doesn't!)
- PNG_ALPHA_STANDARD: The data libpng produces is encoded in the standard way
+ PNG_ALPHA_STANDARD: The data libpng produces
+is encoded in the standard way
assumed by most correctly written graphics software.
The gamma encoding will be removed by libpng and the
linear component values will be pre-multiplied by the
@@ -1766,7 +1769,8 @@ dynamic range. To avoid problems, and if your software
supports it, use png_set_expand_16() to force all
components to 16 bits.
- PNG_ALPHA_OPTIMIZED: This mode is the same as PNG_ALPHA_STANDARD except that
+ PNG_ALPHA_OPTIMIZED: This mode is the same
+as PNG_ALPHA_STANDARD except that
completely opaque pixels are gamma encoded according to
the screen_gamma value. Pixels with alpha less than 1.0
will still have linear components.
@@ -1786,10 +1790,11 @@ representation of non-opaque pixels are irrelevant.
You can also try this format if your software is broken;
it might look better.
- PNG_ALPHA_BROKEN: This is PNG_ALPHA_STANDARD however all component values,
+ PNG_ALPHA_BROKEN: This is PNG_ALPHA_STANDARD;
+however, all component values,
including the alpha channel are gamma encoded. This is
an appropriate format to try if your software, or more
-likely hardware, is totally broken: if it performs
+likely hardware, is totally broken, i.e., if it performs
linear arithmetic directly on gamma encoded values.
In most cases of broken software or hardware the bug in the final display
@@ -1805,14 +1810,14 @@ them, there are three recommended ways of using png_set_alpha_mode():
screen_gamma);
You can do color correction on the result (libpng does not currently
-support color correction internally.) When you handle the alpha channel
+support color correction internally). When you handle the alpha channel
you need to undo the gamma encoding and multiply out the alpha.
png_set_alpha_mode(png_ptr, PNG_ALPHA_STANDARD,
screen_gamma);
png_set_expand_16(png_ptr);
-If you are using the high level interface don't call png_set_expand_16();
+If you are using the high level interface, don't call png_set_expand_16();
instead pass PNG_TRANSFORM_EXPAND_16 to the interface.
With this mode you can't do color correction, but you can do arithmetic,
@@ -1824,7 +1829,7 @@ including composition and scaling, on the data without further processing.
You can avoid the expansion to 16-bit components with this mode, but you
lose the ability to scale the image or perform other linear arithmetic.
All you can do is compose the result onto a matching output. Since this
-mode is libpng specific you also need to write your own composition
+mode is libpng-specific you also need to write your own composition
software.
If you don't need, or can't handle, the alpha channel you can call
@@ -1837,7 +1842,7 @@ transparent parts of this image.
The background_color is an RGB or grayscale value according to the data format
libpng will produce for you. Because you don't yet know the format of the PNG
-file if you call png_set_background at this point you must arrange for the
+file, if you call png_set_background at this point you must arrange for the
format produced by libpng to always have 8-bit or 16-bit components and then
store the color as an 8-bit or 16-bit color as appropriate. The color contains
separate gray and RGB component values, so you can let libpng produce gray or
@@ -3078,7 +3083,7 @@ to load the whole file into memory when it is interlaced.
libpng includes a test program, pngvalid, that illustrates reading and
writing of interlaced images. If you can't get interlacing to work in your
-code and don't want to leave it to libpng (the recommended approach) see
+code and don't want to leave it to libpng (the recommended approach), see
how pngvalid.c does it.
.SS Finishing a sequential read
@@ -4887,6 +4892,9 @@ The number libpng_vn is constructed from the major version, minor
version with leading zero, and release number with leading zero,
(e.g., libpng_vn for version 1.0.7 is 10007).
+Note that this function does not take a png_ptr, so you can call it
+before you've created one.
+
You can also check which version of png.h you used when compiling your
application:
@@ -5123,10 +5131,9 @@ In png_get_iCCP, the type of "profile" was changed from png_charpp
to png_bytepp, and in png_set_iCCP, from png_charp to png_const_bytep.
There are changes of form in png.h, including new and changed macros to
-declare
-parts of the API. Some API functions with arguments that are pointers to
-data not modified within the function have been corrected to declare
-these arguments with PNG_CONST.
+declare parts of the API. Some API functions with arguments that are
+pointers to data not modified within the function have been corrected to
+declare these arguments with PNG_CONST.
Much of the internal use of C macros to control the library build has also
changed and some of this is visible in the exported header files, in
@@ -5200,7 +5207,7 @@ Applications can now choose whether to use these macros or to call the
corresponding function by defining PNG_USE_READ_MACROS or
PNG_NO_USE_READ_MACROS before including png.h. Notice that this is
only supported from 1.5.0 -defining PNG_NO_USE_READ_MACROS prior to 1.5.0
- will lead to a link failure.
+will lead to a link failure.
Prior to libpng-1.5.4, the zlib compressor used the same set of parameters
when compressing the IDAT data and textual data such as zTXt and iCCP.
@@ -5531,7 +5538,7 @@ Other rules can be inferred by inspecting the libpng source.
.SH XIV. Y2K Compliance in libpng
-August 26, 2011
+September 8, 2011
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
@@ -5790,7 +5797,7 @@ possible without all of you.
Thanks to Frank J. T. Wojcik for helping with the documentation.
-Libpng version 1.5.5beta07 - August 26, 2011:
+Libpng version 1.5.5beta07 - September 8, 2011:
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
@@ -5813,7 +5820,7 @@ this sentence.
This code is released under the libpng license.
-libpng versions 1.2.6, August 15, 2004, through 1.5.5beta07, August 26, 2011, are
+libpng versions 1.2.6, August 15, 2004, through 1.5.5beta07, September 8, 2011, are
Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
@@ -5912,7 +5919,7 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
-August 26, 2011
+September 8, 2011
.\" end of man page
diff --git a/libpngpf.3 b/libpngpf.3
index 9ecc4b5d9..a49e9ffac 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,4 +1,4 @@
-.TH LIBPNGPF 3 "August 26, 2011"
+.TH LIBPNGPF 3 "September 8, 2011"
.SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.5.5beta07
(private functions)
diff --git a/png.5 b/png.5
index c78b016d8..d9348fc3d 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "August 26, 2011"
+.TH PNG 5 "September 8, 2011"
.SH NAME
png \- Portable Network Graphics (PNG) format
.SH DESCRIPTION
diff --git a/png.h b/png.h
index eb78793f4..020f9121e 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
/* png.h - header file for PNG reference library
*
- * libpng version 1.5.5beta07 - August 26, 2011
+ * libpng version 1.5.5beta07 - September 8, 2011
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@@ -11,7 +11,7 @@
* Authors and maintainers:
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
- * libpng versions 0.97, January 1998, through 1.5.5beta07 - August 26, 2011: Glenn
+ * libpng versions 0.97, January 1998, through 1.5.5beta07 - September 8, 2011: Glenn
* See also "Contributing Authors", below.
*
* Note about libpng version numbers:
@@ -189,7 +189,7 @@
*
* This code is released under the libpng license.
*
- * libpng versions 1.2.6, August 15, 2004, through 1.5.5beta07, August 26, 2011, are
+ * libpng versions 1.2.6, August 15, 2004, through 1.5.5beta07, September 8, 2011, are
* Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
* distributed according to the same disclaimer and license as libpng-1.2.5
* with the following individual added to the list of Contributing Authors:
@@ -301,7 +301,7 @@
* Y2K compliance in libpng:
* =========================
*
- * August 26, 2011
+ * September 8, 2011
*
* Since the PNG Development group is an ad-hoc body, we can't make
* an official declaration.
@@ -364,7 +364,7 @@
/* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.5.5beta07"
#define PNG_HEADER_VERSION_STRING \
- " libpng version 1.5.5beta07 - August 26, 2011\n"
+ " libpng version 1.5.5beta07 - September 8, 2011\n"
#define PNG_LIBPNG_VER_SONUM 15
#define PNG_LIBPNG_VER_DLLNUM 15
diff --git a/pngconf.h b/pngconf.h
index 90504f5ab..7d9848691 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
/* pngconf.h - machine configurable file for libpng
*
- * libpng version 1.5.5beta07 - August 26, 2011
+ * libpng version 1.5.5beta07 - September 8, 2011
*
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/projects/vstudio/readme.txt b/projects/vstudio/readme.txt
index f699cfa94..991057921 100644
--- a/projects/vstudio/readme.txt
+++ b/projects/vstudio/readme.txt
@@ -1,7 +1,7 @@
VisualStudio instructions
-libpng version 1.5.5beta07 - August 26, 2011
+libpng version 1.5.5beta07 - September 8, 2011
Copyright (c) 1998-2010 Glenn Randers-Pehrson
diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props
index 7e4fc9ea7..a476b2a9a 100644
--- a/projects/vstudio/zlib.props
+++ b/projects/vstudio/zlib.props
@@ -2,7 +2,7 @@
<!--
* zlib.props - location of zlib source
*
- * libpng version 1.5.5beta07 - August 29, 2011
+ * libpng version 1.5.5beta07 - September 8, 2011
*
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
*
diff --git a/scripts/README.txt b/scripts/README.txt
index c9729df31..b34687fa7 100644
--- a/scripts/README.txt
+++ b/scripts/README.txt
@@ -1,5 +1,5 @@
-Makefiles for libpng version 1.5.5beta07 - August 26, 2011
+Makefiles for libpng version 1.5.5beta07 - September 8, 2011
pnglibconf.h.prebuilt => Stores configuration settings
makefile.linux => Linux/ELF makefile