blob: e90ee00dbb7dbb26d918c2f2fdf6e70a5ac96f65 [file] [log] [blame]
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -06001CHANGES - changes for libpng
Guy Schalnat0d580581995-07-20 02:43:20 -05002
3version 0.2
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -05004 added reader into png.h
5 fixed small problems in stub file
Guy Schalnat0d580581995-07-20 02:43:20 -05006version 0.3
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -05007 added pull reader
8 split up pngwrite.c to several files
9 added pnglib.txt
10 added example.c
11 cleaned up writer, adding a few new tranformations
12 fixed some bugs in writer
13 interfaced with zlib 0.5
14 added K&R support
15 added check for 64 KB blocks for 16 bit machines
Guy Schalnat0d580581995-07-20 02:43:20 -050016version 0.4
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050017 cleaned up code and commented code
18 simplified time handling into png_time
19 created png_color_16 and png_color_8 to handle color needs
20 cleaned up color type defines
21 fixed various bugs
22 made various names more consistant
23 interfaced with zlib 0.71
24 cleaned up zTXt reader and writer (using zlib's Reset functions)
25 split transformations into pngrtran.c and pngwtran.c
Guy Schalnat0d580581995-07-20 02:43:20 -050026version 0.5
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050027 interfaced with zlib 0.8
28 fixed many reading and writing bugs
29 saved using 3 spaces instead of tabs
Guy Schalnat0d580581995-07-20 02:43:20 -050030version 0.6
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050031 added png_large_malloc() and png_large_free()
32 added png_size_t
33 cleaned up some compiler warnings
34 added png_start_read_image()
Guy Schalnat0d580581995-07-20 02:43:20 -050035version 0.7
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050036 cleaned up lots of bugs
37 finished dithering and other stuff
38 added test program
39 changed name from pnglib to libpng
Andreas Dilger47a0c421997-05-16 02:46:07 -050040version 0.71 [June, 1995]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050041 changed pngtest.png for zlib 0.93
42 fixed error in libpng.txt and example.c
Guy Schalnat51f0eb41995-09-26 05:22:39 -050043version 0.8
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050044 cleaned up some bugs
45 added png_set_filler()
46 split up pngstub.c into pngmem.c, pngio.c, and pngerror.c
47 added #define's to remove unwanted code
48 moved png_info_init() to png.c
49 added old_size into png_realloc()
50 added functions to manually set filtering and compression info
51 changed compression parameters based on image type
52 optimized filter selection code
53 added version info
54 changed external functions passing floats to doubles (k&r problems?)
55 put all the configurable stuff in pngconf.h
56 enabled png_set_shift to work with paletted images on read
57 added png_read_update_info() - updates info structure with
58 transformations
Andreas Dilger47a0c421997-05-16 02:46:07 -050059version 0.81 [August, 1995]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050060 incorporated Tim Wegner's medium model code (thanks, Tim)
Andreas Dilger47a0c421997-05-16 02:46:07 -050061version 0.82 [September, 1995]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050062 [unspecified changes]
Andreas Dilger47a0c421997-05-16 02:46:07 -050063version 0.85 [December, 1995]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050064 added more medium model code (almost everything's a far)
65 added i/o, error, and memory callback functions
66 fixed some bugs (16 bit, 4 bit interlaced, etc.)
67 added first run progressive reader (barely tested)
Andreas Dilger47a0c421997-05-16 02:46:07 -050068version 0.86 [January, 1996]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050069 fixed bugs
70 improved documentation
Andreas Dilger47a0c421997-05-16 02:46:07 -050071version 0.87 [January, 1996]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050072 fixed medium model bugs
73 fixed other bugs introduced in 0.85 and 0.86
74 added some minor documentation
Andreas Dilger47a0c421997-05-16 02:46:07 -050075version 0.88 [January, 1996]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050076 fixed progressive bugs
77 replaced tabs with spaces
78 cleaned up documentation
79 added callbacks for read/write and warning/error functions
Andreas Dilger47a0c421997-05-16 02:46:07 -050080version 0.89 [July, 1996]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050081 added new initialization API to make libpng work better with shared libs
82 we now have png_create_read_struct(), png_create_write_struct(),
83 png_create_info_struct(), png_destroy_read_struct(), and
84 png_destroy_write_struct() instead of the separate calls to
85 malloc and png_read_init(), png_info_init(), and png_write_init()
86 changed warning/error callback functions to fix bug - this means you
87 should use the new initialization API if you were using the old
88 png_set_message_fn() calls, and that the old API no longer exists
89 so that people are aware that they need to change their code
90 changed filter selection API to allow selection of multiple filters
91 since it didn't work in previous versions of libpng anyways
Glenn Randers-Pehrson5c6aeb21998-12-29 11:47:59 -060092 optimized filter selection code
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -050093 fixed png_set_background() to allow using an arbitrary RGB color for
94 paletted images
95 fixed gamma and background correction for paletted images, so
96 png_correct_palette is not needed unless you are correcting an
97 external palette (you will need to #define PNG_CORRECT_PALETTE_SUPPORTED
98 in pngconf.h) - if nobody uses this, it may disappear in the future.
99 fixed bug with Borland 64K memory allocation (Alexander Lehmann)
100 fixed bug in interlace handling (Smarasderagd, I think)
101 added more error checking for writing and image to reduce invalid files
102 separated read and write functions so that they won't both be linked
103 into a binary when only reading or writing functionality is used
104 new pngtest image also has interlacing and zTXt
105 updated documentation to reflect new API
Andreas Dilger47a0c421997-05-16 02:46:07 -0500106version 0.90 [January, 1997]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500107 made CRC errors/warnings on critical and ancillary chunks configurable
108 libpng will use the zlib CRC routines by (compile-time) default
109 changed DOS small/medium model memory support - needs zlib 1.04 (Tim Wegner)
110 added external C++ wrapper statements to png.h (Gilles Dauphin)
111 allow PNG file to be read when some or all of file signature has already
112 been read from the beginning of the stream. ****This affects the size
113 of info_struct and invalidates all programs that use a shared libpng****
114 fixed png_filler() declarations
115 fixed? background color conversions
116 fixed order of error function pointers to match documentation
117 current chunk name is now available in png_struct to reduce the number
118 of nearly identical error messages (will simplify multi-lingual
119 support when available)
120 try to get ready for unknown-chunk callback functions:
121 - previously read critical chunks are flagged, so the chunk handling
122 routines can determine if the chunk is in the right place
123 - all chunk handling routines have the same prototypes, so we will
124 be able to handle all chunks via a callback mechanism
125 try to fix Linux "setjmp" buffer size problems
Andreas Dilger47a0c421997-05-16 02:46:07 -0500126version 0.95 [March, 1997]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500127 fixed bug in pngwutil.c allocating "up_row" twice and "avg_row" never
128 fixed bug in PNG file signature compares when start != 0
129 changed parameter type of png_set_filler(...filler...) from png_byte
130 to png_uint_32
131 added test for MACOS to ensure that both math.h and fp.h are not #included
132 added macros for libpng to be compiled as a Windows DLL (Andreas Kupries)
133 added "packswap" transformation, which changes the endianness of
134 packed-pixel bytes (Kevin Bracey)
135 added "strip_alpha" transformation, which removes the alpha channel of
136 input images without using it (not neccesarily a good idea)
137 added "swap_alpha" transformation, which puts the alpha channel in front
138 of the color bytes instead of after
139 removed all implicit variable tests which assume NULL == 0 (I think)
140 changed several variables to "png_size_t" to show 16/32-bit limitations
141 added new pCAL chunk read/write support
142 added experimental filter selection weighting (Greg Roelofs)
143 removed old png_set_rgbx() and png_set_xrgb() functions that have been
144 obsolete for about 2 years now (use png_set_filler() instead)
145 added macros to read 16- and 32-bit ints directly from buffer, to be
146 used only on those systems that support it (namely PowerPC and 680x0)
147 With some testing, this may become the default for MACOS/PPC systems.
148 only calculate CRC on data if we are going to use it
149 added macros for zTXt compression type PNG_zTXt_COMPRESSION_???
150 added macros for simple libpng debugging output selectable at compile time
151 removed PNG_READ_END_MODE in progressive reader (Smarasderagd)
152 more description of info_struct in libpng.txt and png.h
153 more instructions in example.c
154 more chunk types tested in pngtest.c
155 renamed pngrcb.c to pngset.c, and all png_read_<chunk> functions to be
156 png_set_<chunk>. We now have corresponding png_get_<chunk>
157 functions in pngget.c to get infomation in info_ptr. This isolates
158 the application from the internal organization of png_info_struct
159 (good for shared library implementations).
Andreas Dilger47a0c421997-05-16 02:46:07 -0500160version 0.96 [May, 1997]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500161 fixed serious bug with < 8bpp images introduced in 0.95
162 fixed 256-color transparency bug (Greg Roelofs)
163 fixed up documentation (Greg Roelofs, Laszlo Nyul)
164 fixed "error" in pngconf.h for Linux setjmp() behaviour
165 fixed DOS medium model support (Tim Wegner)
166 fixed png_check_keyword() for case with error in static string text
167 added read of CRC after IEND chunk for embedded PNGs (Laszlo Nyul)
168 added typecasts to quiet compiler errors
169 added more debugging info
Glenn Randers-Pehrson2687fcc1998-01-07 20:54:20 -0600170version 0.97 [January, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500171 removed PNG_USE_OWN_CRC capability
172 relocated png_set_crc_action from pngrutil.c to pngrtran.c
173 fixed typecasts of "new_key", etc. (Andreas Dilger)
174 added RFC 1152 [sic] date support
175 fixed bug in gamma handling of 4-bit grayscale
176 added 2-bit grayscale gamma handling (Glenn R-P)
177 added more typecasts. 65536L becomes (png_uint_32)65536L, etc. (Glenn R-P)
178 minor corrections in libpng.txt
179 added simple sRGB support (Glenn R-P)
180 easier conditional compiling, e.g. define PNG_READ/WRITE_NOT_FULLY_SUPPORTED;
181 all configurable options can be selected from command-line instead
182 of having to edit pngconf.h (Glenn R-P)
183 fixed memory leak in pngwrite.c (free info_ptr->text) (Glenn R-P)
184 added more conditions for png_do_background, to avoid changing
185 black pixels to background when a background is supplied and
186 no pixels are transparent
187 repaired PNG_NO_STDIO behaviour
188 tested NODIV support and made it default behaviour (Greg Roelofs)
189 added "-m" option and PNGTEST_DEBUG_MEMORY to pngtest (John Bowler)
190 regularized version numbering scheme and bumped shared-library major
191 version number to 2 to avoid problems with libpng 0.89 apps (Greg Roelofs)
Glenn Randers-Pehrsonc4a2ae61998-01-16 22:06:18 -0600192version 0.98 [January, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500193 cleaned up some typos in libpng.txt and in code documentation
194 fixed memory leaks in pCAL chunk processing (Glenn R-P and John Bowler)
195 cosmetic change "display_gamma" to "screen_gamma" in pngrtran.c
196 changed recommendation about file_gamma for PC images to .51 from .45,
197 in example.c and libpng.txt, added comments to distinguish between
198 screen_gamma, viewing_gamma, and display_gamma.
199 changed all references to RFC1152 to read RFC1123 and changed the
200 PNG_TIME_RFC1152_SUPPORTED macro to PNG_TIME_RFC1123_SUPPORTED
201 added png_invert_alpha capability (Glenn R-P -- suggestion by Jon Vincent)
202 changed srgb_intent from png_byte to int to avoid compiler bugs
Glenn Randers-Pehrsonb2120021998-01-31 20:07:59 -0600203version 0.99 [January 30, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500204 free info_ptr->text instead of end_info_ptr->text in pngread.c (John Bowler)
205 fixed a longstanding "packswap" bug in pngtrans.c
206 fixed some inconsistencies in pngconf.h that prevented compiling with
207 PNG_READ_GAMMA_SUPPORTED and PNG_READ_hIST_SUPPORTED undefined
208 fixed some typos and made other minor rearrangement of libpng.txt (Andreas)
209 changed recommendation about file_gamma for PC images to .50 from .51 in
210 example.c and libpng.txt, and changed file_gamma for sRGB images to .45
211 added a number of functions to access information from the png structure
212 png_get_image_height(), etc. (Glenn R-P, suggestion by Brad Pettit)
213 added TARGET_MACOS similar to zlib-1.0.8
214 define PNG_ALWAYS_EXTERN when __MWERKS__ && WIN32 are defined
215 added type casting to all png_malloc() function calls
Glenn Randers-Pehrsonb2120021998-01-31 20:07:59 -0600216version 0.99a [January 31, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500217 Added type casts and parentheses to all returns that return a value.(Tim W.)
Glenn Randers-Pehrson0f881d61998-02-07 10:20:57 -0600218version 0.99b [February 4, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500219 Added type cast png_uint_32 on malloc function calls where needed.
220 Changed type of num_hist from png_uint_32 to int (same as num_palette).
221 Added checks for rowbytes overflow, in case png_size_t is less than 32 bits.
222 Renamed makefile.elf to makefile.lnx.
Glenn Randers-Pehrson0f881d61998-02-07 10:20:57 -0600223version 0.99c [February 7, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500224 More type casting. Removed erroneous overflow test in pngmem.c.
225 Added png_buffered_memcpy() and png_buffered_memset(), apply them to rowbytes.
226 Added UNIX manual pages libpng.3 (incorporating libpng.txt) and png.5.
Glenn Randers-Pehrsoncbe52d81998-02-28 07:00:24 -0600227version 0.99d [February 11, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500228 Renamed "far_to_near()" "png_far_to_near()"
229 Revised libpng.3
230 Version 99c "buffered" operations didn't work as intended. Replaced them
231 with png_memcpy_check() and png_memset_check().
232 Added many "if (png_ptr == NULL) return" to quell compiler warnings about
233 unused png_ptr, mostly in pngget.c and pngset.c.
234 Check for overlength tRNS chunk present when indexed-color PLTE is read.
235 Cleaned up spelling errors in libpng.3/libpng.txt
236 Corrected a problem with png_get_tRNS() which returned undefined trans array
Glenn Randers-Pehrsoncbe52d81998-02-28 07:00:24 -0600237version 0.99e [February 28, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500238 Corrected png_get_tRNS() again.
239 Add parentheses for easier reading of pngget.c, fixed "||" should be "&&".
240 Touched up example.c to make more of it compileable, although the entire
241 file still can't be compiled (Willem van Schaik)
242 Fixed a bug in png_do_shift() (Bryan Tsai)
243 Added a space in png.h prototype for png_write_chunk_start()
244 Replaced pngtest.png with one created with zlib 1.1.1
245 Changed pngtest to report PASS even when file size is different (Jean-loup G.)
246 Corrected some logic errors in png_do_invert_alpha() (Chris Patterson)
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -0600247version 0.99f [March 5, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500248 Corrected a bug in pngpread() introduced in version 99c (Kevin Bracey)
249 Moved makefiles into a "scripts" directory, and added INSTALL instruction file
250 Added makefile.os2 and pngos2.def (A. Zabolotny) and makefile.s2x (W. Sebok)
251 Added pointers to "note on libpng versions" in makefile.lnx and README
252 Added row callback feature when reading and writing nonprogressive rows
253 and added a test of this feature in pngtest.c
254 Added user transform callbacks, with test of the feature in pngtest.c
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -0600255version 0.99g [March 6, 1998, morning]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500256 Minor changes to pngtest.c to suppress compiler warnings.
257 Removed "beta" language from documentation.
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -0600258version 0.99h [March 6, 1998, evening]
Glenn Randers-Pehrson5c6aeb21998-12-29 11:47:59 -0600259 Minor changes to previous minor changes to pngtest.c
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500260 Changed PNG_READ_NOT_FULLY_SUPPORTED to PNG_READ_TRANSFORMS_NOT_SUPPORTED
261 and added PNG_PROGRESSIVE_READ_NOT_SUPPORTED macro
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -0600262version 1.00 [March 7, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500263 Changed several typedefs in pngrutil.c
264 Added makefile.wat (Pawel Mrochen), updated makefile.tc3 (Willem van Schaik)
265 replaced "while(1)" with "for(;;)"
266 added PNGARG() to prototypes in pngtest.c and removed some prototypes
267 updated some of the makefiles (Tom Lane)
268 changed some typedefs (s_start, etc.) in pngrutil.c
269 fixed dimensions of "short_months" array in pngwrite.c
270 Replaced ansi2knr.c with the one from jpeg-v6
Glenn Randers-Pehrson0f7202f1998-03-08 18:52:15 -0600271version 1.0.0 [March 8, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500272 Changed name from 1.00 to 1.0.0 (Adam Costello)
273 Added smakefile.ppc (with SCOPTIONS.ppc) for Amiga PPC (Andreas Kleinert)
Glenn Randers-Pehrson8f8fb6a1998-03-09 23:02:06 -0600274version 1.0.0a [March 9, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500275 Fixed three bugs in pngrtran.c to make gamma+background handling consistent
276 (Greg Roelofs)
277 Changed format of the PNG_LIBPNG_VER integer to xyyzz instead of xyz
278 for major, minor, and bugfix releases. This is 10001. (Adam Costello,
279 Tom Lane)
280 Make months range from 1-12 in png_convert_to_rfc1123
Glenn Randers-Pehrsond12aa501998-03-13 07:39:39 -0600281version 1.0.0b [March 13, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500282 Quieted compiler complaints about two empty "for" loops in pngrutil.c
283 Minor changes to makefile.s2x
284 Removed #ifdef/#endif around a png_free() in pngread.c
Glenn Randers-Pehrsonf9f2fe01998-03-15 18:20:23 -0600285version 1.0.1 [March 14, 1998]
Glenn Randers-Pehrson896239b1998-04-21 15:03:57 -0500286 Changed makefile.s2x to reduce security risk of using a relative pathname
287 Fixed some typos in the documentation (Greg).
288 Fixed a problem with value of "channels" returned by png_read_update_info()
289version 1.0.1a [April 21, 1998]
290 Optimized Paeth calculations by replacing abs() function calls with intrinsics
291 plus other loop optimizations. Improves avg decoding speed by about 20%.
292 Commented out i386istic "align" compiler flags in makefile.lnx.
293 Reduced the default warning level in some makefiles, to make them consistent.
294 Removed references to IJG and JPEG in the ansi2knr.c copyright statement.
295 Fixed a bug in png_do_strip_filler with XXRRGGBB => RRGGBB transformation.
296 Added grayscale and 16-bit capability to png_do_read_filler().
297 Fixed a bug in pngset.c, introduced in version 0.99c, that sets rowbytes
298 too large when writing an image with bit_depth < 8 (Bob Dellaca).
299 Corrected some bugs in the experimental weighted filtering heuristics.
300 Moved a misplaced pngrutil code block that truncates tRNS if it has more
301 than num_palette entries -- test was done before num_palette was defined.
302 Fixed a png_convert_to_rfc1123() bug that converts day 31 to 0 (Steve Eddins).
Glenn Randers-Pehrson1d963611998-05-02 12:52:25 -0500303 Changed compiler flags in makefile.wat for better optimization (Pawel Mrochen).
304version 1.0.1b [May 2, 1998]
305 Relocated png_do_gray_to_rgb() within png_do_read_transformations() (Greg).
306 Relocated the png_composite macros from pngrtran.c to png.h (Greg).
307 Added makefile.sco (contributed by Mike Hopkirk).
308 Fixed two bugs (missing definitions of "istop") introduced in libpng-1.0.1a.
309 Fixed a bug in pngrtran.c that would set channels=5 under some circumstances.
310 More work on the Paeth-filtering, achieving imperceptible speedup (A Kleinert).
311 More work on loop optimization which may help when compiled with C++ compilers.
312 Added warnings when people try to use transforms they've defined out.
Glenn Randers-Pehrsond0dce401998-05-09 10:02:29 -0500313 Collapsed 4 "i" and "c" loops into single "i" loops in pngrtran and pngwtran.
314 Revised paragraph about png_set_expand() in libpng.txt and libpng.3 (Greg)
Glenn Randers-Pehrson8686fff1998-05-21 09:27:50 -0500315version 1.0.1c [May 11, 1998]
Glenn Randers-Pehrsond0dce401998-05-09 10:02:29 -0500316 Fixed a bug in pngrtran.c (introduced in libpng-1.0.1a) where the masks for
317 filler bytes should have been 0xff instead of 0xf.
318 Added max_pixel_depth=32 in pngrutil.c when using FILLER with palette images.
Glenn Randers-Pehrsonf7d1a171998-06-06 15:31:35 -0500319 Moved PNG_WRITE_WEIGHTED_FILTER_SUPPORTED and PNG_WRITE_FLUSH_SUPPORTED
Glenn Randers-Pehrsond0dce401998-05-09 10:02:29 -0500320 out of the PNG_WRITE_TRANSFORMS_NOT_SUPPORTED block of pngconf.h
321 Added "PNG_NO_WRITE_TRANSFORMS" etc., as alternatives for *_NOT_SUPPORTED,
322 for consistency, in pngconf.h
323 Added individual "ifndef PNG_NO_[CAPABILITY]" in pngconf.h to make it easier
324 to remove unwanted capabilities via the compile line
Glenn Randers-Pehrson8686fff1998-05-21 09:27:50 -0500325 Made some corrections to grammar (which, it's) in documentation (Greg).
326 Corrected example.c, use of row_pointers in png_write_image().
Glenn Randers-Pehrsonf7d1a171998-06-06 15:31:35 -0500327version 1.0.1d [May 24, 1998]
328 Corrected several statements that used side effects illegally in pngrutil.c
329 and pngtrans.c, that were introduced in version 1.0.1b
Glenn Randers-Pehrson8686fff1998-05-21 09:27:50 -0500330 Revised png_read_rows() to avoid repeated if-testing for NULL (A Kleinert)
331 More corrections to example.c, use of row_pointers in png_write_image()
332 and png_read_rows().
333 Added pngdll.mak and pngdef.pas to scripts directory, contributed by
334 Bob Dellaca, to make a png32bd.dll with Borland C++ 4.5
335 Fixed error in example.c with png_set_text: num_text is 3, not 2 (Guido V.)
336 Changed several loops from count-down to count-up, for consistency.
Glenn Randers-Pehrson5c6aeb21998-12-29 11:47:59 -0600337version 1.0.1e [June 6, 1998]
Glenn Randers-Pehrsonf7d1a171998-06-06 15:31:35 -0500338 Revised libpng.txt and libpng.3 description of png_set_read|write_fn(), and
339 added warnings when people try to set png_read_fn and png_write_fn in
340 the same structure.
341 Added a test such that png_do_gamma will be done when num_trans==0
342 for truecolor images that have defined a background. This corrects an
343 error that was introduced in libpng-0.90 that can cause gamma processing
344 to be skipped.
345 Added tests in png.h to include "trans" and "trans_values" in structures
346 when PNG_READ_BACKGROUND_SUPPORTED or PNG_READ_EXPAND_SUPPORTED is defined.
347 Add png_free(png_ptr->time_buffer) in png_destroy_read_struct()
348 Moved png_convert_to_rfc_1123() from pngwrite.c to png.c
349 Added capability for user-provided malloc_fn() and free_fn() functions,
350 and revised pngtest.c to demonstrate their use, replacing the
351 PNGTEST_DEBUG_MEM feature.
Glenn Randers-Pehrson345bc271998-06-14 14:43:31 -0500352 Added makefile.w32, for Microsoft C++ 4.0 and later (Tim Wegner).
Glenn Randers-Pehrson5c6aeb21998-12-29 11:47:59 -0600353version 1.0.2 [June 14, 1998]
354 Fixed two bugs in makefile.bor .
Glenn Randers-Pehrsonc9442291999-01-06 21:50:16 -0600355version 1.0.2a [December 30, 1998]
Glenn Randers-Pehrson5c6aeb21998-12-29 11:47:59 -0600356 Replaced and extended code that was removed from png_set_filler() in 1.0.1a.
357 Fixed a bug in png_do_filler() that made it fail to write filler bytes in
358 the left-most pixel of each row (Kevin Bracey).
359 Changed "static pngcharp tIME_string" to "static char tIME_string[30]"
360 in pngtest.c (Duncan Simpson).
Glenn Randers-Pehrsonc9442291999-01-06 21:50:16 -0600361 Fixed a bug in pngtest.c that caused pngtest to try to write a tIME chunk
362 even when no tIME chunk was present in the source file.
Glenn Randers-Pehrson5c6aeb21998-12-29 11:47:59 -0600363 Fixed a problem in pngrutil.c: gray_to_rgb didn't always work with 16-bit.
364 Fixed a problem in png_read_push_finish_row(), which would not skip some
365 passes that it should skip, for images that are less than 3 pixels high.
366 Interchanged the order of calls to png_do_swap() and png_do_shift()
367 in pngwtran.c (John Cromer).
368 Added #ifdef PNG_DEBUG/#endif surrounding use of PNG_DEBUG in png.h .
369 Changed "bad adaptive filter type" from error to warning in pngrutil.c .
370 Fixed a documentation error about default filtering with 8-bit indexed-color.
371 Separated the PNG_NO_STDIO macro into PNG_NO_STDIO and PNG_NO_CONSOLE_IO
372 (L. Peter Deutsch).
373 Added png_set_rgb_to_gray() and png_get_rgb_to_gray_status() functions.
374 Added png_get_copyright() and png_get_header_version() functions.
375 Revised comments on png_set_progressive_read_fn() in libpng.txt and example.c
376 Added information about debugging in libpng.txt and libpng.3 .
377 Changed "ln -sf" to "ln -s -f" in makefile.s2x, makefile.lnx, and makefile.sco.
378 Removed lines after Dynamic Dependencies" in makefile.aco .
379 Revised makefile.dec to make a shared library (Jeremie Petit).
380 Removed trailing blanks from all files.
Glenn Randers-Pehrson87544ac1999-01-13 22:06:39 -0600381version 1.0.2a [January 6, 1999]
Glenn Randers-Pehrsonc9442291999-01-06 21:50:16 -0600382 Removed misplaced #endif and #ifdef PNG_NO_EXTERN near the end of png.h
383 Added "if" tests to silence complaints about unused png_ptr in png.h and png.c
384 Changed "check_if_png" function in example.c to return true (nonzero) if PNG.
385 Changed libpng.txt to demonstrate png_sig_cmp() instead of png_check_sig()
386 which is obsolete.
Glenn Randers-Pehrson87544ac1999-01-13 22:06:39 -0600387version 1.0.3 [January 14, 1999]
388 Added makefile.hux, for Hewlett Packard HPUX 10.20 and 11.00 (Jim Rice)
Glenn Randers-Pehrson4393a9a1999-09-17 12:27:26 -0500389 Added a statement of Y2K compliance in png.h, libpng.3, and Y2KINFO.
390version 1.0.3a [August 12, 1999]
391 Added check for PNG_READ_INTERLACE_SUPPORTED in pngread.c; issue a warning
392 if an attempt is made to read an interlaced image when it's not supported.
393 Added check if png_ptr->trans is defined before free'ing it in pngread.c
394 Modified the Y2K statement to include versions back to version 0.71
395 Fixed a bug in the check for valid IHDR bit_depth/color_types in pngrutil.c
396 Modified makefile.wat (added -zp8 flag, ".symbolic", changed some comments)
397 Replaced leading blanks with tab characters in makefile.hux
398 Changed "dworkin.wustl.edu" to "ccrc.wustl.edu" in various documents.
399 Changed (float)red and (float)green to (double)red, (double)green
400 in png_set_rgb_to_gray() to avoid "promotion" problems in AIX.
401 Fixed a bug in pngconf.h that omitted <stdio.h> when PNG_DEBUG==0 (K Bracey).
402 Reformatted libpng.3 and libpngpf.3 with proper fonts (script by J. vanZandt).
403 Updated documentation to refer to the PNG-1.2 specification.
404 Removed ansi2knr.c and left pointers to the latest source for ansi2knr.c
405 in makefile.knr, INSTALL, and README (L. Peter Deutsch)
406 Fixed bugs in calculation of the length of rowbytes when adding alpha
407 channels to 16-bit images, in pngrtran.c (Chris Nokleberg)
408 Added function png_set_user_transform_info() to store user_transform_ptr,
409 user_depth, and user_channels into the png_struct, and a function
410 png_get_user_transform_ptr() to retrieve the pointer (Chris Nokleberg)
411 Added function png_set_empty_plte_permitted() to make libpng useable
412 in MNG applications.
413 Corrected the typedef for png_free_ptr in png.h (Jesse Jones).
414 Correct gamma with srgb is 45455 instead of 45000 in pngrutil.c, to be
415 consistent with PNG-1.2, and allow variance of 500 before complaining.
416 Added assembler code contributed by Intel in file pngvcrd.c and modified
417 makefile.w32 to use it (Nirav Chhatrapati, INTEL Corporation, Gilles Vollant)
418 Changed "ln -s -f" to "ln -f -s" in the makefiles to make Solaris happy.
419 Added some aliases for png_set_expand() in pngrtran.c, namely
420 png_set_expand_PLTE(), png_set_expand_depth(), and png_set_expand_tRNS()
421 (Greg Roelofs, in "PNG: The Definitive Guide").
422 Added makefile.beo for BEOS on X86, contributed by Sander Stok.
423version 1.0.3b [August 26, 1999]
424 Replaced 2147483647L several places with PNG_MAX_UINT macro, defined in png.h
425 Changed leading blanks to tabs in all makefiles.
426 Define PNG_USE_PNGVCRD in makefile.w32, to get MMX assembler code.
427 Made alternate versions of png_set_expand() in pngrtran.c, namely
428 png_set_gray_1_2_4_to_8, png_set_palette_to_rgb, and png_set_tRNS_to_alpha
429 (Greg Roelofs, in "PNG: The Definitive Guide"). Deleted the 1.0.3a aliases.
430 Relocated start of 'extern "C"' block in png.h so it doesn't include pngconf.h
431 Revised calculation of num_blocks in pngmem.c to avoid a potentially
432 negative shift distance, whose results are undefined in the C language.
433 Added a check in pngset.c to prevent writing multiple tIME chunks.
434 Added a check in pngwrite.c to detect invalid small window_bits sizes.
435version 1.0.3d [September 4, 1999]
436 Fixed type casting of igamma in pngrutil.c
437 Added new png_expand functions to scripts/pngdef.pas and pngos2.def
438 Added a demo read_user_transform_fn that examines the row filters in pngtest.c
Glenn Randers-Pehrsonbcfd15d1999-10-01 14:22:25 -0500439version 1.0.4 [September 24, 1999]
Glenn Randers-Pehrson4393a9a1999-09-17 12:27:26 -0500440 Define PNG_ALWAYS_EXTERN in pngconf.h if __STDC__ is defined
441 Delete #define PNG_INTERNAL and include "png.h" from pngasmrd.h
442 Made several minor corrections to pngtest.c
Glenn Randers-Pehrson54a066a1999-09-19 06:04:18 -0500443 Renamed the makefiles with longer but more user friendly extensions.
444 Copied the PNG copyright and license to a separate LICENSE file.
Glenn Randers-Pehrsonbcfd15d1999-10-01 14:22:25 -0500445 Revised documentation, png.h, and example.c to remove reference to
446 "viewing_gamma" which no longer appears in the PNG specification.
447 Revised pngvcrd.c to use MMX code for interlacing only on the final pass.
448 Updated pngvcrd.c to use the faster C filter algorithms from libpng-1.0.1a
449 Split makefile.win32vc into two versions, makefile.vcawin32 (uses MMX
450 assembler code) and makefile.vcwin32 (doesn't).
451 Added a CPU timing report to pngtest.c (enabled by defining PNGTEST_TIMING)
Glenn Randers-Pehrsonab1e5831999-10-06 04:57:42 -0500452 Added a copy of pngnow.png to the distribution.
Glenn Randers-Pehrsonbcfd15d1999-10-01 14:22:25 -0500453version 1.0.4a [September 25, 1999]
454 Increase max_pixel_depth in pngrutil.c if a user transform needs it.
455 Changed several division operations to right-shifts in pngvcrd.c
456version 1.0.4b [September 30, 1999]
457 Added parentheses in line 3732 of pngvcrd.c
458 Added a comment in makefile.linux warning about buggy -O3 in pgcc 2.95.1
459version 1.0.4c [October 1, 1999]
460 Added a "png_check_version" function in png.c and pngtest.c that will generate
461 a helpful compiler error if an old png.h is found in the search path.
Glenn Randers-Pehrsonab1e5831999-10-06 04:57:42 -0500462 Changed type of png_user_transform_depth|channels from int to png_byte.
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -0500463version 1.0.4d [October 6, 1999]
Glenn Randers-Pehrsonab1e5831999-10-06 04:57:42 -0500464 Changed 0.45 to 0.45455 in png_set_sRGB()
465 Removed unused PLTE entries from pngnow.png
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -0500466 Re-enabled some parts of pngvcrd.c (png_combine_row) that work properly.
467version 1.0.4e [October 10, 1999]
468 Fixed sign error in pngvcrd.c (Greg Roelofs)
469 Replaced some instances of memcpy with simple assignments in pngvcrd (GR-P)
Glenn Randers-Pehrson6d8f3b01999-10-23 08:39:18 -0500470version 1.0.4f [October 15, 1999]
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -0500471 Surrounded example.c code with #if 0 .. #endif to prevent people from
472 inadvertently trying to compile it.
473 Changed png_get_header_version() from a function to a macro in png.h
474 Added type casting mostly in pngrtran.c and pngwtran.c
475 Removed some pointless "ptr = NULL" in pngmem.c
476 Added a "contrib" directory containing the source code from Greg's book.
Glenn Randers-Pehrson6d8f3b01999-10-23 08:39:18 -0500477version 1.0.5 [October 15, 1999]
478 Minor editing of the INSTALL and README files.
479version 1.0.5a [October 23, 1999]
480 Added contrib/pngsuite and contrib/pngminus (Willem van Schaik)
481 Fixed a typo in the png_set_sRGB() function call in example.c (Jan Nijtmans)
482 Further optimization and bugfix of pngvcrd.c
483 Revised pngset.c so that it does not allocate or free memory in the user's
484 text_ptr structure. Instead, it makes its own copy.
485 Created separate write_end_info_struct in pngtest.c for a more severe test.
486 Added code in pngwrite.c to free info_ptr->text[i].key to stop a memory leak.
Glenn Randers-Pehrson5379b241999-11-27 10:22:33 -0600487version 1.0.5b [November 23, 1999]
488 Moved PNG_FLAG_HAVE_CHUNK_HEADER, PNG_FLAG_BACKGROUND_IS_GRAY and
489 PNG_FLAG_WROTE_tIME from flags to mode.
490 Added png_write_info_before_PLTE() function.
491 Fixed some typecasting in contrib/gregbook/*.c
492 Updated scripts/makevms.com and added makevms.com to contrib/gregbook
493 and contrib/pngminus (Martin Zinser)
Glenn Randers-Pehrson074af5e1999-11-28 23:32:18 -0600494version 1.0.5c [November 26, 1999]
Glenn Randers-Pehrson5379b241999-11-27 10:22:33 -0600495 Moved png_get_header_version from png.h to png.c, to accomodate ansi2knr.
496 Removed all global arrays (according to PNG_NO_GLOBAL_ARRAYS macro), to
497 accomodate making DLL's: Moved usr_png_ver from global variable to function
498 png_get_header_ver() in png.c. Moved png_sig to png_sig_bytes in png.c and
499 eliminated use of png_sig in pngwutil.c. Moved the various png_CHNK arrays
500 into pngtypes.h. Eliminated use of global png_pass arrays. Declared the
501 png_CHNK and png_pass arrays to be "const". Made the global arrays
502 available to applications (although none are used in libpng itself) when
503 PNG_NO_GLOBAL_ARRAYS is not defined or when PNG_GLOBAL_ARRAYS is defined.
504 Removed some extraneous "-I" from contrib/pngminus/makefile.std
505 Changed the PNG_sRGB_INTENT macros in png.h to be consistent with PNG-1.2.
Glenn Randers-Pehrson166c5a31999-12-10 09:43:02 -0600506 Change PNG_SRGB_INTENT to PNG_sRGB_INTENT in libpng.txt and libpng.3
Glenn Randers-Pehrson074af5e1999-11-28 23:32:18 -0600507version 1.0.5d [November 29, 1999]
508 Add type cast (png_const_charp) two places in png.c
509 Eliminated pngtypes.h; use macros instead to declare PNG_CHNK arrays.
510 Renamed "PNG_GLOBAL_ARRAYS" to "PNG_USE_GLOBAL_ARRAYS" and made available
511 to applications a macro "PNG_USE_LOCAL_ARRAYS".
512 #ifdef out all the new declarations when PNG_USE_GLOBAL_ARRAYS is defined.
513 Added PNG_EXPORT_VAR macro to accommodate making DLL's.
Glenn Randers-Pehrson166c5a31999-12-10 09:43:02 -0600514version 1.0.5e [November 30, 1999]
515 Added iCCP, iTXt, and sPLT support; added "lang" member to the png_text
516 structure; refactored the inflate/deflate support to make adding new chunks
517 with trailing compressed parts easier in the future, and added new functions
518 png_free_iCCP, png_free_pCAL, png_free_sPLT, png_free_text, png_get_iCCP,
519 png_get_spalettes, png_set_iCCP, png_set_spalettes (Eric S. Raymond).
Glenn Randers-Pehrson61c32d92000-02-04 23:40:16 -0600520 NOTE: Applications that write text chunks MUST define png_text->lang
Glenn Randers-Pehrson166c5a31999-12-10 09:43:02 -0600521 before calling png_set_text(). It must be set to NULL if you want to
522 write tEXt or zTXt chunks. If you want your application to be able to
523 run with older versions of libpng, use
524
525 #ifdef PNG_iTXt_SUPPORTED
526 png_text[i].lang = NULL;
527 #endif
528
529 Changed png_get_oFFs() and png_set_oFFs() to use signed rather than unsigned
530 offsets (Eric S. Raymond).
531 Combined PNG_READ_cHNK_SUPPORTED and PNG_WRITE_cHNK_SUPPORTED macros into
532 PNG_cHNK_SUPPORTED and combined the three types of PNG_text_SUPPORTED
533 macros, leaving the separate macros also available.
534 Removed comments on #endifs at the end of many short, non-nested #if-blocks.
535version 1.0.5f [December 6, 1999]
536 Changed makefile.solaris to issue a warning about potential problems when
537 the ucb "ld" is in the path ahead of the ccs "ld".
538 Removed "- [date]" from the "synopsis" line in libpng.3 and libpngpf.3.
539 Added sCAL chunk support (Eric S. Raymond).
540version 1.0.5g [December 7, 1999]
541 Fixed "png_free_spallettes" typo in png.h
542 Added code to handle new chunks in pngpread.c
543 Moved PNG_CHNK string macro definitions outside of PNG_NO_EXTERN block
544 Added "translated_key" to png_text structure and png_write_iTXt().
545 Added code in pngwrite.c to work around a newly discovered zlib bug.
546version 1.0.5h [December 10, 1999]
Glenn Randers-Pehrson61c32d92000-02-04 23:40:16 -0600547 NOTE: regarding the note for version 1.0.5e, the following must also
Glenn Randers-Pehrson166c5a31999-12-10 09:43:02 -0600548 be included in your code:
549 png_text[i].translated_key = NULL;
550 Unknown chunk handling is now supported.
551 Option to eliminate all floating point support was added. Some new
552 fixed-point functions such as png_set_gAMA_fixed() were added.
Glenn Randers-Pehrson61c32d92000-02-04 23:40:16 -0600553 Expanded tabs and removed trailing blanks in source files.
554version 1.0.5i [December 13, 1999]
555 Added some type casts to silence compiler warnings.
556 Renamed "png_free_spalette" to "png_free_spalettes" for consistency.
557 Removed leading blanks from a #define in pngvcrd.c
558 Added some parameters to the new png_set_keep_unknown_chunks() function.
559 Added a test for up->location != 0 in the first instance of writing
560 unknown chunks in pngwrite.c
561 Changed "num" to "i" in png_free_spalettes() and png_free_unknowns() to
562 prevent recursion.
563 Added png_free_hIST() function.
564 Various patches to fix bugs in the sCAL and integer cHRM processing,
565 and to add some convenience macros for use with sCAL.
566version 1.0.5j [December 21, 1999]
567 Changed "unit" parameter of png_write_sCAL from png_byte to int, to work
568 around buggy compilers.
569 Added new type "png_fixed_point" for integers that hold float*100000 values
570 Restored backward compatibility of tEXt/zTXt chunk processing:
571 Restored the first four members of png_text to the same order as v.1.0.5d.
572 Added members "lang_key" and "itxt_length" to png_text struct. Set
573 text_length=0 when "text" contains iTXt data. Use the "compression"
574 member to distinguish among tEXt/zTXt/iTXt types. Added
575 PNG_ITXT_COMPRESSION_NONE (1) and PNG_ITXT_COMPRESSION_zTXt(2) macros.
576 The "Note" above, about backward incompatibility of libpng-1.0.5e, no
577 longer applies.
578 Fixed png_read|write_iTXt() to read|write parameters in the right order,
579 and to write the iTXt chunk after IDAT if it appears in the end_ptr.
580 Added pnggccrd.c, version of pngvcrd.c Intel assembler for gcc (Greg Roelofs)
581 Reversed the order of trying to write floating-point and fixed-point gAMA.
582version 1.0.5k [December 27, 1999]
583 Added many parentheses, e.g., "if (a && b & c)" becomes "if (a && (b & c))"
584 Added png_handle_as_unknown() function (Glenn)
585 Added png_free_chunk_list() function and chunk_list and num_chunk_list members
586 of png_ptr.
587 Eliminated erroneous warnings about multiple sPLT chunks and sPLT-after-PLTE.
588 Fixed a libpng-1.0.5h bug in pngrutil.c that was issuing erroneous warnings
589 about ignoring incorrect gAMA with sRGB (gAMA was in fact not ignored)
590 Added png_free_tRNS(); png_set_tRNS() now malloc's its own trans array (ESR).
591 Define png_get_int_32 when oFFs chunk is supported as well as when pCAL is.
592 Changed type of proflen from png_int_32 to png_uint_32 in png_get_iCCP().
593version 1.0.5l [January 1, 2000]
594 Added functions png_set_read_user_chunk_fn() and png_get_user_chunk_ptr()
595 for setting a callback function to handle unknown chunks and for
596 retrieving the associated user pointer (Glenn).
597version 1.0.5m [January 7, 2000]
598 Added high-level functions png_read_png(), png_write_png(), png_free_pixels().
599version 1.0.5n [January 9, 2000]
600 Added png_free_PLTE() function, and modified png_set_PLTE() to malloc its
601 own memory for info_ptr->palette. This makes it safe for the calling
602 application to free its copy of the palette any time after it calls
603 png_set_PLTE().
604version 1.0.5o [January 20, 2000]
605 Cosmetic changes only (removed some trailing blanks and TABs)
606version 1.0.5p [January 31, 2000]
607 Renamed pngdll.mak to makefile.bd32
608 Cosmetic changes in pngtest.c
609version 1.0.5q [February 5, 2000]
610 Relocated the makefile.solaris warning about PATH problems.
611 Fixed pngvcrd.c bug by pushing/popping registers in mmxsupport (Bruce Oberg)
612 Revised makefile.gcmmx
613 Added PNG_SETJMP_SUPPORTED, PNG_SETJMP_NOT_SUPPORTED, and PNG_ABORT() macros
Glenn Randers-Pehrsona77ef622000-02-18 13:48:52 -0600614version 1.0.5r [February 7, 2000]
615 Removed superfluous prototype for png_get_itxt from png.h
616 Fixed a bug in pngrtran.c that improperly expanded the background color.
617 Return *num_text=0 from png_get_text() when appropriate, and fix documentation
618 of png_get_text() in libpng.txt/libpng.3.
619version 1.0.5s [February 18, 2000]
620 Added "png_jmp_env()" macro to pngconf.h, to help people migrate to the
621 new error handler that's planned for the next libpng release, and changed
622 example.c, pngtest.c, and contrib programs to use this macro.
623 Revised some of the DLL-export macros in pngconf.h (Greg Roelofs)
624 Fixed a bug in png_read_png() that caused it to fail to expand some images
625 that it should have expanded.
626 Fixed some mistakes in the unused and undocumented INCH_CONVERSIONS functions
627 in pngget.c
628 Changed the allocation of palette, history, and trans arrays back to
629 the version 1.0.5 method (linking instead of copying) which restores
630 backward compatibility with version 1.0.5. Added some remarks about
631 that in example.c. Added "free_me" member to info_ptr and png_ptr.
632 Updated makefile.linux and makefile.gccmmx to make directories conditionally.
633 Made cosmetic changes to pngasmrd.h
634 Added png_set_rows() and png_get_rows(), for use with png_read|write_png().
635 Modified png_read_png() to allocate info_ptr->row_pointers only if it
636 hasn't already been allocated.