src/java.desktop/share/native/libsplashscreen/libpng/README
author serb
Wed, 12 Jun 2019 13:50:37 -0700
changeset 57618 53154e45385a
parent 51304 66d9993dd4ad
permissions -rw-r--r--
8217676: Upgrade libpng to 1.6.37 Reviewed-by: prr, jdv, kcr
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
     1
README for libpng version 1.6.37 - April 14, 2019
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
     2
=================================================
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     3
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
     4
See the note about version numbers near the top of png.h.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     5
See INSTALL for instructions on how to install libpng.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     6
29913
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
     7
Libpng comes in several distribution formats.  Get libpng-*.tar.gz or
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
     8
libpng-*.tar.xz or if you want UNIX-style line endings in the text
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
     9
files, or lpng*.7z or lpng*.zip if you want DOS-style line endings.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    10
90ce3da70b43 Initial load
duke
parents:
diff changeset
    11
Version 0.89 was the first official release of libpng.  Don't let the
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    12
fact that it's the first release fool you.  The libpng library has been
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    13
in extensive use and testing since mid-1995.  By late 1997 it had
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    14
finally gotten to the stage where there hadn't been significant
90ce3da70b43 Initial load
duke
parents:
diff changeset
    15
changes to the API in some time, and people have a bad feeling about
90ce3da70b43 Initial load
duke
parents:
diff changeset
    16
libraries with versions < 1.0.  Version 1.0.0 was released in
90ce3da70b43 Initial load
duke
parents:
diff changeset
    17
March 1998.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    18
90ce3da70b43 Initial load
duke
parents:
diff changeset
    19
****
90ce3da70b43 Initial load
duke
parents:
diff changeset
    20
Note that some of the changes to the png_info structure render this
90ce3da70b43 Initial load
duke
parents:
diff changeset
    21
version of the library binary incompatible with libpng-0.89 or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    22
earlier versions if you are using a shared library.  The type of the
90ce3da70b43 Initial load
duke
parents:
diff changeset
    23
"filler" parameter for png_set_filler() has changed from png_byte to
90ce3da70b43 Initial load
duke
parents:
diff changeset
    24
png_uint_32, which will affect shared-library applications that use
90ce3da70b43 Initial load
duke
parents:
diff changeset
    25
this function.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    26
48280
791d551bcdb8 8183960: Upgrade to libpng 1.6.34
prr
parents: 47216
diff changeset
    27
To avoid problems with changes to the internals of the png info_struct,
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    28
new APIs have been made available in 0.95 to avoid direct application
90ce3da70b43 Initial load
duke
parents:
diff changeset
    29
access to info_ptr.  These functions are the png_set_<chunk> and
90ce3da70b43 Initial load
duke
parents:
diff changeset
    30
png_get_<chunk> functions.  These functions should be used when
90ce3da70b43 Initial load
duke
parents:
diff changeset
    31
accessing/storing the info_struct data, rather than manipulating it
90ce3da70b43 Initial load
duke
parents:
diff changeset
    32
directly, to avoid such problems in the future.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    33
29913
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
    34
It is important to note that the APIs did not make current programs
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    35
that access the info struct directly incompatible with the new
29913
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
    36
library, through libpng-1.2.x.  In libpng-1.4.x, which was meant to
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
    37
be a transitional release, members of the png_struct and the
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
    38
info_struct can still be accessed, but the compiler will issue a
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
    39
warning about deprecated usage.  Since libpng-1.5.0, direct access
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
    40
to these structs is not allowed, and the definitions of the structs
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
    41
reside in private pngstruct.h and pnginfo.h header files that are not
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
    42
accessible to applications.  It is strongly suggested that new
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
    43
programs use the new APIs (as shown in example.c and pngtest.c), and
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
    44
older programs be converted to the new format, to facilitate upgrades
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
    45
in the future.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    46
****
90ce3da70b43 Initial load
duke
parents:
diff changeset
    47
90ce3da70b43 Initial load
duke
parents:
diff changeset
    48
Additions since 0.90 include the ability to compile libpng as a
90ce3da70b43 Initial load
duke
parents:
diff changeset
    49
Windows DLL, and new APIs for accessing data in the info struct.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    50
Experimental functions include the ability to set weighting and cost
90ce3da70b43 Initial load
duke
parents:
diff changeset
    51
factors for row filter selection, direct reads of integers from buffers
90ce3da70b43 Initial load
duke
parents:
diff changeset
    52
on big-endian processors that support misaligned data access, faster
90ce3da70b43 Initial load
duke
parents:
diff changeset
    53
methods of doing alpha composition, and more accurate 16->8 bit color
90ce3da70b43 Initial load
duke
parents:
diff changeset
    54
conversion.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    55
90ce3da70b43 Initial load
duke
parents:
diff changeset
    56
The additions since 0.89 include the ability to read from a PNG stream
90ce3da70b43 Initial load
duke
parents:
diff changeset
    57
which has had some (or all) of the signature bytes read by the calling
90ce3da70b43 Initial load
duke
parents:
diff changeset
    58
application.  This also allows the reading of embedded PNG streams that
90ce3da70b43 Initial load
duke
parents:
diff changeset
    59
do not have the PNG file signature.  As well, it is now possible to set
90ce3da70b43 Initial load
duke
parents:
diff changeset
    60
the library action on the detection of chunk CRC errors.  It is possible
90ce3da70b43 Initial load
duke
parents:
diff changeset
    61
to set different actions based on whether the CRC error occurred in a
90ce3da70b43 Initial load
duke
parents:
diff changeset
    62
critical or an ancillary chunk.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    63
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    64
For a detailed description on using libpng, read libpng-manual.txt.
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    65
For examples of libpng in a program, see example.c and pngtest.c.  For
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    66
usage information and restrictions (what little they are) on libpng,
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    67
see png.h.  For a description on using zlib (the compression library
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    68
used by libpng) and zlib's restrictions, see zlib.h
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    69
90ce3da70b43 Initial load
duke
parents:
diff changeset
    70
I have included a general makefile, as well as several machine and
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    71
compiler specific ones, but you may have to modify one for your own
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    72
needs.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    73
90ce3da70b43 Initial load
duke
parents:
diff changeset
    74
You should use zlib 1.0.4 or later to run this, but it MAY work with
90ce3da70b43 Initial load
duke
parents:
diff changeset
    75
versions as old as zlib 0.95.  Even so, there are bugs in older zlib
90ce3da70b43 Initial load
duke
parents:
diff changeset
    76
versions which can cause the output of invalid compression streams for
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    77
some images.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    78
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    79
You should also note that zlib is a compression library that is useful
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    80
for more things than just PNG files.  You can use zlib as a drop-in
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    81
replacement for fread() and fwrite(), if you are so inclined.
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    82
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    83
zlib should be available at the same place that libpng is, or at
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    84
https://zlib.net.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    85
90ce3da70b43 Initial load
duke
parents:
diff changeset
    86
You may also want a copy of the PNG specification.  It is available
90ce3da70b43 Initial load
duke
parents:
diff changeset
    87
as an RFC, a W3C Recommendation, and an ISO/IEC Standard.  You can find
48280
791d551bcdb8 8183960: Upgrade to libpng 1.6.34
prr
parents: 47216
diff changeset
    88
these at http://www.libpng.org/pub/png/pngdocs.html .
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    89
48280
791d551bcdb8 8183960: Upgrade to libpng 1.6.34
prr
parents: 47216
diff changeset
    90
This code is currently being archived at libpng.sourceforge.io in the
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    91
[DOWNLOAD] area, and at http://libpng.download/src .
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    92
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    93
This release, based in a large way on Glenn's, Guy's and Andreas'
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
    94
earlier work, was created and will be supported by myself and the PNG
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
    95
development group.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    96
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
    97
Send comments/corrections/commendations to png-mng-implement at
29913
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
    98
lists.sourceforge.net (subscription required; visit
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    99
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
51304
66d9993dd4ad 8208353: Upgrade JDK 11 to libpng 1.6.35
prr
parents: 48280
diff changeset
   100
to subscribe).
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   101
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
   102
Send general questions about the PNG specification to png-mng-misc
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
   103
at lists.sourceforge.net (subscription required; visit
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   104
https://lists.sourceforge.net/lists/listinfo/png-mng-misc to
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
   105
subscribe).
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   106
90ce3da70b43 Initial load
duke
parents:
diff changeset
   107
Files in this distribution:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   108
90ce3da70b43 Initial load
duke
parents:
diff changeset
   109
      ANNOUNCE      =>  Announcement of this version, with recent changes
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
   110
      AUTHORS       =>  List of contributing authors
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   111
      CHANGES       =>  Description of changes between libpng versions
90ce3da70b43 Initial load
duke
parents:
diff changeset
   112
      KNOWNBUG      =>  List of known bugs and deficiencies
90ce3da70b43 Initial load
duke
parents:
diff changeset
   113
      LICENSE       =>  License to use and redistribute libpng
90ce3da70b43 Initial load
duke
parents:
diff changeset
   114
      README        =>  This file
90ce3da70b43 Initial load
duke
parents:
diff changeset
   115
      TODO          =>  Things not implemented in the current library
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
   116
      TRADEMARK     =>  Trademark information
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   117
      example.c     =>  Example code for using libpng functions
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   118
      libpng.3      =>  manual page for libpng (includes libpng-manual.txt)
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   119
      libpng-manual.txt  =>  Description of libpng and its functions
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   120
      libpngpf.3    =>  manual page for libpng's private functions
90ce3da70b43 Initial load
duke
parents:
diff changeset
   121
      png.5         =>  manual page for the PNG format
90ce3da70b43 Initial load
duke
parents:
diff changeset
   122
      png.c         =>  Basic interface functions common to library
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   123
      png.h         =>  Library function and interface declarations (public)
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   124
      pngpriv.h     =>  Library function and interface declarations (private)
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   125
      pngconf.h     =>  System specific library configuration (public)
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   126
      pngstruct.h   =>  png_struct declaration (private)
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   127
      pnginfo.h     =>  png_info struct declaration (private)
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   128
      pngdebug.h    =>  debugging macros (private)
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   129
      pngerror.c    =>  Error/warning message I/O functions
90ce3da70b43 Initial load
duke
parents:
diff changeset
   130
      pngget.c      =>  Functions for retrieving info from struct
90ce3da70b43 Initial load
duke
parents:
diff changeset
   131
      pngmem.c      =>  Memory handling functions
90ce3da70b43 Initial load
duke
parents:
diff changeset
   132
      pngbar.png    =>  PNG logo, 88x31
90ce3da70b43 Initial load
duke
parents:
diff changeset
   133
      pngnow.png    =>  PNG logo, 98x31
90ce3da70b43 Initial load
duke
parents:
diff changeset
   134
      pngpread.c    =>  Progressive reading functions
90ce3da70b43 Initial load
duke
parents:
diff changeset
   135
      pngread.c     =>  Read data/helper high-level functions
90ce3da70b43 Initial load
duke
parents:
diff changeset
   136
      pngrio.c      =>  Lowest-level data read I/O functions
90ce3da70b43 Initial load
duke
parents:
diff changeset
   137
      pngrtran.c    =>  Read data transformation functions
90ce3da70b43 Initial load
duke
parents:
diff changeset
   138
      pngrutil.c    =>  Read data utility functions
90ce3da70b43 Initial load
duke
parents:
diff changeset
   139
      pngset.c      =>  Functions for storing data into the info_struct
90ce3da70b43 Initial load
duke
parents:
diff changeset
   140
      pngtest.c     =>  Library test program
90ce3da70b43 Initial load
duke
parents:
diff changeset
   141
      pngtest.png   =>  Library test sample image
90ce3da70b43 Initial load
duke
parents:
diff changeset
   142
      pngtrans.c    =>  Common data transformation functions
90ce3da70b43 Initial load
duke
parents:
diff changeset
   143
      pngwio.c      =>  Lowest-level write I/O functions
90ce3da70b43 Initial load
duke
parents:
diff changeset
   144
      pngwrite.c    =>  High-level write functions
90ce3da70b43 Initial load
duke
parents:
diff changeset
   145
      pngwtran.c    =>  Write data transformations
90ce3da70b43 Initial load
duke
parents:
diff changeset
   146
      pngwutil.c    =>  Write utility functions
29913
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
   147
      arm           =>  Contains optimized code for the ARM platform
48280
791d551bcdb8 8183960: Upgrade to libpng 1.6.34
prr
parents: 47216
diff changeset
   148
      powerpc       =>  Contains optimized code for the PowerPC platform
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   149
      contrib       =>  Contributions
43321
2b8d397c03a4 8167228: Update to libpng 1.6.28
prr
parents: 40436
diff changeset
   150
       arm-neon         =>  Optimized code for ARM-NEON platform
48280
791d551bcdb8 8183960: Upgrade to libpng 1.6.34
prr
parents: 47216
diff changeset
   151
       powerpc-vsx      =>  Optimized code for POWERPC-VSX platform
29913
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
   152
       examples         =>  Example programs
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   153
       gregbook         =>  source code for PNG reading and writing, from
90ce3da70b43 Initial load
duke
parents:
diff changeset
   154
                            Greg Roelofs' "PNG: The Definitive Guide",
90ce3da70b43 Initial load
duke
parents:
diff changeset
   155
                            O'Reilly, 1999
29913
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
   156
       libtests         =>  Test programs
48280
791d551bcdb8 8183960: Upgrade to libpng 1.6.34
prr
parents: 47216
diff changeset
   157
       mips-msa         =>  Optimized code for MIPS-MSA platform
29913
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
   158
       pngminim         =>  Minimal decoder, encoder, and progressive decoder
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
   159
                            programs demonstrating use of pngusr.dfa
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
   160
       pngminus         =>  Simple pnm2png and png2pnm programs
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
   161
       pngsuite         =>  Test images
43321
2b8d397c03a4 8167228: Update to libpng 1.6.28
prr
parents: 40436
diff changeset
   162
       testpngs
29913
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
   163
       tools            =>  Various tools
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
   164
       visupng          =>  Contains a MSVC workspace for VisualPng
48280
791d551bcdb8 8183960: Upgrade to libpng 1.6.34
prr
parents: 47216
diff changeset
   165
      intel             =>  Optimized code for INTEL-SSE2 platform
791d551bcdb8 8183960: Upgrade to libpng 1.6.34
prr
parents: 47216
diff changeset
   166
      mips              =>  Optimized code for MIPS platform
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   167
      projects      =>  Contains project files and workspaces for
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   168
                        building a DLL
29913
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
   169
       owatcom          =>  Contains a WATCOM project for building libpng
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   170
       visualc71        =>  Contains a Microsoft Visual C++ (MSVC)
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   171
                            workspace for building libpng and zlib
29913
95258013e132 8069198: Upgrade image library
azvegint
parents: 25859
diff changeset
   172
       vstudio          =>  Contains a Microsoft Visual C++ (MSVC)
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   173
                            workspace for building libpng and zlib
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   174
      scripts       =>  Directory containing scripts for building libpng:
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 2
diff changeset
   175
                            (see scripts/README.txt for the list of scripts)
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   176
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
   177
Good luck, and happy coding!
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   178
57618
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
   179
 * Cosmin Truta (current maintainer, since 2018)
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
   180
 * Glenn Randers-Pehrson (former maintainer, 1998-2018)
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
   181
 * Andreas Eric Dilger (former maintainer, 1996-1997)
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
   182
 * Guy Eric Schalnat (original author and former maintainer, 1995-1996)
53154e45385a 8217676: Upgrade libpng to 1.6.37
serb
parents: 51304
diff changeset
   183
   (formerly of Group 42, Inc.)