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