1 README for libpng version 1.2.40 - September 10, 2009 (shared library 12.0) |
1 README for libpng version 1.4.0 - January 3, 2010 (shared library 14.0) |
2 See the note about version numbers near the top of png.h |
2 See the note about version numbers near the top of png.h |
3 |
3 |
4 See INSTALL for instructions on how to install libpng. |
4 See INSTALL for instructions on how to install libpng. |
5 |
5 |
6 Libpng comes in several distribution formats. Get libpng-*.tar.gz, |
6 Libpng comes in several distribution formats. Get libpng-*.tar.gz, |
7 libpng-*.tar.lzma, or libpng-*.tar.bz2 if you want UNIX-style line |
7 libpng-*.tar.xz or libpng-*.tar.bz2 if you want UNIX-style line endings |
8 endings in the text files, or lpng*.7z or lpng*.zip if you want DOS-style |
8 in the text files, or lpng*.zip if you want DOS-style line endings. |
9 line endings. You can get UNIX-style line endings from the *.zip file |
|
10 by using "unzip -a" but there seems to be no simple way to recover |
|
11 UNIX-style line endings from the *.7z file. The *.tar.lzma file is |
|
12 recommended for *NIX users instead. |
|
13 |
9 |
14 Version 0.89 was the first official release of libpng. Don't let the |
10 Version 0.89 was the first official release of libpng. Don't let the |
15 fact that it's the first release fool you. The libpng library has been in |
11 fact that it's the first release fool you. The libpng library has been in |
16 extensive use and testing since mid-1995. By late 1997 it had |
12 extensive use and testing since mid-1995. By late 1997 it had |
17 finally gotten to the stage where there hadn't been significant |
13 finally gotten to the stage where there hadn't been significant |
56 the library action on the detection of chunk CRC errors. It is possible |
52 the library action on the detection of chunk CRC errors. It is possible |
57 to set different actions based on whether the CRC error occurred in a |
53 to set different actions based on whether the CRC error occurred in a |
58 critical or an ancillary chunk. |
54 critical or an ancillary chunk. |
59 |
55 |
60 The changes made to the library, and bugs fixed are based on discussions |
56 The changes made to the library, and bugs fixed are based on discussions |
61 on the png-mng-implement mailing list |
57 on the PNG-implement mailing list and not on material submitted |
62 and not on material submitted privately to Guy, Andreas, or Glenn. They will |
58 privately to Guy, Andreas, or Glenn. They will forward any good |
63 forward any good suggestions to the list. |
59 suggestions to the list. |
64 |
60 |
65 For a detailed description on using libpng, read libpng.txt. For |
61 For a detailed description on using libpng, read libpng.txt. For |
66 examples of libpng in a program, see example.c and pngtest.c. For usage |
62 examples of libpng in a program, see example.c and pngtest.c. For usage |
67 information and restrictions (what little they are) on libpng, see |
63 information and restrictions (what little they are) on libpng, see |
68 png.h. For a description on using zlib (the compression library used by |
64 png.h. For a description on using zlib (the compression library used by |
79 and medium memory models. You should also note that zlib is a |
75 and medium memory models. You should also note that zlib is a |
80 compression library that is useful for more things than just PNG files. |
76 compression library that is useful for more things than just PNG files. |
81 You can use zlib as a drop-in replacement for fread() and fwrite() if |
77 You can use zlib as a drop-in replacement for fread() and fwrite() if |
82 you are so inclined. |
78 you are so inclined. |
83 |
79 |
84 zlib should be available at the same place that libpng is, or at |
80 zlib should be available at the same place that libpng is, or at. |
85 ftp://ftp.simplesystems.org/pub/png/src/ |
81 ftp://ftp.info-zip.org/pub/infozip/zlib |
86 |
82 |
87 You may also want a copy of the PNG specification. It is available |
83 You may also want a copy of the PNG specification. It is available |
88 as an RFC, a W3C Recommendation, and an ISO/IEC Standard. You can find |
84 as an RFC, a W3C Recommendation, and an ISO/IEC Standard. You can find |
89 these at http://www.libpng.org/pub/png/pngdocs.html |
85 these at http://www.libpng.org/pub/png/documents/ |
90 |
86 |
91 This code is currently being archived at libpng.sf.net in the |
87 This code is currently being archived at libpng.sf.net in the |
92 [DOWNLOAD] area, and on CompuServe, Lib 20 (PNG SUPPORT) |
88 [DOWNLOAD] area, and on CompuServe, Lib 20 (PNG SUPPORT) |
93 at GO GRAPHSUP. If you can't find it in any of those places, |
89 at GO GRAPHSUP. If you can't find it in any of those places, |
94 e-mail me, and I'll help you find it. |
90 e-mail me, and I'll help you find it. |
103 Finally, if you get any warning messages when compiling libpng |
99 Finally, if you get any warning messages when compiling libpng |
104 (note: not zlib), and they are easy to fix, I'd appreciate the |
100 (note: not zlib), and they are easy to fix, I'd appreciate the |
105 fix. Please mention "libpng" somewhere in the subject line. Thanks. |
101 fix. Please mention "libpng" somewhere in the subject line. Thanks. |
106 |
102 |
107 This release was created and will be supported by myself (of course |
103 This release was created and will be supported by myself (of course |
108 based in a large way on Guy's and Andreas' earlier work), and the PNG group. |
104 based in a large way on Guy's and Andreas' earlier work), and the PNG |
109 |
105 development group. |
110 Send comments/corrections/commendations to png-mng-implement at lists.sf.net |
106 |
111 (subscription required; visit |
107 Send comments/corrections/commendations to png-mng-implement at |
|
108 lists.sourceforge.net (subscription required; visit |
112 https://lists.sourceforge.net/lists/listinfo/png-mng-implement |
109 https://lists.sourceforge.net/lists/listinfo/png-mng-implement |
113 to subscribe) or to glennrp at users.sourceforge.net |
110 to subscribe) or to glennrp at users.sourceforge.net |
114 |
111 |
115 You can't reach Guy, the original libpng author, at the addresses |
112 You can't reach Guy, the original libpng author, at the addresses |
116 given in previous versions of this document. He and Andreas will read mail |
113 given in previous versions of this document. He and Andreas will |
117 addressed to the png-mng-implement list, however. |
114 read mail addressed to the png-implement list, however. |
118 |
115 |
119 Please do not send general questions about PNG. Send them to |
116 Please do not send general questions about PNG. Send them to |
120 the (png-mng-misc at lists.sourceforge.net, subscription required, visit |
117 the (png-list at ccrc.wustl.edu, subscription required, write to |
121 https://lists.sourceforge.net/lists/listinfo/png-mng-implement to subscribe) |
118 majordomo at ccrc.wustl.edu with "subscribe png-list" in your message). |
122 On the other hand, |
119 On the other hand, |
123 please do not send libpng questions to that address, send them to me |
120 please do not send libpng questions to that address, send them to me |
124 or to the png-mng-implement list. I'll |
121 or to the png-implement list. I'll |
125 get them in the end anyway. If you have a question about something |
122 get them in the end anyway. If you have a question about something |
126 in the PNG specification that is related to using libpng, send it |
123 in the PNG specification that is related to using libpng, send it |
127 to me. Send me any questions that start with "I was using libpng, |
124 to me. Send me any questions that start with "I was using libpng, |
128 and ...". If in doubt, send questions to me. I'll bounce them |
125 and ...". If in doubt, send questions to me. I'll bounce them |
129 to others, if necessary. |
126 to others, if necessary. |
130 |
127 |
131 Please do not send suggestions on how to change PNG. We have |
128 Please do not send suggestions on how to change PNG. We have |
132 been discussing PNG for twelve years now, and it is official and |
129 been discussing PNG for nine years now, and it is official and |
133 finished. If you have suggestions for libpng, however, I'll |
130 finished. If you have suggestions for libpng, however, I'll |
134 gladly listen. Even if your suggestion is not used immediately, |
131 gladly listen. Even if your suggestion is not used immediately, |
135 it may be used later. |
132 it may be used later. |
136 |
133 |
137 Files in this distribution: |
134 Files in this distribution: |
142 LICENSE => License to use and redistribute libpng |
139 LICENSE => License to use and redistribute libpng |
143 README => This file |
140 README => This file |
144 TODO => Things not implemented in the current library |
141 TODO => Things not implemented in the current library |
145 Y2KINFO => Statement of Y2K compliance |
142 Y2KINFO => Statement of Y2K compliance |
146 example.c => Example code for using libpng functions |
143 example.c => Example code for using libpng functions |
147 libpng-*-*-diff.txt => Diff from previous release |
|
148 libpng.3 => manual page for libpng (includes libpng.txt) |
144 libpng.3 => manual page for libpng (includes libpng.txt) |
149 libpng.txt => Description of libpng and its functions |
145 libpng.txt => Description of libpng and its functions |
150 libpngpf.3 => manual page for libpng's private functions |
146 libpngpf.3 => manual page for libpng's private functions |
151 png.5 => manual page for the PNG format |
147 png.5 => manual page for the PNG format |
152 png.c => Basic interface functions common to library |
148 png.c => Basic interface functions common to library |
176 O'Reilly, 1999 |
172 O'Reilly, 1999 |
177 msvctest => Builds and runs pngtest using a MSVC workspace |
173 msvctest => Builds and runs pngtest using a MSVC workspace |
178 pngminus => Simple pnm2png and png2pnm programs |
174 pngminus => Simple pnm2png and png2pnm programs |
179 pngsuite => Test images |
175 pngsuite => Test images |
180 visupng => Contains a MSVC workspace for VisualPng |
176 visupng => Contains a MSVC workspace for VisualPng |
181 projects => Contains project files and workspaces for building DLL |
177 projects => Contains project files and workspaces for |
182 beos => Contains a Beos workspace for building libpng |
178 building a DLL |
183 c5builder => Contains a Borland workspace for building libpng |
179 c5builder => Contains a Borland workspace for building |
184 and zlib |
180 libpng and zlib |
185 visualc6 => Contains a Microsoft Visual C++ (MSVC) workspace |
181 visualc6 => Contains a Microsoft Visual C++ (MSVC) |
186 for building libpng and zlib |
182 workspace for building libpng and zlib |
187 netware.txt => Contains instructions for downloading a set of |
|
188 project files for building libpng and zlib on |
|
189 Netware. |
|
190 wince.txt => Contains instructions for downloading a Microsoft |
|
191 Visual C++ (Windows CD Toolkit) workspace for |
|
192 building libpng and zlib on WindowsCE |
|
193 scripts => Directory containing scripts for building libpng: |
183 scripts => Directory containing scripts for building libpng: |
194 descrip.mms => VMS makefile for MMS or MMK |
184 descrip.mms => VMS makefile for MMS or MMK |
195 makefile.std => Generic UNIX makefile (cc, creates static libpng.a) |
185 makefile.std => Generic UNIX makefile (cc, creates static |
|
186 libpng.a) |
196 makefile.elf => Linux/ELF makefile symbol versioning, |
187 makefile.elf => Linux/ELF makefile symbol versioning, |
197 gcc, creates libpng12.so.0.1.2.40) |
188 gcc, creates libpng14.so.14.1.4.0) |
198 makefile.linux => Linux/ELF makefile |
189 makefile.linux => Linux/ELF makefile |
199 (gcc, creates libpng12.so.0.1.2.40) |
190 (gcc, creates libpng14.so.14.1.4.0) |
200 makefile.gcmmx => Linux/ELF makefile |
|
201 (gcc, creates libpng12.so.0.1.2.40, |
|
202 uses assembler code tuned for Intel MMX platform) |
|
203 makefile.gcc => Generic makefile (gcc, creates static libpng.a) |
191 makefile.gcc => Generic makefile (gcc, creates static libpng.a) |
204 makefile.knr => Archaic UNIX Makefile that converts files with |
192 makefile.knr => Archaic UNIX Makefile that converts files with |
205 ansi2knr (Requires ansi2knr.c from |
193 ansi2knr (Requires ansi2knr.c from |
206 ftp://ftp.cs.wisc.edu/ghost) |
194 ftp://ftp.cs.wisc.edu/ghost) |
207 makefile.aix => AIX makefile |
195 makefile.aix => AIX makefile |
212 makefile.hpgcc => HPUX makefile using gcc |
200 makefile.hpgcc => HPUX makefile using gcc |
213 makefile.hpux => HPUX (10.20 and 11.00) makefile |
201 makefile.hpux => HPUX (10.20 and 11.00) makefile |
214 makefile.hp64 => HPUX (10.20 and 11.00) makefile, 64 bit |
202 makefile.hp64 => HPUX (10.20 and 11.00) makefile, 64 bit |
215 makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 (static) |
203 makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 (static) |
216 makefile.intel => Intel C/C++ version 4.0 and later |
204 makefile.intel => Intel C/C++ version 4.0 and later |
217 libpng.icc => Project file, IBM VisualAge/C++ 4.0 or later |
205 makefile.mingw => Mingw/gcc makefile |
218 makefile.netbsd => NetBSD/cc makefile, PNGGCCRD, makes libpng.so. |
206 makefile.netbsd => NetBSD/cc makefile, makes libpng.so. |
219 makefile.ne12bsd => NetBSD/cc makefile, PNGGCCRD, makes libpng12.so |
207 makefile.ne14bsd => NetBSD/cc makefile, makes |
|
208 libpng14.so |
220 makefile.openbsd => OpenBSD makefile |
209 makefile.openbsd => OpenBSD makefile |
221 makefile.sgi => Silicon Graphics IRIX (cc, creates static lib) |
210 makefile.sgi => Silicon Graphics IRIX (cc, creates static lib) |
222 makefile.sggcc => Silicon Graphics |
211 makefile.sggcc => Silicon Graphics |
223 (gcc, creates libpng12.so.0.1.2.40) |
212 (gcc, creates libpng14.so.14.1.4.0) |
224 makefile.sunos => Sun makefile |
213 makefile.sunos => Sun makefile |
225 makefile.solaris => Solaris 2.X makefile |
214 makefile.solaris => Solaris 2.X makefile |
226 (gcc, creates libpng12.so.0.1.2.40) |
215 (gcc, creates libpng14.so.14.1.4.0) |
227 makefile.so9 => Solaris 9 makefile |
216 makefile.so9 => Solaris 9 makefile |
228 (gcc, creates libpng12.so.0.1.2.40) |
217 (gcc, creates libpng14.so.14.1.4.0) |
229 makefile.32sunu => Sun Ultra 32-bit makefile |
218 makefile.32sunu => Sun Ultra 32-bit makefile |
230 makefile.64sunu => Sun Ultra 64-bit makefile |
219 makefile.64sunu => Sun Ultra 64-bit makefile |
231 makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc |
220 makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc |
232 makefile.mips => MIPS makefile |
221 makefile.mips => MIPS makefile |
233 makefile.acorn => Acorn makefile |
222 makefile.acorn => Acorn makefile |
240 makefile.bor => Borland makefile (uses bcc) |
229 makefile.bor => Borland makefile (uses bcc) |
241 makefile.bc32 => 32-bit Borland C++ (all modules compiled in C mode) |
230 makefile.bc32 => 32-bit Borland C++ (all modules compiled in C mode) |
242 makefile.tc3 => Turbo C 3.0 makefile |
231 makefile.tc3 => Turbo C 3.0 makefile |
243 makefile.dj2 => DJGPP 2 makefile |
232 makefile.dj2 => DJGPP 2 makefile |
244 makefile.msc => Microsoft C makefile |
233 makefile.msc => Microsoft C makefile |
245 makefile.vcawin32=> makefile for Microsoft Visual C++ 5.0 and |
|
246 later (uses assembler code tuned for Intel MMX |
|
247 platform) |
|
248 makefile.vcwin32 => makefile for Microsoft Visual C++ 4.0 and |
234 makefile.vcwin32 => makefile for Microsoft Visual C++ 4.0 and |
249 later (does not use assembler code) |
235 later (does not use assembler code) |
250 makefile.os2 => OS/2 Makefile (gcc and emx, requires pngos2.def) |
236 makefile.os2 => OS/2 Makefile (gcc and emx, requires pngos2.def) |
251 pngos2.def => OS/2 module definition file used by makefile.os2 |
237 png32ce.def => module definition for makefile.cegccg |
|
238 pngos2.def => OS/2 module definition file used by |
|
239 makefile.os2 |
|
240 pngwin.def => module definition file used by |
|
241 makefile.cygwin and makefile.mingw |
252 makefile.watcom => Watcom 10a+ Makefile, 32-bit flat memory model |
242 makefile.watcom => Watcom 10a+ Makefile, 32-bit flat memory model |
253 makevms.com => VMS build script |
243 makevms.com => VMS build script |
254 SCOPTIONS.ppc => Used with smakefile.ppc |
244 SCOPTIONS.ppc => Used with smakefile.ppc |
255 |
245 |
256 Good luck, and happy coding. |
246 Good luck, and happy coding. |
257 |
247 |
258 -Glenn Randers-Pehrson (current maintainer) |
248 -Glenn Randers-Pehrson (current maintainer, since 1998) |
259 Internet: glennrp at users.sourceforge.net |
249 Internet: glennrp at users.sourceforge.net |
260 |
250 |
261 -Andreas Eric Dilger (former maintainer, 1996-1997) |
251 -Andreas Eric Dilger (former maintainer, 1996-1997) |
262 Internet: adilger at enel.ucalgary.ca |
252 Internet: adilger at enel.ucalgary.ca |
263 Web: http://members.shaw.ca/adilger/ |
253 Web: http://www-mddsp.enel.ucalgary.ca/People/adilger/ |
264 |
254 |
265 -Guy Eric Schalnat (original author and former maintainer, 1995-1996) |
255 -Guy Eric Schalnat (original author and former maintainer, 1995-1996) |
266 (formerly of Group 42, Inc) |
256 (formerly of Group 42, Inc) |
267 Internet: gschal at infinet.com |
257 Internet: gschal at infinet.com |