CHANGES 14.0 KB
Newer Older
1
CHANGES - changes for libpng
G
Guy Schalnat 已提交
2 3

version 0.2
G
Guy Schalnat 已提交
4 5
   added reader into png.h
   fixed small problems in stub file
G
Guy Schalnat 已提交
6
version 0.3
G
Guy Schalnat 已提交
7 8 9 10 11 12 13 14 15
   added pull reader
   split up pngwrite.c to several files
   added pnglib.txt
   added example.c
   cleaned up writer, adding a few new tranformations
   fixed some bugs in writer
   interfaced with zlib 0.5
   added K&R support
   added check for 64 KB blocks for 16 bit machines
G
Guy Schalnat 已提交
16
version 0.4
G
Guy Schalnat 已提交
17 18 19 20 21 22 23 24 25
   cleaned up code and commented code
   simplified time handling into png_time
   created png_color_16 and png_color_8 to handle color needs
   cleaned up color type defines
   fixed various bugs
   made various names more consistant
   interfaced with zlib 0.71
   cleaned up zTXt reader and writer (using zlib's Reset functions)
   split transformations into pngrtran.c and pngwtran.c
G
Guy Schalnat 已提交
26
version 0.5
G
Guy Schalnat 已提交
27 28
   interfaced with zlib 0.8
   fixed many reading and writing bugs
G
Guy Schalnat 已提交
29 30 31 32 33 34 35 36 37 38 39
   saved using 3 spaces instead of tabs
version 0.6
   added png_large_malloc() and png_large_free()
   added png_size_t
   cleaned up some compiler warnings
   added png_start_read_image()
version 0.7
   cleaned up lots of bugs
   finished dithering and other stuff
   added test program
   changed name from pnglib to libpng
A
Andreas Dilger 已提交
40
version 0.71 [June, 1995]
G
Guy Schalnat 已提交
41 42
   changed pngtest.png for zlib 0.93
   fixed error in libpng.txt and example.c
G
Guy Schalnat 已提交
43 44 45 46 47 48 49 50 51 52 53 54 55 56
version 0.8
   cleaned up some bugs
   added png_set_filler()
   split up pngstub.c into pngmem.c, pngio.c, and pngerror.c
   added #define's to remove unwanted code
   moved png_info_init() to png.c
   added old_size into png_realloc()
   added functions to manually set filtering and compression info
   changed compression parameters based on image type
   optimized filter selection code
   added version info
   changed external functions passing floats to doubles (k&r problems?)
   put all the configurable stuff in pngconf.h
   enabled png_set_shift to work with paletted images on read
G
Guy Schalnat 已提交
57 58
   added png_read_update_info() - updates info structure with
      transformations
A
Andreas Dilger 已提交
59
version 0.81 [August, 1995]
G
Guy Schalnat 已提交
60
   incorporated Tim Wegner's medium model code (thanks, Tim)
A
Andreas Dilger 已提交
61 62 63 64
version 0.82 [September, 1995]
   [unspecified changes]
version 0.85 [December, 1995]
   added more medium model code (almost everything's a far)
G
Guy Schalnat 已提交
65 66 67
   added i/o, error, and memory callback functions
   fixed some bugs (16 bit, 4 bit interlaced, etc.)
   added first run progressive reader (barely tested)
A
Andreas Dilger 已提交
68
version 0.86 [January, 1996]
G
Guy Schalnat 已提交
69 70
   fixed bugs
   improved documentation
A
Andreas Dilger 已提交
71
version 0.87 [January, 1996]
G
Guy Schalnat 已提交
72 73
   fixed medium model bugs
   fixed other bugs introduced in 0.85 and 0.86
G
Guy Schalnat 已提交
74
   added some minor documentation
A
Andreas Dilger 已提交
75
version 0.88 [January, 1996]
G
Guy Schalnat 已提交
76 77 78
   fixed progressive bugs
   replaced tabs with spaces
   cleaned up documentation
G
Guy Schalnat 已提交
79
   added callbacks for read/write and warning/error functions
A
Andreas Dilger 已提交
80
version 0.89 [July, 1996]
G
Guy Schalnat 已提交
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
   added new initialization API to make libpng work better with shared libs
      we now have png_create_read_struct(), png_create_write_struct(),
      png_create_info_struct(), png_destroy_read_struct(), and
      png_destroy_write_struct() instead of the separate calls to
      malloc and png_read_init(), png_info_init(), and png_write_init()
   changed warning/error callback functions to fix bug - this means you
      should use the new initialization API if you were using the old
      png_set_message_fn() calls, and that the old API no longer exists
      so that people are aware that they need to change their code
   changed filter selection API to allow selection of multiple filters
      since it didn't work in previous versions of libpng anyways
   optimized filter selection code    
   fixed png_set_background() to allow using an arbitrary RGB color for
      paletted images
   fixed gamma and background correction for paletted images, so
      png_correct_palette is not needed unless you are correcting an
      external palette (you will need to #define PNG_CORRECT_PALETTE_SUPPORTED
A
Andreas Dilger 已提交
98
      in pngconf.h) - if nobody uses this, it may disappear in the future.
G
Guy Schalnat 已提交
99
   fixed bug with Borland 64K memory allocation (Alexander Lehmann)
A
Andreas Dilger 已提交
100
   fixed bug in interlace handling (Smarasderagd, I think)
G
Guy Schalnat 已提交
101 102 103 104
   added more error checking for writing and image to reduce invalid files
   separated read and write functions so that they won't both be linked
      into a binary when only reading or writing functionality is used
   new pngtest image also has interlacing and zTXt
A
Andreas Dilger 已提交
105
   updated documentation to reflect new API
A
Andreas Dilger 已提交
106
version 0.90 [January, 1997]
A
Andreas Dilger 已提交
107 108 109 110 111
   made CRC errors/warnings on critical and ancillary chunks configurable
   libpng will use the zlib CRC routines by (compile-time) default
   changed DOS small/medium model memory support - needs zlib 1.04 (Tim Wegner)
   added external C++ wrapper statements to png.h (Gilles Dauphin)
   allow PNG file to be read when some or all of file signature has already
A
Andreas Dilger 已提交
112 113
      been read from the beginning of the stream.  ****This affects the size
      of info_struct and invalidates all programs that use a shared libpng****
A
Andreas Dilger 已提交
114 115 116 117 118 119 120 121 122 123 124
   fixed png_filler() declarations
   fixed? background color conversions
   fixed order of error function pointers to match documentation
   current chunk name is now available in png_struct to reduce the number
      of nearly identical error messages (will simplify multi-lingual
      support when available)
   try to get ready for unknown-chunk callback functions:
      - previously read critical chunks are flagged, so the chunk handling
        routines can determine if the chunk is in the right place
      - all chunk handling routines have the same prototypes, so we will
        be able to handle all chunks via a callback mechanism
A
Andreas Dilger 已提交
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
   try to fix Linux "setjmp" buffer size problems
version 0.95 [March, 1997]
   fixed bug in pngwutil.c allocating "up_row" twice and "avg_row" never
   fixed bug in PNG file signature compares when start != 0
   changed parameter type of png_set_filler(...filler...) from png_byte
      to png_uint_32
   added test for MACOS to ensure that both math.h and fp.h are not #included
   added macros for libpng to be compiled as a Windows DLL (Andreas Kupries)
   added "packswap" transformation, which changes the endianness of
      packed-pixel bytes (Kevin Bracey)
   added "strip_alpha" transformation, which removes the alpha channel of
      input images without using it (not neccesarily a good idea)
   added "swap_alpha" transformation, which puts the alpha channel in front
      of the color bytes instead of after
   removed all implicit variable tests which assume NULL == 0 (I think)
   changed several variables to "png_size_t" to show 16/32-bit limitations
   added new pCAL chunk read/write support
   added experimental filter selection weighting (Greg Roelofs)
   removed old png_set_rgbx() and png_set_xrgb() functions that have been
      obsolete for about 2 years now (use png_set_filler() instead)
   added macros to read 16- and 32-bit ints directly from buffer, to be
      used only on those systems that support it (namely PowerPC and 680x0)
      With some testing, this may become the default for MACOS/PPC systems.
   only calculate CRC on data if we are going to use it
   added macros for zTXt compression type PNG_zTXt_COMPRESSION_???
   added macros for simple libpng debugging output selectable at compile time
   removed PNG_READ_END_MODE in progressive reader (Smarasderagd)
   more description of info_struct in libpng.txt and png.h
   more instructions in example.c
   more chunk types tested in pngtest.c
   renamed pngrcb.c to pngset.c, and all png_read_<chunk> functions to be
      png_set_<chunk>.  We now have corresponding png_get_<chunk>
      functions in pngget.c to get infomation in info_ptr.  This isolates
      the application from the internal organization of png_info_struct
      (good for shared library implementations).
version 0.96 [May, 1997]
   fixed serious bug with < 8bpp images introduced in 0.95
   fixed 256-color transparency bug (Greg Roelofs)
   fixed up documentation (Greg Roelofs, Laszlo Nyul)
   fixed "error" in pngconf.h for Linux setjmp() behaviour
   fixed DOS medium model support (Tim Wegner)
   fixed png_check_keyword() for case with error in static string text
   added read of CRC after IEND chunk for embedded PNGs (Laszlo Nyul)
   added typecasts to quiet compiler errors
   added more debugging info
170
version 0.97 [January, 1998]
171 172
   removed PNG_USE_OWN_CRC capability
   relocated png_set_crc_action from pngrutil.c to pngrtran.c
173 174
   fixed typecasts of "new_key", etc. (Andreas Dilger)
   added RFC 1152 [sic] date support
175
   fixed bug in gamma handling of 4-bit grayscale
176 177
   added 2-bit grayscale gamma handling (Glenn R-P)
   added more typecasts. 65536L becomes (png_uint_32)65536L, etc. (Glenn R-P)
178
   minor corrections in libpng.txt
179 180 181 182 183
   added simple sRGB support (Glenn R-P)
   easier conditional compiling, e.g. define PNG_READ/WRITE_NOT_FULLY_SUPPORTED;
      all configurable options can be selected from command-line instead
      of having to edit pngconf.h (Glenn R-P)
   fixed memory leak in pngwrite.c (free info_ptr->text) (Glenn R-P)
184 185 186
   added more conditions for png_do_background, to avoid changing
      black pixels to background when a background is supplied and
      no pixels are transparent
187
   repaired PNG_NO_STDIO behaviour
188 189
   tested NODIV support and made it default behaviour (Greg Roelofs)
   added "-m" option and PNGTEST_DEBUG_MEMORY to pngtest (John Bowler)
190
   regularized version numbering scheme and bumped shared-library major
191 192 193 194 195 196 197 198 199 200 201 202
      version number to 2 to avoid problems with libpng 0.89 apps (Greg Roelofs)
version 0.98 [January, 1998]
   cleaned up some typos in libpng.txt and in code documentation
   fixed memory leaks in pCAL chunk processing (Glenn R-P and John Bowler)
   cosmetic change "display_gamma" to "screen_gamma" in pngrtran.c
   changed recommendation about file_gamma for PC images to .51 from .45,
      in example.c and libpng.txt, added comments to distinguish between
      screen_gamma, viewing_gamma, and display_gamma.
   changed all references to RFC1152 to read RFC1123 and changed the
      PNG_TIME_RFC1152_SUPPORTED macro to PNG_TIME_RFC1123_SUPPORTED
   added png_invert_alpha capability (Glenn R-P -- suggestion by Jon Vincent)
   changed srgb_intent from png_byte to int to avoid compiler bugs
203
version 0.99 [January 30, 1998]
204 205 206 207 208 209 210 211 212 213 214 215
   free info_ptr->text instead of end_info_ptr->text in pngread.c (John Bowler)
   fixed a longstanding "packswap" bug in pngtrans.c
   fixed some inconsistencies in pngconf.h that prevented compiling with
      PNG_READ_GAMMA_SUPPORTED and PNG_READ_hIST_SUPPORTED undefined
   fixed some typos and made other minor rearrangement of libpng.txt (Andreas)
   changed recommendation about file_gamma for PC images to .50 from .51 in
      example.c and libpng.txt, and changed file_gamma for sRGB images to .45
   added a number of functions to access information from the png structure
      png_get_image_height(), etc. (Glenn R-P, suggestion by Brad Pettit)
   added TARGET_MACOS similar to zlib-1.0.8
   define PNG_ALWAYS_EXTERN when __MWERKS__ && WIN32 are defined
   added type casting to all png_malloc() function calls
216
version 0.99a [January 31, 1998]
217 218 219 220 221 222 223 224 225
   Added type casts and parentheses to all returns that return a value.(Tim W.)
version 0.99b [February 4, 1998]
   Added type cast png_uint_32 on malloc function calls where needed.
   Changed type of num_hist from png_uint_32 to int (same as num_palette).
   Added checks for rowbytes overflow, in case png_size_t is less than 32 bits.
   Renamed makefile.elf to makefile.lnx.
version 0.99c [February 7, 1998]
   More type casting.  Removed erroneous overflow test in pngmem.c.
   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.
227
version 0.99d [February 11, 1998]
228 229 230
   Renamed "far_to_near()" "png_far_to_near()"
   Revised libpng.3
   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 234 235 236 237 238 239 240 241 242 243 244 245 246
     unused png_ptr, mostly in pngget.c and pngset.c.
   Check for overlength tRNS chunk present when indexed-color PLTE is read.
   Cleaned up spelling errors in libpng.3/libpng.txt
   Corrected a problem with png_get_tRNS() which returned undefined trans array
version 0.99e [February 28, 1998]
   Corrected png_get_tRNS() again.
   Add parentheses for easier reading of pngget.c, fixed "||" should be "&&".
   Touched up example.c to make more of it compileable, although the entire
     file still can't be compiled (Willem van Schaik)
   Fixed a bug in png_do_shift() (Bryan Tsai)
   Added a space in png.h prototype for png_write_chunk_start()
   Replaced pngtest.png with one created with zlib 1.1.1
   Changed pngtest to report PASS even when file size is different (Jean-loup G.)
   Corrected some logic errors in png_do_invert_alpha() (Chris Patterson)
247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264
version 0.99f [March 5, 1998]
   Corrected a bug in pngpread() introduced in version 99c (Kevin Bracey)
   Moved makefiles into a "scripts" directory, and added INSTALL instruction file
   Added makefile.os2 and pngos2.def (A. Zabolotny) and makefile.s2x (W. Sebok)
   Added pointers to "note on libpng versions" in makefile.lnx and README
   Added row callback feature when reading and writing nonprogressive rows
      and added a test of this feature in pngtest.c
   Added user transform callbacks, with test of the feature in pngtest.c
version 0.99g [March 6, 1998, morning]
   Minor changes to pngtest.c to suppress compiler warnings.
   Removed "beta" language from documentation.
version 0.99h [March 6, 1998, evening]
   Minor changes to previous minor changes to pngtest.c 
   Changed PNG_READ_NOT_FULLY_SUPPORTED to PNG_READ_TRANSFORMS_NOT_SUPPORTED
   and added PNG_PROGRESSIVE_READ_NOT_SUPPORTED macro
version 1.00 [March 7, 1998]
   Changed several typedefs in pngrutil.c
   Added makefile.wat (Pawel Mrochen), updated makefile.tc3 (Willem van Schaik)
265 266 267 268 269
   replaced "while(1)" with "for(;;)"
   added PNGARG() to prototypes in pngtest.c and removed some prototypes
   updated some of the makefiles (Tom Lane)
   changed some typedefs (s_start, etc.) in pngrutil.c
   fixed dimensions of "short_months" array in pngwrite.c
270
   Replaced ansi2knr.c with the one from jpeg-v6