mirror of
				https://git.code.sf.net/p/libpng/code.git
				synced 2025-07-10 18:04:09 +02:00 
			
		
		
		
	Reorganize and update the README file; add Markdown formatting
This commit is contained in:
		
							parent
							
								
									3c761b5135
								
							
						
					
					
						commit
						b126f80710
					
				
							
								
								
									
										160
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										160
									
								
								README
									
									
									
									
									
								
							@ -1,57 +1,88 @@
 | 
				
			|||||||
README for libpng version 1.6.40.git
 | 
					README for libpng version 1.6.40.git
 | 
				
			||||||
====================================
 | 
					====================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
See the note about version numbers near the top of png.h.
 | 
					See the note about version numbers near the top of `png.h`.
 | 
				
			||||||
See INSTALL for instructions on how to install libpng.
 | 
					See `INSTALL` for instructions on how to install libpng.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Libpng comes in several distribution formats.  Get libpng-*.tar.gz or
 | 
					Libpng comes in several distribution formats.  Get `libpng-*.tar.gz`
 | 
				
			||||||
libpng-*.tar.xz if you want UNIX-style line endings in the text files,
 | 
					or `libpng-*.tar.xz` if you want UNIX-style line endings in the text
 | 
				
			||||||
or lpng*.7z or lpng*.zip if you want DOS-style line endings.
 | 
					files, or `lpng*.7z` or `lpng*.zip` if you want DOS-style line endings.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Version 0.89 was the first official release of libpng.  Don't let the
 | 
					For a detailed description on using libpng, read `libpng-manual.txt`.
 | 
				
			||||||
fact that it's the first release fool you.  The libpng library has been
 | 
					For examples of libpng in a program, see `example.c` and `pngtest.c`.
 | 
				
			||||||
in extensive use and testing since mid-1995.  By late 1997 it had
 | 
					For usage information and restrictions (what little they are) on libpng,
 | 
				
			||||||
finally gotten to the stage where there hadn't been significant
 | 
					see `png.h`.  For a description on using zlib (the compression library
 | 
				
			||||||
changes to the API in some time, and people have a bad feeling about
 | 
					used by libpng) and zlib's restrictions, see `zlib.h`.
 | 
				
			||||||
libraries with versions < 1.0.  Version 1.0.0 was released in
 | 
					 | 
				
			||||||
March 1998.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
****
 | 
					You should use zlib 1.0.4 or later to run this, but it _may_ work with
 | 
				
			||||||
Note that some of the changes to the png_info structure render this
 | 
					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 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, or at
 | 
				
			||||||
 | 
					https://zlib.net .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You may also want a copy of the PNG specification.  It is available
 | 
				
			||||||
 | 
					as an RFC, a W3C Recommendation, and an ISO/IEC Standard.  You can find
 | 
				
			||||||
 | 
					these at http://www.libpng.org/pub/png/pngdocs.html .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This code is currently being archived at https://libpng.sourceforge.io
 | 
				
			||||||
 | 
					in the download area, and at http://libpng.download/src .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This release, based in a large way on Glenn's, Guy's and Andreas'
 | 
				
			||||||
 | 
					earlier work, was created and will be supported by myself and the PNG
 | 
				
			||||||
 | 
					development group.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Send comments, corrections and commendations to `png-mng-implement`
 | 
				
			||||||
 | 
					at `lists.sourceforge.net`.  (Subscription is required; visit
 | 
				
			||||||
 | 
					https://lists.sourceforge.net/lists/listinfo/png-mng-implement
 | 
				
			||||||
 | 
					to subscribe.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Send general questions about the PNG specification to `png-mng-misc`
 | 
				
			||||||
 | 
					at `lists.sourceforge.net`.  (Subscription is required; visit
 | 
				
			||||||
 | 
					https://lists.sourceforge.net/lists/listinfo/png-mng-misc
 | 
				
			||||||
 | 
					to subscribe.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Historical notes
 | 
				
			||||||
 | 
					----------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The libpng library has been in extensive use and testing since mid-1995.
 | 
				
			||||||
 | 
					Version 0.89, published a year later, was the first official release.
 | 
				
			||||||
 | 
					By late 1997, it had finally gotten to the stage where there hadn't
 | 
				
			||||||
 | 
					been significant changes to the API in some time, and people have a bad
 | 
				
			||||||
 | 
					feeling about libraries with versions below 1.0.  Version 1.0.0 was
 | 
				
			||||||
 | 
					released in March 1998.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note that some of the changes to the `png_info` structure render this
 | 
				
			||||||
version of the library binary incompatible with libpng-0.89 or
 | 
					version of the library binary incompatible with libpng-0.89 or
 | 
				
			||||||
earlier versions if you are using a shared library.  The type of the
 | 
					earlier versions if you are using a shared library.  The type of the
 | 
				
			||||||
"filler" parameter for png_set_filler() has changed from png_byte to
 | 
					`filler` parameter for `png_set_filler()` has changed from `png_byte`
 | 
				
			||||||
png_uint_32, which will affect shared-library applications that use
 | 
					to `png_uint_32`, which will affect shared-library applications that
 | 
				
			||||||
this function.
 | 
					use this function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
To avoid problems with changes to the internals of the png info_struct,
 | 
					To avoid problems with changes to the internals of the `info_struct`,
 | 
				
			||||||
new APIs have been made available in 0.95 to avoid direct application
 | 
					new APIs have been made available in 0.95 to avoid direct application
 | 
				
			||||||
access to info_ptr.  These functions are the png_set_<chunk> and
 | 
					access to `info_ptr`.  These functions are the `png_set_<chunk>` and
 | 
				
			||||||
png_get_<chunk> functions.  These functions should be used when
 | 
					`png_get_<chunk>` functions.  These functions should be used when
 | 
				
			||||||
accessing/storing the info_struct data, rather than manipulating it
 | 
					accessing/storing the `info_struct` data, rather than manipulating it
 | 
				
			||||||
directly, to avoid such problems in the future.
 | 
					directly, to avoid such problems in the future.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
It is important to note that the APIs did not make current programs
 | 
					It is important to note that the APIs did not make current programs
 | 
				
			||||||
that access the info struct directly incompatible with the new
 | 
					that access the info struct directly incompatible with the new
 | 
				
			||||||
library, through libpng-1.2.x.  In libpng-1.4.x, which was meant to
 | 
					library, through libpng-1.2.x.  In libpng-1.4.x, which was meant to
 | 
				
			||||||
be a transitional release, members of the png_struct and the
 | 
					be a transitional release, members of the `png_struct` and the
 | 
				
			||||||
info_struct can still be accessed, but the compiler will issue a
 | 
					`info_struct` can still be accessed, but the compiler will issue a
 | 
				
			||||||
warning about deprecated usage.  Since libpng-1.5.0, direct access
 | 
					warning about deprecated usage.  Since libpng-1.5.0, direct access
 | 
				
			||||||
to these structs is not allowed, and the definitions of the structs
 | 
					to these structs is not allowed, and the definitions of the structs
 | 
				
			||||||
reside in private pngstruct.h and pnginfo.h header files that are not
 | 
					reside in private `pngstruct.h` and `pnginfo.h` header files that are
 | 
				
			||||||
accessible to applications.  It is strongly suggested that new
 | 
					not accessible to applications.  It is strongly suggested that new
 | 
				
			||||||
programs use the new APIs (as shown in example.c and pngtest.c), and
 | 
					programs use the new APIs (as shown in `example.c` and `pngtest.c`),
 | 
				
			||||||
older programs be converted to the new format, to facilitate upgrades
 | 
					and older programs be converted to the new format, to facilitate
 | 
				
			||||||
in the future.
 | 
					upgrades in the future.
 | 
				
			||||||
****
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions since 0.90 include the ability to compile libpng as a
 | 
					 | 
				
			||||||
Windows DLL, and new APIs for accessing data in the info struct.
 | 
					 | 
				
			||||||
Experimental functions include the ability to set weighting and cost
 | 
					 | 
				
			||||||
factors for row filter selection, direct reads of integers from buffers
 | 
					 | 
				
			||||||
on big-endian processors that support misaligned data access, faster
 | 
					 | 
				
			||||||
methods of doing alpha composition, and more accurate 16->8 bit color
 | 
					 | 
				
			||||||
conversion.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
The additions since 0.89 include the ability to read from a PNG stream
 | 
					The additions since 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
 | 
					which has had some (or all) of the signature bytes read by the calling
 | 
				
			||||||
@ -61,50 +92,17 @@ the library action on the detection of chunk CRC errors.  It is possible
 | 
				
			|||||||
to set different actions based on whether the CRC error occurred in a
 | 
					to set different actions based on whether the CRC error occurred in a
 | 
				
			||||||
critical or an ancillary chunk.
 | 
					critical or an ancillary chunk.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For a detailed description on using libpng, read libpng-manual.txt.
 | 
					The additions since 0.90 include the ability to compile libpng as a
 | 
				
			||||||
For examples of libpng in a program, see example.c and pngtest.c.  For
 | 
					Windows DLL, and new APIs for accessing data in the `info_struct`.
 | 
				
			||||||
usage information and restrictions (what little they are) on libpng,
 | 
					Experimental functions included the ability to set weighting and cost
 | 
				
			||||||
see png.h.  For a description on using zlib (the compression library
 | 
					factors for row filter selection, direct reads of integers from buffers
 | 
				
			||||||
used by libpng) and zlib's restrictions, see zlib.h
 | 
					on big-endian processors that support misaligned data access, faster
 | 
				
			||||||
 | 
					methods of doing alpha composition, and more accurate 16-to-8 bit color
 | 
				
			||||||
 | 
					conversion.  Some of these experimental functions, such as the weighted
 | 
				
			||||||
 | 
					filter heuristics, have since been removed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
I have included a general makefile, as well as several machine and
 | 
					Files included in this distribution
 | 
				
			||||||
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 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, or at
 | 
					 | 
				
			||||||
https://zlib.net.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
You may also want a copy of the PNG specification.  It is available
 | 
					 | 
				
			||||||
as an RFC, a W3C Recommendation, and an ISO/IEC Standard.  You can find
 | 
					 | 
				
			||||||
these at http://www.libpng.org/pub/png/pngdocs.html .
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This code is currently being archived at libpng.sourceforge.io in the
 | 
					 | 
				
			||||||
[DOWNLOAD] area, and at http://libpng.download/src .
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This release, based in a large way on Glenn's, Guy's and Andreas'
 | 
					 | 
				
			||||||
earlier work, was created and will be supported by myself and the PNG
 | 
					 | 
				
			||||||
development group.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Send comments/corrections/commendations to png-mng-implement at
 | 
					 | 
				
			||||||
lists.sourceforge.net (subscription required; visit
 | 
					 | 
				
			||||||
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
 | 
					 | 
				
			||||||
to subscribe).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Send general questions about the PNG specification to png-mng-misc
 | 
					 | 
				
			||||||
at lists.sourceforge.net (subscription required; visit
 | 
					 | 
				
			||||||
https://lists.sourceforge.net/lists/listinfo/png-mng-misc to
 | 
					 | 
				
			||||||
subscribe).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Files in this distribution:
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ANNOUNCE      =>  Announcement of this version, with recent changes
 | 
					    ANNOUNCE      =>  Announcement of this version, with recent changes
 | 
				
			||||||
    AUTHORS       =>  List of contributing authors
 | 
					    AUTHORS       =>  List of contributing authors
 | 
				
			||||||
@ -153,7 +151,7 @@ Files in this distribution:
 | 
				
			|||||||
        arm-neon/     =>  Optimized code for the ARM-NEON platform
 | 
					        arm-neon/     =>  Optimized code for the ARM-NEON platform
 | 
				
			||||||
        mips-msa/     =>  Optimized code for the MIPS-MSA platform
 | 
					        mips-msa/     =>  Optimized code for the MIPS-MSA platform
 | 
				
			||||||
        powerpc-vsx/  =>  Optimized code for the POWERPC-VSX platform
 | 
					        powerpc-vsx/  =>  Optimized code for the POWERPC-VSX platform
 | 
				
			||||||
        examples/     =>  Example programs
 | 
					        examples/     =>  Examples of libpng usage
 | 
				
			||||||
        gregbook/     =>  Source code for PNG reading and writing, from
 | 
					        gregbook/     =>  Source code for PNG reading and writing, from
 | 
				
			||||||
                          "PNG: The Definitive Guide" by Greg Roelofs,
 | 
					                          "PNG: The Definitive Guide" by Greg Roelofs,
 | 
				
			||||||
                          O'Reilly, 1999
 | 
					                          O'Reilly, 1999
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user