diff --git a/ANNOUNCE b/ANNOUNCE index 4c5ce17277aa6b7a95252bc224ae2a0906d18330..3621e648992c931158b39fd224b320981fbb54de 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.5.0beta17 - April 1, 2010 +Libpng 1.5.0beta17 - April 17, 2010 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. @@ -142,7 +142,13 @@ version 1.5.0beta16 [April 1, 2010] Combined multiple png_warning() calls for a single error. Restored the macro definition of png_check_sig(). -version 1.5.0beta17 [April 1, 2010] +version 1.5.0beta17 [April 17, 2010] + Documented the fact that png_set_dither() was disabled since libpng-1.4.0. + Reenabled png_set_dither() but renamed it to png_set_quantize() to reflect + more accurately what it actually does. At the same time, renamed + the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros to + PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS. + Added some "(long)" typecasts to printf calls in png_handle_cHRM(). Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index 56b386fa047c25512c997af2306af84974acde72..36a488efcf99545ad8b1ab09d893b85ecc1a3920 100644 --- a/CHANGES +++ b/CHANGES @@ -2054,7 +2054,7 @@ version 1.4.0beta46 [December 10, 2008] PNG_TRANSFORM_STRIP_FILLER (Jim Barry). version 1.4.0beta47 [December 15, 2008] - Support for dithering was removed by default, because it has never + Support for dithering was disabled by default, because it has never been well tested and doesn't work very well. The code has not been removed, however, and can be enabled by building libpng with PNG_READ_DITHER_SUPPORTED defined. @@ -2611,7 +2611,7 @@ version 1.5.0beta15 [March 17, 2010] Removed makefile.mingw. Eliminated PNG_NO_EXTERN and PNG_ALL_EXTERN -version 1.5.0beta16 [April 14, 2010] +version 1.5.0beta16 [April 1, 2010] Make png_text_struct independent of PNG_iTXt_SUPPORTED, so that fields are initialized in all configurations. The READ/WRITE macros (PNG_(READ|WRITE)_iTXt_SUPPORTED) still function as @@ -2622,6 +2622,15 @@ version 1.5.0beta16 [April 14, 2010] Combined multiple png_warning() calls for a single error. Restored the macro definition of png_check_sig(). +version 1.5.0beta17 [April 17, 2010] + Added some "(long)" typecasts to printf calls in png_handle_cHRM(). + Documented the fact that png_set_dither() was disabled since libpng-1.4.0. + Reenabled png_set_dither() but renamed it to png_set_quantize() to reflect + more accurately what it actually does. At the same time, renamed + the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros to + PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS. + Added some "(long)" typecasts to printf calls in png_handle_cHRM(). + Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-implement diff --git a/INSTALL b/INSTALL index 53271d1f9722db02206879c668fe4622323d9ed6..f83e5f9d7ba549a2579c2cd65a4c470c2fb3e988 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,5 @@ -Installing libpng version 1.5.0beta17 - April 1, 2010 +Installing libpng version 1.5.0beta17 - April 17, 2010 On Unix/Linux and similar systems, you can simply type diff --git a/LICENSE b/LICENSE index b31070fe438a1a73aa2eb8fddc0cadab897b648d..e52470e6294a53db50c9e7f8622762fff7c498b3 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.0beta17, April 1, 2010, are +libpng versions 1.2.6, August 15, 2004, through 1.5.0beta17, April 17, 2010, 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 @@ -108,4 +108,4 @@ certification mark of the Open Source Initiative. Glenn Randers-Pehrson glennrp at users.sourceforge.net -April 1, 2010 +April 17, 2010 diff --git a/README b/README index cc5cb87b6078705c8e8283e03c80b266ded2fc8a..fc97f1398f5731a73b9c59a3c2a587850505c710 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -README for libpng version 1.5.0beta17 - April 1, 2010 (shared library 15.0) +README for libpng version 1.5.0beta17 - April 17, 2010 (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/contrib/pngminim/decoder/pngusr.h b/contrib/pngminim/decoder/pngusr.h index 9cbfc53614c377c8c44bd6eb464c705726a6dc6c..6e40d6498c8c54d66428ac1d834219e900054c08 100644 --- a/contrib/pngminim/decoder/pngusr.h +++ b/contrib/pngminim/decoder/pngusr.h @@ -25,7 +25,7 @@ #define PNG_NO_READ_GAMMA #define PNG_NO_READ_BACKGROUND -#define PNG_NO_READ_DITHER +#define PNG_NO_READ_QUANTIZE #define PNG_NO_READ_INVERT #define PNG_NO_READ_SHIFT #define PNG_NO_READ_PACK diff --git a/contrib/pngminim/encoder/pngusr.h b/contrib/pngminim/encoder/pngusr.h index 2feed2ee5b24b2c6abf6b25f3ce47d69677f2239..02eeaa8c7f2492142f4a8793493592c13585f0a2 100644 --- a/contrib/pngminim/encoder/pngusr.h +++ b/contrib/pngminim/encoder/pngusr.h @@ -23,7 +23,7 @@ #define PNG_NO_WRITE_BACKGROUND #define PNG_NO_WRITE_GAMMA -#define PNG_NO_WRITE_DITHER +#define PNG_NO_WRITE_QUANTIZE #define PNG_NO_WRITE_INVERT #define PNG_NO_WRITE_SHIFT #define PNG_NO_WRITE_PACK diff --git a/contrib/pngminim/preader/pngusr.h b/contrib/pngminim/preader/pngusr.h index ca851e0e2d391f215f26619fe96dbc3d1dfd0637..6f6d0ce19277d8153aa2bcdb71f3cc2220ad1ac6 100644 --- a/contrib/pngminim/preader/pngusr.h +++ b/contrib/pngminim/preader/pngusr.h @@ -19,7 +19,7 @@ #define png_error(s1,s2) png_err(s1) #define png_chunk_error(s1,s2) png_err(s1) -#define PNG_NO_READ_DITHER +#define PNG_NO_READ_QUANTIZE #define PNG_NO_READ_INVERT #define PNG_NO_READ_SHIFT #define PNG_NO_READ_PACK diff --git a/example.c b/example.c index 76d323f2434d638e762e5f3da5d12de5b12f50ca..48298d2002dd5f3b5ef0eb5c3026722065368ba4 100644 --- a/example.c +++ b/example.c @@ -2,7 +2,7 @@ #if 0 /* in case someone actually tries to compile this */ /* example.c - an example of using libpng - * Last changed in libpng 1.5.0 [April 14, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * This file has been placed in the public domain by the authors. * Maintained 1998-2010 Glenn Randers-Pehrson * Maintained 1996, 1997 Andreas Dilger) @@ -160,7 +160,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */ * If you have enough memory to read in the entire image at once, * and you need to specify only transforms that can be controlled * with one of the PNG_TRANSFORM_* bits (this presently excludes - * dithering, filling, setting background, and doing gamma + * quantizing, filling, setting background, and doing gamma * adjustment), then you can read the entire image (including * pixels) into the info structure with this call: */ @@ -271,8 +271,8 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */ png_set_gamma(png_ptr, screen_gamma, 0.45455); } -#ifdef PNG_READ_DITHER_SUPPORTED - /* Dither RGB files down to 8 bit palette or reduce palettes +#ifdef PNG_READ_QUANTIZE_SUPPORTED + /* Quantize RGB files down to 8 bit palette or reduce palettes * to the number of colors available on your screen. */ if (color_type & PNG_COLOR_MASK_COLOR) @@ -283,10 +283,10 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */ /* This reduces the image to the application supplied palette */ if (/* We have our own palette */) { - /* An array of colors to which the image should be dithered */ + /* An array of colors to which the image should be quantized */ png_color std_color_cube[MAX_SCREEN_COLORS]; - png_set_dither(png_ptr, std_color_cube, MAX_SCREEN_COLORS, + png_set_quantize(png_ptr, std_color_cube, MAX_SCREEN_COLORS, MAX_SCREEN_COLORS, NULL, 0); } /* This reduces the image to the palette supplied in the file */ @@ -296,11 +296,11 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */ png_get_hIST(png_ptr, info_ptr, &histogram); - png_set_dither(png_ptr, palette, num_palette, + png_set_quantize(png_ptr, palette, num_palette, max_screen_colors, histogram, 0); } } -#endif /* PNG_READ_DITHER_SUPPORTED */ +#endif /* PNG_READ_QUANTIZE_SUPPORTED */ /* Invert monochrome files to have 0 as white and 1 as black */ png_set_invert_mono(png_ptr); diff --git a/libpng-1.5.0beta17.txt b/libpng-1.5.0beta17.txt index 7963d8d259e41d1a4ef56828e73e278200101904..07642f2da94e680bb461e64d39dec47824ad2271 100644 --- a/libpng-1.5.0beta17.txt +++ b/libpng-1.5.0beta17.txt @@ -1,6 +1,6 @@ libpng.txt - A description on how to use and modify libpng - libpng version 1.5.0beta17 - April 14, 2010 + libpng version 1.5.0beta17 - April 17, 2010 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2009 Glenn Randers-Pehrson @@ -11,7 +11,7 @@ libpng.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.5.0beta17 - April 14, 2010 + libpng versions 0.97, January 1998, through 1.5.0beta17 - April 17, 2010 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2009 Glenn Randers-Pehrson @@ -479,7 +479,7 @@ you want to do are limited to the following set: to RGB (or GA to RGBA) (This excludes setting a background color, doing gamma transformation, -dithering, and setting filler.) If this is the case, simply do this: +quantizing, and setting filler.) If this is the case, simply do this: png_read_png(png_ptr, info_ptr, png_transforms, NULL) @@ -1166,6 +1166,40 @@ recommended that PNG viewers support gamma correction. else png_set_gamma(png_ptr, screen_gamma, 0.45455); +If you need to reduce an RGB file to a paletted file, or if a paletted +file has more entries then will fit on your screen, png_set_quantize() +will do that. Note that this is a simple match dither that merely +finds the closest color available. This should work fairly well with +optimized palettes, and fairly badly with linear color cubes. If you +pass a palette that is larger then maximum_colors, the file will +reduce the number of colors in the palette so it will fit into +maximum_colors. If there is a histogram, it will use it to make +more intelligent choices when reducing the palette. If there is no +histogram, it may not do as good a job. + + if (color_type & PNG_COLOR_MASK_COLOR) + { + if (png_get_valid(png_ptr, info_ptr, + PNG_INFO_PLTE)) + { + png_uint_16p histogram = NULL; + + png_get_hIST(png_ptr, info_ptr, + &histogram); + png_set_quantize(png_ptr, palette, num_palette, + max_screen_colors, histogram, 1); + } + else + { + png_color std_color_cube[MAX_SCREEN_COLORS] = + { ... colors ... }; + + png_set_quantize(png_ptr, std_color_cube, + MAX_SCREEN_COLORS, MAX_SCREEN_COLORS, + NULL,0); + } + } + PNG files describe monochrome as black being zero and white being one. The following code will reverse this (make black be one and white be zero): @@ -3118,10 +3152,14 @@ The png_zalloc() and png_zfree() functions are no longer exported. The png_zalloc() function no longer zeroes out the memory that it allocates. -Support for dithering was removed by default, because it has never -been well tested and doesn't work very well. The code has not -been removed, however, and can be enabled by building libpng with -PNG_READ_DITHER_SUPPORTED defined. +Support for dithering was disabled by default in libpng-1.4.0, because +been well tested and doesn't actually "dither". The code was not +removed, however, and could be enabled by building libpng with +PNG_READ_DITHER_SUPPORTED defined. In libpng-1.4.2, this support +was reenabled, but the function was renamed png_set_quantize() to +reflect more accurately what it actually does. At the same time, +the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros were also renamed to +PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS. We removed the trailing '.' from the warning and error messages. @@ -3263,7 +3301,7 @@ Other rules can be inferred by inspecting the libpng source. XIII. Y2K Compliance in libpng -April 14, 2010 +April 17, 2010 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 36cf6258d14cdccda3abc37a2b830dacb344c579..c3a5a8a0c93065d52a4df79df736a543b578cbc3 100644 --- a/libpng.3 +++ b/libpng.3 @@ -1,4 +1,4 @@ -.TH LIBPNG 3 "April 14, 2010" +.TH LIBPNG 3 "April 17, 2010" .SH NAME libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta17 .SH SYNOPSIS @@ -458,10 +458,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta17 \fI\fB -\fBvoid png_set_dither (png_structp \fP\fIpng_ptr\fP\fB, png_colorp \fP\fIpalette\fP\fB, int \fP\fInum_palette\fP\fB, int \fP\fImaximum_colors\fP\fB, png_uint_16p \fP\fIhistogram\fP\fB, int \fIfull_dither\fP\fB);\fP - -\fI\fB - \fBvoid png_set_error_fn (png_structp \fP\fIpng_ptr\fP\fB, png_voidp \fP\fIerror_ptr\fP\fB, png_error_ptr \fP\fIerror_fn\fP\fB, png_error_ptr \fIwarning_fn\fP\fB);\fP \fI\fB @@ -586,6 +582,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta17 \fI\fB +\fBvoid png_set_quantize (png_structp \fP\fIpng_ptr\fP\fB, png_colorp \fP\fIpalette\fP\fB, int \fP\fInum_palette\fP\fB, int \fP\fImaximum_colors\fP\fB, png_uint_16p \fP\fIhistogram\fP\fB, int \fIfull_quantize\fP\fB);\fP + +\fI\fB + \fBvoid png_set_read_fn (png_structp \fP\fIpng_ptr\fP\fB, png_voidp \fP\fIio_ptr\fP\fB, png_rw_ptr \fIread_data_fn\fP\fB);\fP \fI\fB @@ -789,7 +789,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.5.0beta17 - April 14, 2010 + libpng version 1.5.0beta17 - April 17, 2010 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2009 Glenn Randers-Pehrson @@ -800,7 +800,7 @@ libpng.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.5.0beta17 - April 14, 2010 + libpng versions 0.97, January 1998, through 1.5.0beta17 - April 17, 2010 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2009 Glenn Randers-Pehrson @@ -1268,7 +1268,7 @@ you want to do are limited to the following set: to RGB (or GA to RGBA) (This excludes setting a background color, doing gamma transformation, -dithering, and setting filler.) If this is the case, simply do this: +quantizing, and setting filler.) If this is the case, simply do this: png_read_png(png_ptr, info_ptr, png_transforms, NULL) @@ -1955,6 +1955,40 @@ recommended that PNG viewers support gamma correction. else png_set_gamma(png_ptr, screen_gamma, 0.45455); +If you need to reduce an RGB file to a paletted file, or if a paletted +file has more entries then will fit on your screen, png_set_quantize() +will do that. Note that this is a simple match dither that merely +finds the closest color available. This should work fairly well with +optimized palettes, and fairly badly with linear color cubes. If you +pass a palette that is larger then maximum_colors, the file will +reduce the number of colors in the palette so it will fit into +maximum_colors. If there is a histogram, it will use it to make +more intelligent choices when reducing the palette. If there is no +histogram, it may not do as good a job. + + if (color_type & PNG_COLOR_MASK_COLOR) + { + if (png_get_valid(png_ptr, info_ptr, + PNG_INFO_PLTE)) + { + png_uint_16p histogram = NULL; + + png_get_hIST(png_ptr, info_ptr, + &histogram); + png_set_quantize(png_ptr, palette, num_palette, + max_screen_colors, histogram, 1); + } + else + { + png_color std_color_cube[MAX_SCREEN_COLORS] = + { ... colors ... }; + + png_set_quantize(png_ptr, std_color_cube, + MAX_SCREEN_COLORS, MAX_SCREEN_COLORS, + NULL,0); + } + } + PNG files describe monochrome as black being zero and white being one. The following code will reverse this (make black be one and white be zero): @@ -3907,10 +3941,14 @@ The png_zalloc() and png_zfree() functions are no longer exported. The png_zalloc() function no longer zeroes out the memory that it allocates. -Support for dithering was removed by default, because it has never -been well tested and doesn't work very well. The code has not -been removed, however, and can be enabled by building libpng with -PNG_READ_DITHER_SUPPORTED defined. +Support for dithering was disabled by default in libpng-1.4.0, because +been well tested and doesn't actually "dither". The code was not +removed, however, and could be enabled by building libpng with +PNG_READ_DITHER_SUPPORTED defined. In libpng-1.4.2, this support +was reenabled, but the function was renamed png_set_quantize() to +reflect more accurately what it actually does. At the same time, +the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros were also renamed to +PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS. We removed the trailing '.' from the warning and error messages. @@ -4052,7 +4090,7 @@ Other rules can be inferred by inspecting the libpng source. .SH XIII. Y2K Compliance in libpng -April 14, 2010 +April 17, 2010 Since the PNG Development group is an ad-hoc body, we can't make an official declaration. @@ -4292,7 +4330,7 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.5.0beta17 - April 14, 2010: +Libpng version 1.5.0beta17 - April 17, 2010: Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). @@ -4315,7 +4353,7 @@ this sentence. This code is released under the libpng license. -libpng versions 1.2.6, August 15, 2004, through 1.5.0beta17, April 14, 2010, are +libpng versions 1.2.6, August 15, 2004, through 1.5.0beta17, April 17, 2010, 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 @@ -4414,7 +4452,7 @@ certification mark of the Open Source Initiative. Glenn Randers-Pehrson glennrp at users.sourceforge.net -April 14, 2010 +April 17, 2010 .\" end of man page diff --git a/libpngpf.3 b/libpngpf.3 index 0933fdfaf8d7fc846e0da07dc3e5ecd8fc062613..0787d99e58a46ffd4e48c2fa598836d12e6b7ffe 100644 --- a/libpngpf.3 +++ b/libpngpf.3 @@ -1,4 +1,4 @@ -.TH LIBPNGPF 3 "April 1, 2010" +.TH LIBPNGPF 3 "April 17, 2010" .SH NAME libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta17 (private functions) @@ -143,14 +143,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta17 \fI\fB -\fI\fB - -\fBvoid png_do_dither (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_bytep \fP\fIpalette_lookup\fP\fB, png_bytep \fIdither_lookup\fP\fB);\fP - -\fI\fB - -\fI\fB - \fBvoid png_do_expand (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_color_16p \fItrans_value\fP\fB);\fP \fI\fB @@ -193,6 +185,14 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta17 \fI\fB +\fBvoid png_do_quantize (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_bytep \fP\fIpalette_lookup\fP\fB, png_bytep \fIquantize_lookup\fP\fB);\fP + +\fI\fB + +\fI\fB + +\fI\fB + \fBvoid png_do_read_filler (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_uint_32 \fP\fIfiller\fP\fB, png_uint_32 \fIflags\fP\fB);\fP \fI\fB diff --git a/png.5 b/png.5 index eb0daba07a8cee969287e05b643cf093a086deaa..f7d4ce3fc9ee129a7e1b2f406313bcd8450b6368 100644 --- a/png.5 +++ b/png.5 @@ -1,4 +1,4 @@ -.TH PNG 5 "April 1, 2010" +.TH PNG 5 "April 17, 2010" .SH NAME png \- Portable Network Graphics (PNG) format .SH DESCRIPTION diff --git a/png.c b/png.c index 4dd64bbc26e900cc5c9168e50a44ef287a9f797a..6aa8452875932b4ee41d2e59d4a50c72f83c5782 100644 --- a/png.c +++ b/png.c @@ -1,7 +1,7 @@ /* png.c - location for general purpose libpng functions * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) @@ -548,13 +548,13 @@ png_get_copyright(png_structp png_ptr) #else # ifdef __STDC__ return ((png_charp) PNG_STRING_NEWLINE \ - "libpng version 1.5.0beta17 - April 1, 2010" PNG_STRING_NEWLINE \ + "libpng version 1.5.0beta17 - April 17, 2010" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2010 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \ "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ PNG_STRING_NEWLINE); # else - return ((png_charp) "libpng version 1.5.0beta17 - April 1, 2010\ + return ((png_charp) "libpng version 1.5.0beta17 - April 17, 2010\ Copyright (c) 1998-2010 Glenn Randers-Pehrson\ Copyright (c) 1996-1997 Andreas Dilger\ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."); diff --git a/png.h b/png.h index f81780e6e27f7188e29b871f7ac3369d0cadf2c0..2e891ed7ba14ad6a1891e54f1cefe5f8b0da5ab7 100644 --- a/png.h +++ b/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.5.0beta17 - April 1, 2010 + * libpng version 1.5.0beta17 - April 17, 2010 * Copyright (c) 1998-2010 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.0beta17 - April 1, 2010: Glenn + * libpng versions 0.97, January 1998, through 1.5.0beta17 - April 17, 2010: Glenn * See also "Contributing Authors", below. * * Note about libpng version numbers: @@ -170,7 +170,7 @@ * * This code is released under the libpng license. * - * libpng versions 1.2.6, August 15, 2004, through 1.5.0beta17, April 1, 2010, are + * libpng versions 1.2.6, August 15, 2004, through 1.5.0beta17, April 17, 2010, are * Copyright (c) 2004, 2006-2010 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: @@ -282,7 +282,7 @@ * Y2K compliance in libpng: * ========================= * - * April 1, 2010 + * April 17, 2010 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. @@ -346,7 +346,7 @@ /* Version information for png.h - this should match the version in png.c */ #define PNG_LIBPNG_VER_STRING "1.5.0beta17" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.5.0beta17 - April 1, 2010\n" + " libpng version 1.5.0beta17 - April 17, 2010\n" #define PNG_LIBPNG_VER_SONUM 15 #define PNG_LIBPNG_VER_DLLNUM 15 @@ -1033,13 +1033,13 @@ extern PNG_EXPORT(void,png_set_background,(png_structp png_ptr, extern PNG_EXPORT(void,png_set_strip_16,(png_structp png_ptr),,48); #endif -#ifdef PNG_READ_DITHER_SUPPORTED -/* Turn on dithering, and reduce the palette to the number of colors +#ifdef PNG_READ_QUANTIZE_SUPPORTED +/* Turn on quantizing, and reduce the palette to the number of colors * available. */ -extern PNG_EXPORT(void,png_set_dither,(png_structp png_ptr, +extern PNG_EXPORT(void,png_set_quantize,(png_structp png_ptr, png_colorp palette, int num_palette, int maximum_colors, - png_uint_16p histogram, int full_dither),,49); + png_uint_16p histogram, int full_quantize),,49); #endif #ifdef PNG_READ_GAMMA_SUPPORTED diff --git a/pngconf.h b/pngconf.h index e7479ad7e76e453a9b9dc3ede0bbcc6c334d23aa..37d1a3ffa2172b766b87346cd6e2a879a1d69987 100644 --- a/pngconf.h +++ b/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.5.0beta17 - April 1, 2010 + * libpng version 1.5.0beta17 - April 17, 2010 * * Copyright (c) 1998-2010 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -523,18 +523,18 @@ /* Other defines for things like memory and the like can go here. */ -/* This controls how fine the dithering gets. As this allocates +/* This controls how fine the quantizing gets. As this allocates * a largish chunk of memory (32K), those who are not as concerned - * with dithering quality can decrease some or all of these. + * with quantizing quality can decrease some or all of these. */ -#ifndef PNG_DITHER_RED_BITS -# define PNG_DITHER_RED_BITS 5 +#ifndef PNG_QUANTIZE_RED_BITS +# define PNG_QUANTIZE_RED_BITS 5 #endif -#ifndef PNG_DITHER_GREEN_BITS -# define PNG_DITHER_GREEN_BITS 5 +#ifndef PNG_QUANTIZE_GREEN_BITS +# define PNG_QUANTIZE_GREEN_BITS 5 #endif -#ifndef PNG_DITHER_BLUE_BITS -# define PNG_DITHER_BLUE_BITS 5 +#ifndef PNG_QUANTIZE_BLUE_BITS +# define PNG_QUANTIZE_BLUE_BITS 5 #endif /* This controls how fine the gamma correction becomes when you @@ -629,6 +629,9 @@ # ifndef PNG_NO_READ_INVERT # define PNG_READ_INVERT_SUPPORTED # endif +# ifndef PNG_NO_READ_QUANTIZE +# define PNG_READ_QUANTIZE_SUPPORTED +# endif # ifndef PNG_NO_READ_BACKGROUND # define PNG_READ_BACKGROUND_SUPPORTED # endif diff --git a/pngdebug.h b/pngdebug.h index 2b34eaea51738694dbb902a775e7cabcf0692a69..f76778d730e8ae3e7b940eb78dac40690578897b 100644 --- a/pngdebug.h +++ b/pngdebug.h @@ -5,7 +5,7 @@ * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * - * Last changed in libpng version 1.5.0 - April 1, 2010 + * Last changed in libpng version 1.5.0 - April 17, 2010 * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer diff --git a/pngerror.c b/pngerror.c index cf444b4b03502820c0b1bb8a2a0784c9c7551fa1..8e0569e12e481d05da25bb35f348be2c550148b5 100644 --- a/pngerror.c +++ b/pngerror.c @@ -1,7 +1,7 @@ /* pngerror.c - stub functions for i/o and memory allocation * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) diff --git a/pngget.c b/pngget.c index c36762764408e5b7c291e794b34509ae2ec82f5d..08839dfcfbbdf502b89307719cdc82161001dc53 100644 --- a/pngget.c +++ b/pngget.c @@ -1,7 +1,7 @@ /* pngget.c - retrieval of values from info struct * - * Last changed in libpng 1.4.1 [April 1, 2010] + * Last changed in libpng 1.4.1 [April 17, 2010] * Copyright (c) 1998-2010 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.) diff --git a/pnginfo.h b/pnginfo.h index ff07153c89471919683c6bfe41200778b5c1d19e..c2b31a593d205487ac107556a97065b5acb4f209 100644 --- a/pnginfo.h +++ b/pnginfo.h @@ -5,7 +5,7 @@ * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * - * Last changed in libpng version 1.5.0 - April 1, 2010 + * Last changed in libpng version 1.5.0 - April 17, 2010 * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer diff --git a/pngmem.c b/pngmem.c index b1c0d93e31aa3b27f1099b753e4abb10cd95fbb7..c61fd8b75a736c8d3478db3e3d1b8aaba9515631 100644 --- a/pngmem.c +++ b/pngmem.c @@ -1,7 +1,7 @@ /* pngmem.c - stub functions for memory allocation * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) diff --git a/pngpread.c b/pngpread.c index fb78446df314e2d381877cded2820653e8c7278b..6a03c9ce7b7bfc1290f8cf1d4aaba2c95a2e4dfc 100644 --- a/pngpread.c +++ b/pngpread.c @@ -1,7 +1,7 @@ /* pngpread.c - read a png file in push mode * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) diff --git a/pngpriv.h b/pngpriv.h index 921467b1022ac19c90d41c07182ca071a7f53c7b..ccd6aba810b6cca5b689da9727d7aa6ecfbc6492 100644 --- a/pngpriv.h +++ b/pngpriv.h @@ -1,7 +1,7 @@ /* pngpriv.h - private declarations for use inside libpng * - * libpng version 1.5.0beta17 - April 1, 2010 + * libpng version 1.5.0beta17 - April 17, 2010 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2010 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -117,7 +117,7 @@ #define PNG_SHIFT 0x0008 #define PNG_SWAP_BYTES 0x0010 #define PNG_INVERT_MONO 0x0020 -#define PNG_DITHER 0x0040 +#define PNG_QUANTIZE 0x0040 #define PNG_BACKGROUND 0x0080 #define PNG_BACKGROUND_EXPAND 0x0100 /* 0x0200 unused */ @@ -601,9 +601,9 @@ PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info, png_bytep row)); PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, png_bytep row)); #endif -#ifdef PNG_READ_DITHER_SUPPORTED -PNG_EXTERN void png_do_dither PNGARG((png_row_infop row_info, - png_bytep row, png_bytep palette_lookup, png_bytep dither_lookup)); +#ifdef PNG_READ_QUANTIZE_SUPPORTED +PNG_EXTERN void png_do_quantize PNGARG((png_row_infop row_info, + png_bytep row, png_bytep palette_lookup, png_bytep quantize_lookup)); # ifdef PNG_CORRECT_PALETTE_SUPPORTED PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr, diff --git a/pngread.c b/pngread.c index bb0fc3a8f344d59cf16b0e394fd433614086038b..f6b956e75272edcb2804b4efcdf873800efaebc9 100644 --- a/pngread.c +++ b/pngread.c @@ -1,7 +1,7 @@ /* pngread.c - read a PNG file * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) @@ -1076,9 +1076,9 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_free(png_ptr, png_ptr->big_row_buf); png_free(png_ptr, png_ptr->prev_row); png_free(png_ptr, png_ptr->chunkdata); -#ifdef PNG_READ_DITHER_SUPPORTED +#ifdef PNG_READ_QUANTIZE_SUPPORTED png_free(png_ptr, png_ptr->palette_lookup); - png_free(png_ptr, png_ptr->dither_index); + png_free(png_ptr, png_ptr->quantize_index); #endif #ifdef PNG_READ_GAMMA_SUPPORTED png_free(png_ptr, png_ptr->gamma_table); @@ -1253,7 +1253,7 @@ png_read_png(png_structp png_ptr, png_infop info_ptr, png_set_expand(png_ptr); #endif - /* We don't handle background color or gamma transformation or dithering. + /* We don't handle background color or gamma transformation or quantizing. */ #ifdef PNG_READ_INVERT_SUPPORTED diff --git a/pngrio.c b/pngrio.c index 555dcfeeb1e2fdde37f7c68035df6cdfcfd0e70f..1c793fcf778aefbc4c287c423cba52624d5026d7 100644 --- a/pngrio.c +++ b/pngrio.c @@ -1,7 +1,7 @@ /* pngrio.c - functions for data input * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) diff --git a/pngrtran.c b/pngrtran.c index 813394797277841c0817ac6ce88cee9628787e03..dd0cf3a8f214a3ac9090909b5ac77272f49661e1 100644 --- a/pngrtran.c +++ b/pngrtran.c @@ -1,7 +1,7 @@ /* pngrtran.c - transforms the data in a row for PNG readers * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) @@ -140,13 +140,13 @@ png_set_strip_alpha(png_structp png_ptr) } #endif -#ifdef PNG_READ_DITHER_SUPPORTED +#ifdef PNG_READ_QUANTIZE_SUPPORTED /* Dither file to 8 bit. Supply a palette, the current number * of elements in the palette, the maximum number of elements * allowed, and a histogram if possible. If the current number * of colors is greater then the maximum number, the palette will be - * modified to fit in the maximum number. "full_dither" indicates - * whether we need a dithering cube set up for RGB images, or if we + * modified to fit in the maximum number. "full_quantize" indicates + * whether we need a quantizing cube set up for RGB images, or if we * simply are reducing the number of colors in a paletted image. */ @@ -160,24 +160,24 @@ typedef png_dsort FAR * png_dsortp; typedef png_dsort FAR * FAR * png_dsortpp; void PNGAPI -png_set_dither(png_structp png_ptr, png_colorp palette, +png_set_quantize(png_structp png_ptr, png_colorp palette, int num_palette, int maximum_colors, png_uint_16p histogram, - int full_dither) + int full_quantize) { - png_debug(1, "in png_set_dither"); + png_debug(1, "in png_set_quantize"); if (png_ptr == NULL) return; - png_ptr->transformations |= PNG_DITHER; + png_ptr->transformations |= PNG_QUANTIZE; - if (!full_dither) + if (!full_quantize) { int i; - png_ptr->dither_index = (png_bytep)png_malloc(png_ptr, + png_ptr->quantize_index = (png_bytep)png_malloc(png_ptr, (png_uint_32)(num_palette * png_sizeof(png_byte))); for (i = 0; i < num_palette; i++) - png_ptr->dither_index[i] = (png_byte)i; + png_ptr->quantize_index[i] = (png_byte)i; } if (num_palette > maximum_colors) @@ -191,12 +191,12 @@ png_set_dither(png_structp png_ptr, png_colorp palette, int i; /* Initialize an array to sort colors */ - png_ptr->dither_sort = (png_bytep)png_malloc(png_ptr, + png_ptr->quantize_sort = (png_bytep)png_malloc(png_ptr, (png_uint_32)(num_palette * png_sizeof(png_byte))); - /* Initialize the dither_sort array */ + /* Initialize the quantize_sort array */ for (i = 0; i < num_palette; i++) - png_ptr->dither_sort[i] = (png_byte)i; + png_ptr->quantize_sort[i] = (png_byte)i; /* Find the least used palette entries by starting a * bubble sort, and running it until we have sorted @@ -213,14 +213,14 @@ png_set_dither(png_structp png_ptr, png_colorp palette, done = 1; for (j = 0; j < i; j++) { - if (histogram[png_ptr->dither_sort[j]] - < histogram[png_ptr->dither_sort[j + 1]]) + if (histogram[png_ptr->quantize_sort[j]] + < histogram[png_ptr->quantize_sort[j + 1]]) { png_byte t; - t = png_ptr->dither_sort[j]; - png_ptr->dither_sort[j] = png_ptr->dither_sort[j + 1]; - png_ptr->dither_sort[j + 1] = t; + t = png_ptr->quantize_sort[j]; + png_ptr->quantize_sort[j] = png_ptr->quantize_sort[j + 1]; + png_ptr->quantize_sort[j + 1] = t; done = 0; } } @@ -229,7 +229,7 @@ png_set_dither(png_structp png_ptr, png_colorp palette, } /* Swap the palette around, and set up a table, if necessary */ - if (full_dither) + if (full_quantize) { int j = num_palette; @@ -238,11 +238,11 @@ png_set_dither(png_structp png_ptr, png_colorp palette, */ for (i = 0; i < maximum_colors; i++) { - if ((int)png_ptr->dither_sort[i] >= maximum_colors) + if ((int)png_ptr->quantize_sort[i] >= maximum_colors) { do j--; - while ((int)png_ptr->dither_sort[j] >= maximum_colors); + while ((int)png_ptr->quantize_sort[j] >= maximum_colors); palette[i] = palette[j]; } } @@ -257,32 +257,32 @@ png_set_dither(png_structp png_ptr, png_colorp palette, for (i = 0; i < maximum_colors; i++) { /* Only move the colors we need to */ - if ((int)png_ptr->dither_sort[i] >= maximum_colors) + if ((int)png_ptr->quantize_sort[i] >= maximum_colors) { png_color tmp_color; do j--; - while ((int)png_ptr->dither_sort[j] >= maximum_colors); + while ((int)png_ptr->quantize_sort[j] >= maximum_colors); tmp_color = palette[j]; palette[j] = palette[i]; palette[i] = tmp_color; /* Indicate where the color went */ - png_ptr->dither_index[j] = (png_byte)i; - png_ptr->dither_index[i] = (png_byte)j; + png_ptr->quantize_index[j] = (png_byte)i; + png_ptr->quantize_index[i] = (png_byte)j; } } /* Find closest color for those colors we are not using */ for (i = 0; i < num_palette; i++) { - if ((int)png_ptr->dither_index[i] >= maximum_colors) + if ((int)png_ptr->quantize_index[i] >= maximum_colors) { int min_d, k, min_k, d_index; /* Find the closest color to one we threw out */ - d_index = png_ptr->dither_index[i]; + d_index = png_ptr->quantize_index[i]; min_d = PNG_COLOR_DIST(palette[d_index], palette[0]); for (k = 1, min_k = 0; k < maximum_colors; k++) { @@ -297,12 +297,12 @@ png_set_dither(png_structp png_ptr, png_colorp palette, } } /* Point to closest color */ - png_ptr->dither_index[i] = (png_byte)min_k; + png_ptr->quantize_index[i] = (png_byte)min_k; } } } - png_free(png_ptr, png_ptr->dither_sort); - png_ptr->dither_sort = NULL; + png_free(png_ptr, png_ptr->quantize_sort); + png_ptr->quantize_sort = NULL; } else { @@ -409,19 +409,19 @@ png_set_dither(png_structp png_ptr, png_colorp palette, num_new_palette--; palette[png_ptr->index_to_palette[j]] = palette[num_new_palette]; - if (!full_dither) + if (!full_quantize) { int k; for (k = 0; k < num_palette; k++) { - if (png_ptr->dither_index[k] == + if (png_ptr->quantize_index[k] == png_ptr->index_to_palette[j]) - png_ptr->dither_index[k] = + png_ptr->quantize_index[k] = png_ptr->index_to_palette[next_j]; - if ((int)png_ptr->dither_index[k] == + if ((int)png_ptr->quantize_index[k] == num_new_palette) - png_ptr->dither_index[k] = + png_ptr->quantize_index[k] = png_ptr->index_to_palette[j]; } } @@ -474,15 +474,15 @@ png_set_dither(png_structp png_ptr, png_colorp palette, } png_ptr->num_palette = (png_uint_16)num_palette; - if (full_dither) + if (full_quantize) { int i; png_bytep distance; - int total_bits = PNG_DITHER_RED_BITS + PNG_DITHER_GREEN_BITS + - PNG_DITHER_BLUE_BITS; - int num_red = (1 << PNG_DITHER_RED_BITS); - int num_green = (1 << PNG_DITHER_GREEN_BITS); - int num_blue = (1 << PNG_DITHER_BLUE_BITS); + int total_bits = PNG_QUANTIZE_RED_BITS + PNG_QUANTIZE_GREEN_BITS + + PNG_QUANTIZE_BLUE_BITS; + int num_red = (1 << PNG_QUANTIZE_RED_BITS); + int num_green = (1 << PNG_QUANTIZE_GREEN_BITS); + int num_blue = (1 << PNG_QUANTIZE_BLUE_BITS); png_size_t num_entries = ((png_size_t)1 << total_bits); png_ptr->palette_lookup = (png_bytep )png_calloc(png_ptr, @@ -495,16 +495,16 @@ png_set_dither(png_structp png_ptr, png_colorp palette, for (i = 0; i < num_palette; i++) { int ir, ig, ib; - int r = (palette[i].red >> (8 - PNG_DITHER_RED_BITS)); - int g = (palette[i].green >> (8 - PNG_DITHER_GREEN_BITS)); - int b = (palette[i].blue >> (8 - PNG_DITHER_BLUE_BITS)); + int r = (palette[i].red >> (8 - PNG_QUANTIZE_RED_BITS)); + int g = (palette[i].green >> (8 - PNG_QUANTIZE_GREEN_BITS)); + int b = (palette[i].blue >> (8 - PNG_QUANTIZE_BLUE_BITS)); for (ir = 0; ir < num_red; ir++) { /* int dr = abs(ir - r); */ int dr = ((ir > r) ? ir - r : r - ir); - int index_r = (ir << (PNG_DITHER_BLUE_BITS + - PNG_DITHER_GREEN_BITS)); + int index_r = (ir << (PNG_QUANTIZE_BLUE_BITS + + PNG_QUANTIZE_GREEN_BITS)); for (ig = 0; ig < num_green; ig++) { @@ -512,7 +512,7 @@ png_set_dither(png_structp png_ptr, png_colorp palette, int dg = ((ig > g) ? ig - g : g - ig); int dt = dr + dg; int dm = ((dr > dg) ? dr : dg); - int index_g = index_r | (ig << PNG_DITHER_BLUE_BITS); + int index_g = index_r | (ig << PNG_QUANTIZE_BLUE_BITS); for (ib = 0; ib < num_blue; ib++) { @@ -535,7 +535,7 @@ png_set_dither(png_structp png_ptr, png_colorp palette, png_free(png_ptr, distance); } } -#endif /* PNG_READ_DITHER_SUPPORTED */ +#endif /* PNG_READ_QUANTIZE_SUPPORTED */ #if defined(PNG_READ_GAMMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED) /* Transform the image from the file_gamma to the screen_gamma. We @@ -1233,8 +1233,8 @@ png_read_transform_info(png_structp png_ptr, png_infop info_ptr) info_ptr->color_type &= ~PNG_COLOR_MASK_COLOR; #endif -#ifdef PNG_READ_DITHER_SUPPORTED - if (png_ptr->transformations & PNG_DITHER) +#ifdef PNG_READ_QUANTIZE_SUPPORTED + if (png_ptr->transformations & PNG_QUANTIZE) { if (((info_ptr->color_type == PNG_COLOR_TYPE_RGB) || (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)) && @@ -1455,15 +1455,15 @@ png_do_read_transformations(png_structp png_ptr) png_do_chop(&(png_ptr->row_info), png_ptr->row_buf + 1); #endif -#ifdef PNG_READ_DITHER_SUPPORTED - if (png_ptr->transformations & PNG_DITHER) +#ifdef PNG_READ_QUANTIZE_SUPPORTED + if (png_ptr->transformations & PNG_QUANTIZE) { - png_do_dither((png_row_infop)&(png_ptr->row_info), png_ptr->row_buf + 1, - png_ptr->palette_lookup, png_ptr->dither_index); + png_do_quantize((png_row_infop)&(png_ptr->row_info), png_ptr->row_buf + 1, + png_ptr->palette_lookup, png_ptr->quantize_index); if (png_ptr->row_info.rowbytes == (png_uint_32)0) - png_error(png_ptr, "png_do_dither returned rowbytes=0"); + png_error(png_ptr, "png_do_quantize returned rowbytes=0"); } -#endif +#endif /* PNG_READ_QUANTIZE_SUPPORTED */ #ifdef PNG_READ_INVERT_SUPPORTED if (png_ptr->transformations & PNG_INVERT_MONO) @@ -3808,16 +3808,16 @@ png_do_expand(png_row_infop row_info, png_bytep row, } #endif -#ifdef PNG_READ_DITHER_SUPPORTED +#ifdef PNG_READ_QUANTIZE_SUPPORTED void /* PRIVATE */ -png_do_dither(png_row_infop row_info, png_bytep row, - png_bytep palette_lookup, png_bytep dither_lookup) +png_do_quantize(png_row_infop row_info, png_bytep row, + png_bytep palette_lookup, png_bytep quantize_lookup) { png_bytep sp, dp; png_uint_32 i; png_uint_32 row_width=row_info->width; - png_debug(1, "in png_do_dither"); + png_debug(1, "in png_do_quantize"); { if (row_info->color_type == PNG_COLOR_TYPE_RGB && @@ -3839,14 +3839,14 @@ png_do_dither(png_row_infop row_info, png_bytep row, * (((g >> 3) & 0x1f) << 5) | * ((b >> 3) & 0x1f); */ - p = (((r >> (8 - PNG_DITHER_RED_BITS)) & - ((1 << PNG_DITHER_RED_BITS) - 1)) << - (PNG_DITHER_GREEN_BITS + PNG_DITHER_BLUE_BITS)) | - (((g >> (8 - PNG_DITHER_GREEN_BITS)) & - ((1 << PNG_DITHER_GREEN_BITS) - 1)) << - (PNG_DITHER_BLUE_BITS)) | - ((b >> (8 - PNG_DITHER_BLUE_BITS)) & - ((1 << PNG_DITHER_BLUE_BITS) - 1)); + p = (((r >> (8 - PNG_QUANTIZE_RED_BITS)) & + ((1 << PNG_QUANTIZE_RED_BITS) - 1)) << + (PNG_QUANTIZE_GREEN_BITS + PNG_QUANTIZE_BLUE_BITS)) | + (((g >> (8 - PNG_QUANTIZE_GREEN_BITS)) & + ((1 << PNG_QUANTIZE_GREEN_BITS) - 1)) << + (PNG_QUANTIZE_BLUE_BITS)) | + ((b >> (8 - PNG_QUANTIZE_BLUE_BITS)) & + ((1 << PNG_QUANTIZE_BLUE_BITS) - 1)); *dp++ = palette_lookup[p]; } @@ -3868,14 +3868,14 @@ png_do_dither(png_row_infop row_info, png_bytep row, b = *sp++; sp++; - p = (((r >> (8 - PNG_DITHER_RED_BITS)) & - ((1 << PNG_DITHER_RED_BITS) - 1)) << - (PNG_DITHER_GREEN_BITS + PNG_DITHER_BLUE_BITS)) | - (((g >> (8 - PNG_DITHER_GREEN_BITS)) & - ((1 << PNG_DITHER_GREEN_BITS) - 1)) << - (PNG_DITHER_BLUE_BITS)) | - ((b >> (8 - PNG_DITHER_BLUE_BITS)) & - ((1 << PNG_DITHER_BLUE_BITS) - 1)); + p = (((r >> (8 - PNG_QUANTIZE_RED_BITS)) & + ((1 << PNG_QUANTIZE_RED_BITS) - 1)) << + (PNG_QUANTIZE_GREEN_BITS + PNG_QUANTIZE_BLUE_BITS)) | + (((g >> (8 - PNG_QUANTIZE_GREEN_BITS)) & + ((1 << PNG_QUANTIZE_GREEN_BITS) - 1)) << + (PNG_QUANTIZE_BLUE_BITS)) | + ((b >> (8 - PNG_QUANTIZE_BLUE_BITS)) & + ((1 << PNG_QUANTIZE_BLUE_BITS) - 1)); *dp++ = palette_lookup[p]; } @@ -3885,17 +3885,17 @@ png_do_dither(png_row_infop row_info, png_bytep row, row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width); } else if (row_info->color_type == PNG_COLOR_TYPE_PALETTE && - dither_lookup && row_info->bit_depth == 8) + quantize_lookup && row_info->bit_depth == 8) { sp = row; for (i = 0; i < row_width; i++, sp++) { - *sp = dither_lookup[*sp]; + *sp = quantize_lookup[*sp]; } } } } -#endif +#endif /* PNG_READ_QUANTIZE_SUPPORTED */ #ifdef PNG_FLOATING_POINT_SUPPORTED #ifdef PNG_READ_GAMMA_SUPPORTED diff --git a/pngrutil.c b/pngrutil.c index 72bd01a3576fcca8a7dac42742f75c37d5708273..cc06fb39c183c6e8de312fb656b1104cfb8e0be3 100644 --- a/pngrutil.c +++ b/pngrutil.c @@ -1,7 +1,7 @@ /* pngrutil.c - utilities to read a PNG file * - * Last changed in libpng 1.4.1 [April 1, 2010] + * Last changed in libpng 1.4.1 [April 17, 2010] * Copyright (c) 1998-2010 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.) @@ -904,9 +904,11 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) green_x, green_y, blue_x, blue_y); #else fprintf(stderr, "wx=%ld, wy=%ld, rx=%ld, ry=%ld\n", - int_x_white, int_y_white, int_x_red, int_y_red); + (long)int_x_white, (long)int_y_white, + (long)int_x_red, (long)int_y_red); fprintf(stderr, "gx=%ld, gy=%ld, bx=%ld, by=%ld\n", - int_x_green, int_y_green, int_x_blue, int_y_blue); + (long)int_x_green, (long)int_y_green, + (long)int_x_blue, (long)int_y_blue); #endif #endif /* PNG_CONSOLE_IO_SUPPORTED */ } diff --git a/pngset.c b/pngset.c index cde867b7508182eb010bd89a4ad22a37568d0f98..439d04932872a6b3be8b1658471c21ac84971c6d 100644 --- a/pngset.c +++ b/pngset.c @@ -1,7 +1,7 @@ /* pngset.c - storage of image information into info struct * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) diff --git a/pngstruct.h b/pngstruct.h index 1137d1b66e28d3c0711e12c5c1b48956e817f621..9a704b953534407b6c11efe39169e1cfcef9f99d 100644 --- a/pngstruct.h +++ b/pngstruct.h @@ -5,7 +5,7 @@ * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * - * Last changed in libpng version 1.5.0 - April 1, 2010 + * Last changed in libpng version 1.5.0 - April 17, 2010 * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -187,12 +187,12 @@ struct png_struct_def png_uint_16 offset_table_count_free; #endif -#ifdef PNG_READ_DITHER_SUPPORTED - png_bytep palette_lookup; /* lookup table for dithering */ - png_bytep dither_index; /* index translation for palette files */ +#ifdef PNG_READ_QUANTIZE_SUPPORTED + png_bytep palette_lookup; /* lookup table for quantizing */ + png_bytep quantize_index; /* index translation for palette files */ #endif -#if defined(PNG_READ_DITHER_SUPPORTED) || defined(PNG_hIST_SUPPORTED) +#if defined(PNG_READ_QUANTIZE_SUPPORTED) || defined(PNG_hIST_SUPPORTED) png_uint_16p hist; /* histogram */ #endif @@ -263,9 +263,9 @@ struct png_struct_def /* New member added in libpng-1.0.13 and 1.2.0 */ png_bytep big_row_buf; /* buffer to save current (unfiltered) row */ -#ifdef PNG_READ_DITHER_SUPPORTED +#ifdef PNG_READ_QUANTIZE_SUPPORTED /* The following three members were added at version 1.0.14 and 1.2.4 */ - png_bytep dither_sort; /* working sort array */ + png_bytep quantize_sort; /* working sort array */ png_bytep index_to_palette; /* where the original index currently is in the palette */ png_bytep palette_to_index; /* which original index points to this diff --git a/pngtest.c b/pngtest.c index b881088dc36ebf9e24b56aa972cfaf7e63f432c9..9a3acfef940ebaa8e3121963096d73121cb9fb9a 100644 --- a/pngtest.c +++ b/pngtest.c @@ -1,7 +1,7 @@ /* pngtest.c - a simple test program to test libpng * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) diff --git a/pngtrans.c b/pngtrans.c index 2c2fef0f33493d1a42b250440b8087b87b442b8d..4c88cc4b4f02a0ae10d0b9ec7093e02e98b748b9 100644 --- a/pngtrans.c +++ b/pngtrans.c @@ -1,7 +1,7 @@ /* pngtrans.c - transforms the data in a row (used by both readers and writers) * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) diff --git a/pngwio.c b/pngwio.c index b7735f3c3e0ebffcf3ef99dd7a38a6b271b44c1b..65d66fd4dfee0c3288017f4bda50177a750c61c6 100644 --- a/pngwio.c +++ b/pngwio.c @@ -1,7 +1,7 @@ /* pngwio.c - functions for data output * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) diff --git a/pngwrite.c b/pngwrite.c index 5bffe9cf48487a5483880af9d34504b3493bb455..f6e17f29845fe9528fd8fbc1a5a21121962fa975 100644 --- a/pngwrite.c +++ b/pngwrite.c @@ -1,7 +1,7 @@ /* pngwrite.c - general routines to write a PNG file * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) diff --git a/pngwtran.c b/pngwtran.c index a4a791d673eaf5dcf2d14f3625341a2be41e730f..9acd33104d7c9c0cf006d2cc0e5471f255abd006 100644 --- a/pngwtran.c +++ b/pngwtran.c @@ -1,7 +1,7 @@ /* pngwtran.c - transforms the data in a row for PNG writers * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) diff --git a/pngwutil.c b/pngwutil.c index 1d6c285336b96b983a37332a3fc44a5738b847b2..257ee485f79e5dcad5e88a901c33f931d1decd58 100644 --- a/pngwutil.c +++ b/pngwutil.c @@ -1,7 +1,7 @@ /* pngwutil.c - utilities to write a PNG file * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 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.) diff --git a/scripts/README.txt b/scripts/README.txt index afb4b97cb0c48321a7f5da47aca2228d9f3614e4..df9b8836ea2629a10128db1988c0f925097e0ab3 100644 --- a/scripts/README.txt +++ b/scripts/README.txt @@ -1,5 +1,5 @@ -Makefiles for libpng version 1.5.0beta17 - April 1, 2010 +Makefiles for libpng version 1.5.0beta17 - April 17, 2010 makefile.linux => Linux/ELF makefile (gcc, creates libpng15.so.15.1.5.0beta17) diff --git a/scripts/checksym.dfn b/scripts/checksym.dfn index fe2b63da5a3c5ab01df2882a3a1bb1012abc4195..39f7e21c6b668e807d44a1c469744dfbaf943992 100644 --- a/scripts/checksym.dfn +++ b/scripts/checksym.dfn @@ -1,7 +1,7 @@ /* pngwin.dfn - find all exported symbols * - * Last changed in libpng 1.5.0 [April 1, 2010] + * Last changed in libpng 1.5.0 [April 17, 2010] * Copyright (c) 1998-2010 Glenn Randers-Pehrson * * This code is released under the libpng license. diff --git a/scripts/symbols.def b/scripts/symbols.def index 75a44806dfe757f3ebcf9813ea7277e34f0f3af5..f650f72b4f30b9a908e27c878b2b6dd65b04e115 100644 --- a/scripts/symbols.def +++ b/scripts/symbols.def @@ -54,7 +54,7 @@ EXPORTS png_set_invert_mono @46 png_set_background @47 png_set_strip_16 @48 - png_set_dither @49 +; png_set_dither @49 png_set_gamma @50 png_set_flush @51 png_write_flush @52 @@ -213,3 +213,4 @@ EXPORTS png_save_uint_32 @205 png_save_int_32 @206 png_save_uint_16 @207 + png_set_quantize @208