X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b5f62a0b2db198609b45dec622a018dae37008e..3e2656801d825761f55ea9b0b766802c6cd32f1d:/src/png/libpng.3 diff --git a/src/png/libpng.3 b/src/png/libpng.3 index c9e96ab6a4..e7fa62e6ad 100644 --- a/src/png/libpng.3 +++ b/src/png/libpng.3 @@ -1,6 +1,6 @@ -.TH LIBPNG 3 "September 18, 2002" +.TH LIBPNG 3 "August 15, 2004" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.2.5rc3 +libpng \- Portable Network Graphics (PNG) Reference Library 1.2.6 .SH SYNOPSIS \fI\fB @@ -100,10 +100,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.2.5rc3 \fI\fB -\fBpng_uint_32 png_get_asm_flags (png_structp \fIpng_ptr\fP\fB);\fP - -\fI\fB - \fBpng_byte png_get_bit_depth (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP \fI\fB @@ -196,18 +192,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.2.5rc3 \fI\fB -\fBpng_byte png_get_mmx_bitdepth_threshold (png_structp \fIpng_ptr\fP\fB);\fP - -\fI\fB - -\fBpng_uint_32 png_get_mmx_flagmask (int \fP\fIflag_select\fP\fB, int \fI*compilerID\fP\fB);\fP - -\fI\fB - -\fBpng_uint_32 png_get_mmx_rowbytes_threshold (png_structp \fIpng_ptr\fP\fB);\fP - -\fI\fB - \fBpng_uint_32 png_get_oFFs (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fP\fI*offset_x\fP\fB, png_uint_32 \fP\fI*offset_y\fP\fB, int \fI*unit_type\fP\fB);\fP \fI\fB @@ -282,10 +266,18 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.2.5rc3 \fI\fB +\fBpng_uint_32 png_get_user_height_max( png_structp \fIpng_ptr\fP\fB);\fP + +\fI\fB + \fBpng_voidp png_get_user_transform_ptr (png_structp \fIpng_ptr\fP\fB);\fP \fI\fB +\fBpng_uint_32 png_get_user_width_max (png_structp \fIpng_ptr\fP\fB);\fP + +\fI\fB + \fBpng_uint_32 png_get_valid (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIflag\fP\fB);\fP \fI\fB @@ -342,10 +334,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.2.5rc3 \fI\fB -\fBpng_voidp png_malloc_warn (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fIsize\fP\fB);\fP - -\fI\fB - \fBvoidp png_memcpy (png_voidp \fP\fIs1\fP\fB, png_voidp \fP\fIs2\fP\fB, png_size_t \fIsize\fP\fB);\fP \fI\fB @@ -362,10 +350,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.2.5rc3 \fI\fB -\fBint png_mmx_support \fI(void\fP\fB);\fP - -\fI\fB - \fBDEPRECATED: void png_permit_empty_plte (png_structp \fP\fIpng_ptr\fP\fB, int \fIempty_plte_permitted\fP\fB);\fP \fI\fB @@ -418,10 +402,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.2.5rc3 \fI\fB -\fBpng_set_asm_flags (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fIasm_flags\fP\fB);\fP - -\fI\fB - \fBvoid png_set_background (png_structp \fP\fIpng_ptr\fP\fB, png_color_16p \fP\fIbackground_color\fP\fB, int \fP\fIbackground_gamma_code\fP\fB, int \fP\fIneed_expand\fP\fB, double \fIbackground_gamma\fP\fB);\fP \fI\fB @@ -550,10 +530,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.2.5rc3 \fI\fB -\fBpng_set_mmx_thresholds (png_structp \fP\fIpng_ptr\fP\fB, png_byte \fP\fImmx_bitdepth_threshold\fP\fB, png_uint_32 \fImmx_rowbytes_threshold\fP\fB);\fP - -\fI\fB - \fBvoid png_set_oFFs (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fP\fIoffset_x\fP\fB, png_uint_32 \fP\fIoffset_y\fP\fB, int \fIunit_type\fP\fB);\fP \fI\fB @@ -646,12 +622,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.2.5rc3 \fI\fB -\fBvoid png_set_strip_error_numbers (png_structp \fIpng_ptr, - -\fBpng_uint_32 \fIstrip_mode\fP\fB);\fP - -\fI\fB - \fBvoid png_set_swap (png_structp \fIpng_ptr\fP\fB);\fP \fI\fB @@ -688,6 +658,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.2.5rc3 \fI\fB +\fBvoid png_set_user_limits (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fP\fIuser_width_max\fP\fB, png_uint_32 \fIuser_height_max\fP\fB);\fP + +\fI\fB + \fBvoid png_set_user_transform_info (png_structp \fP\fIpng_ptr\fP\fB, png_voidp \fP\fIuser_transform_ptr\fP\fB, int \fP\fIuser_transform_depth\fP\fB, int \fIuser_transform_channels\fP\fB);\fP \fI\fB @@ -780,6 +754,14 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.2.5rc3 \fI\fB +\fBvoidpf png_zalloc (voidpf \fP\fIpng_ptr\fP\fB, uInt \fP\fIitems\fP\fB, uInt \fIsize\fP\fB);\fP + +\fI\fB + +\fBvoid png_zfree (voidpf \fP\fIpng_ptr\fP\fB, voidpf \fIptr\fP\fB);\fP + +\fI\fB + .SH DESCRIPTION The .I libpng @@ -791,10 +773,10 @@ 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.2.5rc3 - September 18, 2002 + libpng version 1.2.6 - August 15, 2004 Updated and distributed by Glenn Randers-Pehrson - - Copyright (c) 1998-2002 Glenn Randers-Pehrson + + Copyright (c) 1998-2004 Glenn Randers-Pehrson For conditions of distribution and use, see copyright notice in png.h. @@ -1091,6 +1073,28 @@ To inform libpng about your function, use png_set_read_status_fn(png_ptr, read_row_callback); +%-%.SS Width and height limits +%-% +%-%The PNG specification allows the width and height of an image to be as +%-%large as 2^31-1 (0x7fffffff), or about 2.147 billion rows and columns. +%-%Since very few applications really need to process such large images, +%-%we have imposed an arbitrary 1-million limit on rows and columns. +%-%Larger images will be rejected immediately with a png_error() call. If +%-%you wish to override this limit, you can use +%-% +%-% png_set_user_limits(png_ptr, width_max, height_max); +%-% +%-%to set your own limits, or use width_max = height_max = 0x7fffffffL +%-%to allow all valid dimensions (libpng may reject some very large images +%-%anyway because of potential buffer overflow conditions). +%-% +%-%You should put this statement after you create the PNG structure and +%-%before calling png_read_info(), png_read_png(), or png_process_data(). +%-%If you need to retrieve the limits that are being applied, use +%-% +%-% width_max = png_get_user_width_max(png_ptr); +%-% height_max = png_get_user_height_max(png_ptr); +%-% .SS Unknown-chunk handling Now you get to set the way the library processes unknown chunks in the @@ -1099,23 +1103,31 @@ behavior is that known chunks will be parsed into information in various info_ptr members; unknown chunks will be discarded. To change this, you can call: - png_set_keep_unknown_chunks(png_ptr, info_ptr, keep, + png_set_keep_unknown_chunks(png_ptr, keep, chunk_list, num_chunks); - keep - 0: do not keep - 1: keep only if safe-to-copy - 2: keep even if unsafe-to-copy + keep - 0: do not handle as unknown + 1: do not keep + 2: keep only if safe-to-copy + 3: keep even if unsafe-to-copy + You can use these definitions: + PNG_HANDLE_CHUNK_AS_DEFAULT 0 + PNG_HANDLE_CHUNK_NEVER 1 + PNG_HANDLE_CHUNK_IF_SAFE 2 + PNG_HANDLE_CHUNK_ALWAYS 3 chunk_list - list of chunks affected (a byte string, five bytes per chunk, NULL or '\0' if num_chunks is 0) num_chunks - number of chunks affected; if 0, all - unknown chunks are affected + unknown chunks are affected. If nonzero, + only the chunks in the list are affected Unknown chunks declared in this way will be saved as raw data onto a list of png_unknown_chunk structures. If a chunk that is normally known to libpng is named in the list, it will be handled as unknown, according to the "keep" directive. If a chunk is named in successive instances of png_set_keep_unknown_chunks(), the final instance will -take precedence. +take precedence. The IHDR and IEND chunks should not be named in +chunk_list; if they are, libpng will process them normally anyway. .SS The high-level read interface @@ -1170,8 +1182,14 @@ where row_pointers is an array of pointers to the pixel data for each row: If you know your image size and pixel size ahead of time, you can allocate row_pointers prior to calling png_read_png() with + if (height > PNG_UINT_32_MAX/png_sizeof(png_byte)) + png_error (png_ptr, + "Image is too tall to process in memory"); + if (width > PNG_UINT_32_MAX/pixel_size) + png_error (png_ptr, + "Image is too wide to process in memory"); row_pointers = png_malloc(png_ptr, - height*sizeof(png_bytep)); + height*png_sizeof(png_bytep)); for (int i=0; i= 10200) - png_uint_32 mask, flags; - - flags = png_get_asm_flags(png_ptr); - mask = png_get_asm_flagmask(PNG_SELECT_READ | PNG_SELECT_WRITE); - png_set_asm_flags(png_ptr, flags | mask); - #endif - -To enable only optimizations relevant to reading PNGs, use PNG_SELECT_READ -by itself when calling png_get_asm_flagmask(); similarly for optimizing -only writing. To disable all optimizations: - - #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200) - flags = png_get_asm_flags(png_ptr); - mask = png_get_asm_flagmask(PNG_SELECT_READ | PNG_SELECT_WRITE); - png_set_asm_flags(png_ptr, flags & ~mask); - #endif - -To enable or disable only MMX-related features, use png_get_mmx_flagmask() -in place of png_get_asm_flagmask(). The mmx version takes one additional -parameter: - - #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200) - int selection = PNG_SELECT_READ | PNG_SELECT_WRITE; - int compilerID; - - mask = png_get_mmx_flagmask(selection, &compilerID); - #endif - -On return, compilerID will indicate which version of the MMX assembler -optimizations was compiled. Currently two flavors exist: Microsoft -Visual C++ (compilerID == 1) and GNU C (a.k.a. gcc/gas, compilerID == 2). -On non-x86 platforms or on systems compiled without MMX optimizations, a -value of -1 is used. - -Note that both png_get_asm_flagmask() and png_get_mmx_flagmask() return -all valid, settable optimization bits for the version of the library that's -currently in use. In the case of shared (dynamically linked) libraries, -this may include optimizations that did not exist at the time the code was -written and compiled. It is also possible, of course, to enable only known, -specific optimizations; for example: - - #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200) - flags = PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \ - | PNG_ASM_FLAG_MMX_READ_INTERLACE \ - | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \ - | PNG_ASM_FLAG_MMX_READ_FILTER_UP \ - | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \ - | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ; - png_set_asm_flags(png_ptr, flags); - #endif - -This method would enable only the MMX read-optimizations available at the -time of libpng 1.2.0's release, regardless of whether a later version of -the DLL were actually being used. (Also note that these functions did not -exist in versions older than 1.2.0, so any attempt to run a dynamically -linked app on such an older version would fail.) - -To determine whether the processor supports MMX instructions at all, use -the png_mmx_support() function: - - #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200) - mmxsupport = png_mmx_support(); - #endif - -It returns -1 if MMX support is not compiled into libpng, 0 if MMX code -is compiled but MMX is not supported by the processor, or 1 if MMX support -is fully available. Note that png_mmx_support(), png_get_mmx_flagmask(), -and png_get_asm_flagmask() all may be called without allocating and ini- -tializing any PNG structures (for example, as part of a usage screen or -"about" box). - -The following code can be used to prevent an application from using the -thread_unsafe features, even if libpng was built with PNG_THREAD_UNSAFE_OK -defined: - -#if defined(PNG_USE_PNGGCCRD) && defined(PNG_ASSEMBLER_CODE_SUPPORTED) \ - && defined(PNG_THREAD_UNSAFE_OK) - /* Disable thread-unsafe features of pnggccrd */ - if (png_access_version() >= 10200) - { - png_uint_32 mmx_disable_mask = 0; - png_uint_32 asm_flags; - - mmx_disable_mask |= ( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \ - | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \ - | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \ - | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ); - asm_flags = png_get_asm_flags(png_ptr); - png_set_asm_flags(png_ptr, asm_flags & ~mmx_disable_mask); - } -#endif - -For more extensive examples of runtime querying, enabling and disabling -of optimized features, see contrib/gregbook/readpng2.c in the libpng -source-code distribution. - - -.SH VII. MNG support +%-%.SH VI. Runtime optimization +%-% +%-%A new feature in libpng 1.2.0 is the ability to dynamically switch between +%-%standard and optimized versions of some routines. Currently these are +%-%limited to three computationally intensive tasks when reading PNG files: +%-%decoding row filters, expanding interlacing, and combining interlaced or +%-%transparent row data with previous row data. Currently the optimized +%-%versions are available only for x86 (Intel, AMD, etc.) platforms with +%-%MMX support, though this may change in future versions. (For example, +%-%the non-MMX assembler optimizations for zlib might become similarly +%-%runtime-selectable in future releases, in which case libpng could be +%-%extended to support them. Alternatively, the compile-time choice of +%-%floating-point versus integer routines for gamma correction might become +%-%runtime-selectable.) +%-% +%-%Because such optimizations tend to be very platform- and compiler-dependent, +%-%both in how they are written and in how they perform, the new runtime code +%-%in libpng has been written to allow programs to query, enable, and disable +%-%either specific optimizations or all such optimizations. For example, to +%-%enable all possible optimizations (bearing in mind that some "optimizations" +%-%may actually run more slowly in rare cases): +%-% +%-% #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200) +%-% png_uint_32 mask, flags; +%-% +%-% flags = png_get_asm_flags(png_ptr); +%-% mask = png_get_asm_flagmask(PNG_SELECT_READ | PNG_SELECT_WRITE); +%-% png_set_asm_flags(png_ptr, flags | mask); +%-% #endif +%-% +%-%To enable only optimizations relevant to reading PNGs, use PNG_SELECT_READ +%-%by itself when calling png_get_asm_flagmask(); similarly for optimizing +%-%only writing. To disable all optimizations: +%-% +%-% #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200) +%-% flags = png_get_asm_flags(png_ptr); +%-% mask = png_get_asm_flagmask(PNG_SELECT_READ | PNG_SELECT_WRITE); +%-% png_set_asm_flags(png_ptr, flags & ~mask); +%-% #endif +%-% +%-%To enable or disable only MMX-related features, use png_get_mmx_flagmask() +%-%in place of png_get_asm_flagmask(). The mmx version takes one additional +%-%parameter: +%-% +%-% #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200) +%-% int selection = PNG_SELECT_READ | PNG_SELECT_WRITE; +%-% int compilerID; +%-% +%-% mask = png_get_mmx_flagmask(selection, &compilerID); +%-% #endif +%-% +%-%On return, compilerID will indicate which version of the MMX assembler +%-%optimizations was compiled. Currently two flavors exist: Microsoft +%-%Visual C++ (compilerID == 1) and GNU C (a.k.a. gcc/gas, compilerID == 2). +%-%On non-x86 platforms or on systems compiled without MMX optimizations, a +%-%value of -1 is used. +%-% +%-%Note that both png_get_asm_flagmask() and png_get_mmx_flagmask() return +%-%all valid, settable optimization bits for the version of the library that's +%-%currently in use. In the case of shared (dynamically linked) libraries, +%-%this may include optimizations that did not exist at the time the code was +%-%written and compiled. It is also possible, of course, to enable only known, +%-%specific optimizations; for example: +%-% +%-% #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200) +%-% flags = PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \ +%-% | PNG_ASM_FLAG_MMX_READ_INTERLACE \ +%-% | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \ +%-% | PNG_ASM_FLAG_MMX_READ_FILTER_UP \ +%-% | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \ +%-% | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ; +%-% png_set_asm_flags(png_ptr, flags); +%-% #endif +%-% +%-%This method would enable only the MMX read-optimizations available at the +%-%time of libpng 1.2.0's release, regardless of whether a later version of +%-%the DLL were actually being used. (Also note that these functions did not +%-%exist in versions older than 1.2.0, so any attempt to run a dynamically +%-%linked app on such an older version would fail.) +%-% +%-%To determine whether the processor supports MMX instructions at all, use +%-%the png_mmx_support() function: +%-% +%-% #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200) +%-% mmxsupport = png_mmx_support(); +%-% #endif +%-% +%-%It returns -1 if MMX support is not compiled into libpng, 0 if MMX code +%-%is compiled but MMX is not supported by the processor, or 1 if MMX support +%-%is fully available. Note that png_mmx_support(), png_get_mmx_flagmask(), +%-%and png_get_asm_flagmask() all may be called without allocating and ini- +%-%tializing any PNG structures (for example, as part of a usage screen or +%-%"about" box). +%-% +%-%The following code can be used to prevent an application from using the +%-%thread_unsafe features, even if libpng was built with PNG_THREAD_UNSAFE_OK +%-%defined: +%-% +%-%#if defined(PNG_USE_PNGGCCRD) && defined(PNG_ASSEMBLER_CODE_SUPPORTED) \ +%-% && defined(PNG_THREAD_UNSAFE_OK) +%-% /* Disable thread-unsafe features of pnggccrd */ +%-% if (png_access_version() >= 10200) +%-% { +%-% png_uint_32 mmx_disable_mask = 0; +%-% png_uint_32 asm_flags; +%-% +%-% mmx_disable_mask |= ( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \ +%-% | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \ +%-% | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \ +%-% | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ); +%-% asm_flags = png_get_asm_flags(png_ptr); +%-% png_set_asm_flags(png_ptr, asm_flags & ~mmx_disable_mask); +%-% } +%-%#endif +%-% +%-%For more extensive examples of runtime querying, enabling and disabling +%-%of optimized features, see contrib/gregbook/readpng2.c in the libpng +%-%source-code distribution. +%-% +.SH VI. MNG support The MNG specification (available at http://www.libpng.org/pub/mng) allows certain extensions to PNG for PNG images that are embedded in MNG datastreams. @@ -3578,7 +3594,7 @@ png_permit_mng_features() function: PNG_FLAG_MNG_EMPTY_PLTE PNG_FLAG_MNG_FILTER_64 PNG_ALL_MNG_FEATURES - feature_set is a png_32_uint that is the logical AND of + feature_set is a png_uint_32 that is the logical AND of your mask with the set of MNG features that is supported by the version of libpng that you are using. @@ -3590,7 +3606,7 @@ or any other MNG chunks; your application must provide its own support for them. You may wish to consider using libmng (available at http://www.libmng.com) instead. -.SH VIII. Changes to Libpng from version 0.88 +.SH VII. Changes to Libpng from version 0.88 It should be noted that versions of libpng later than 0.96 are not distributed by the original libpng author, Guy Schalnat, nor by @@ -3639,15 +3655,15 @@ application: png_uint_32 application_vn = PNG_LIBPNG_VER; -.SH IX. Y2K Compliance in libpng +.SH VII. Y2K Compliance in libpng -September 18, 2002 +August 15, 2004 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.2.5rc3 are Y2K compliant. It is my belief that earlier +upward through 1.2.6 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 @@ -3782,9 +3798,14 @@ the first widely used release: 1.2.4rc1 13 10204 12.so.0.1.2.4rc1 1.0.14 10 10014 10.so.0.1.0.14 1.2.4 13 10204 12.so.0.1.2.4 - 1.2.5beta1,2 13 10205 12.so.0.1.2.5beta1,2 - 1.2.5rc1,3 13 10205 12.so.0.1.2.5rc1,3 - 1.0.15rc1,3 10 10015 10.so.0.1.0.15rc1,3 + 1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2 + 1.0.15rc1 10 10015 10.so.0.1.0.15rc1 + 1.0.15 10 10015 10.so.0.1.0.15 + 1.2.5 13 10205 12.so.0.1.2.5 + 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4 + 1.2.6rc1-5 13 10206 12.so.0.1.2.6rc1-5 + 1.0.16 10 10016 10.so.0.1.0.16 + 1.2.6 13 10206 12.so.0.1.2.6 Henceforth the source version will match the shared-library minor and patch numbers; the shared-library major version number will be @@ -3834,7 +3855,7 @@ and this library, the specification takes precedence. .SH AUTHORS This man page: Glenn Randers-Pehrson - + The contributing authors would like to thank all those who helped with testing, bug fixes, and patience. This wouldn't have been @@ -3842,9 +3863,9 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.2.5rc3 - September 18, 2002: +Libpng version 1.2.6 - August 15, 2004: 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 (glennrp@users.sourceforge.net). Supported by the PNG development group .br @@ -3859,7 +3880,14 @@ included in the libpng distribution, the latter shall prevail.) If you modify libpng you may insert additional notices immediately following this sentence. -libpng versions 1.0.7, July 1, 2000, through 1.2.5rc3, September 18, 2002, are +libpng version 1.2.6, August 15, 2004, is +Copyright (c) 2004 Glenn Randers-Pehrson, and is +distributed according to the same disclaimer and license as libpng-1.2.5 +with the following individual added to the list of Contributing Authors + + Cosmin Truta + +libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.0.6 with the following individuals added to the list of Contributing Authors @@ -3950,8 +3978,8 @@ Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a certification mark of the Open Source Initiative. Glenn Randers-Pehrson -randeg@alum.rpi.edu -September 18, 2002 +glennrp@users.sourceforge.net +August 15, 2004 .\" end of man page