diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 168 |
1 files changed, 168 insertions, 0 deletions
@@ -0,0 +1,168 @@ +readme.txt - for libpng 0.90 + +This is the fourth beta version of libpng 1.0. The changes from +libpng-0.89 include bug fixes, a C++ wrapper for png.h, some +additions to the API, as well as internal changes to the library. + +** +Note that some of the changes to the png_info structure render +this version of the library binary incompatible with libpng-0.89 +if you are using a shared library. Re-compiling the application +should be enough to remove this problem. +** + +The additions to 0.89 include the ability to read from a PNG stream +which has had some (or all) of the signature bytes read by the +calling application. This also allows the reading of embedded PNG +streams that do not have the PNG file signature. As well, it is +now possible to set the library action on the detection of chunk +CRC errors. It is possible to set different actions based on +whether the error occurred in a critical or an ancillary chunk. + +The callback functions for the error/warning messages have changed +since the 0.88 release because their implementation was broken, +and it was thought best to change the API itself (which was only +introduced in libpng-0.88 itself) to alert the user to the change, +rather than mislead the user into thinking their application was +OK after re-compiling. This means that calls to png_set_message_fn() +no longer exist, because the previously suggested method of calling +them before png_read_init() or png_write_init() is now ineffective. + +The preferred method of setting the error and warning callbacks +has been incorporated into the allocation of the png_struct and +info_struct itself, which allow them to be safely used during the +initialization of the structure, as well as to keep the size of +the png_struct internal to the library, rather than at compile time +of the application. This will hopefully remove any problems with +dynamically linked libraries, and should be considered the preferred +method of creating these structures, although the previous +initialization API is still available for compatibility. See libpng.txt +for more information on the new API. + +The changes made to the library, and bugs fixed are based on discussions +on the PNG implementation mailing list <png-implement@dworking.wustl.edu> +and not on material submitted to Guy. + +For a detailed description on using libpng, read libpng.txt. For +usage information and restrictions (what little they are) on libpng, +see png.h. For a description on using zlib (the compression library +used by libpng) and zlib's restrictions, see zlib.h + +I have included a general makefile, as well as several machine and compiler +specific ones, but you may have to modify one for your own needs. + +You should use zlib 1.0.4 or later to run this, but it MAY work with +versions as old as zlib 0.95. Even so, there are bugs in older zlib +versions which can cause the output of invalid compression streams for +some images. You will definitely need zlib 1.0.4 or later if you are +taking advantage of the MS-DOS "far" structure allocation for the small +and medium memory models. You should also note that zlib is a +compression library that is useful for more things than just PNG files. +You can use zlib as a drop-in replacement for fread() and fwrite() if +you are so inclined. + +zlib should be available at the same place that libpng is. +If not, it should be at ftp.uu.net in /graphics/png +Eventually, it will be at ftp.uu.net in /pub/archiving/zip/zlib + +You may also want a copy of the PNG specification. It is available +as an Internet Draft, and RFC, and a W3C Recommendation. Failing +these resources you can try ftp.uu.net in the /graphics/png directory. + +This code is currently being archived at ftp.uu.net in the +/graphics/png directory, and on CompuServe, Lib 20 (PNG SUPPORT) +at GO GRAPHSUP. If you can't find it in any of those places, +e-mail me, and I'll help you find it. + +If you have any code changes, requests, problems, etc., please e-mail +them to me. Also, I'd appreciate any make files or project files, +and any modifications you needed to make to get libpng to compile, +along with a #define variable to tell what compiler/system you are on. +If you needed to add transformations to libpng, or wish libpng would +provide the image in a different way, drop me a note (and code, if +possible), so I can consider supporting the transformation. +Finally, if you get any warning messages when compiling libpng +(note: not zlib), and they are easy to fix, I'd appreciate the +fix. Please mention "libpng" somewhere in the subject line. Thanks. + +This release was created and will be supported by myself (of course +based in a large way on Guy's earlier work), and the PNG group. + +adilger@enel.ucalgary.ca +png-implement@dworkin.wustl.edu + +You can reach Guy, the original libpng author, at (internet preferred): + +internet: schalnat@group42.com +CompuServe: 75501,1625 + +Please do not send general questions about PNG. Send them to +the address in the specification. At the same time, please do +not send libpng questions to that address, send them to me. I'll +get them in the end anyway. If you have a question about something +in the PNG specification that is related to using libpng, send it +to me. Send me any questions that start with "I was using libpng, +and ...". If in doubt, send questions to me. I'll bounce them +to others, if necessary. + +Please do not send suggestions on how to change PNG. We have +been discussing PNG for a couple years now, and it is official and +finished. If you have suggestions for libpng, however, I'll +gladly listen. Even if your suggestion is not used for version +1.0, it may be used later. + +Files in this distribution: + + CHANGES.txt => Description of changes between libpng versions + README => This file + TODO => Things not implemented in the current library + ansi2knr.c => Converts files to K&R style function declarations + build.bat => MS-DOS batch file for Borland compiler + descrip.mms => VMS project file + example.c => Example code for using libpng functions + libpng.txt => Description of libpng and its functions + makefile => Defualt makefile + makefile.aco => ACORN makefile + makefile.ama => Amiga makefile + makefile.atr => Atari makefile + makefile.bor => Borland makefile + makefile.dj2 => DJGPP 2 makefile + makefile.elf => Unix ELF makefile + makefile.knr => Makefile which calls ansi2knr to convert files + makefile.mip => MIPS makefile + makefile.msc => Microsoft C makefile + makefile.std => Standard Unix makefile + makefile.tc => Turbo C makefile + makevms.com => VMS make program + png.c => Basic interface functions common to library + png.h => Library function and interface declarations + pngconf.h => System specific library configuration + pngerror.c => Error/warning message I/O functions + pngmem.c => Memory handling functions + pngpread.c => Progressive reading functions + pngrcb.c => Read callback (data handling) low-level functions + pngread.c => Read data/helper high-level functions + pngrio.c => Lowest-level data read I/O functions + pngrtran.c => Read data transformation functions + pngrutil.c => Read data utility functions + pngtest.c => Library test program + pngtest.png => Library test sample image + pngtrans.c => Common data transformation functions + pngwio.c => Lowest-level write I/O functions + pngwrite.c => High-level write functions + pngwtran.c => Write data transformations + pngwutil.c => Write utility functions + +Good luck, and happy coding. + +-Andreas Eric Dilger + University of Calgary + Internet: adilger@enel.ucalgary.ca + Web: www-mddsp.enel.ucalgary.ca/People/adilger/ + +-Guy Eric Schalnat + Group 42, Inc. + Internet: schalnat@group42.com + CompuServe: 75501,1625 + Web: www.group42.com + |