diff --git a/src/png/LICENSE b/src/png/LICENSE new file mode 100644 index 0000000..a3a8bdc --- /dev/null +++ b/src/png/LICENSE @@ -0,0 +1,110 @@ + +This copy of the libpng notices is provided for your convenience. In case of +any discrepancy between this copy and the notices in the file png.h that is +included in the libpng distribution, the latter shall prevail. + +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + +If you modify libpng you may insert additional notices immediately following +this sentence. + +This code is released under the libpng license. + +libpng versions 1.0.7, July 1, 2000, through 1.0.69, September 28, 2017, are +Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are +derived from libpng-1.0.6, and are distributed according to the same +disclaimer and license as libpng-1.0.6 with the following individuals +added to the list of Contributing Authors: + + Simon-Pierre Cadieux + Eric S. Raymond + Cosmin Truta + Gilles Vollant + +and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of the + library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is with + the user. + +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are +Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from +libpng-0.96, and are distributed according to the same disclaimer and +license as libpng-0.96, with the following individuals added to the list +of Contributing Authors: + + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + +libpng versions 0.89, June 1996, through 0.96, May 1997, are +Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, +and are distributed according to the same disclaimer and license as +libpng-0.88, with the following individuals added to the list of +Contributing Authors: + + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + +libpng versions 0.5, May 1995, through 0.88, January 1996, are +Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. + +For the purposes of this copyright and license, "Contributing Authors" +is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + +The PNG Reference Library is supplied "AS IS". The Contributing Authors +and Group 42, Inc. disclaim all warranties, expressed or implied, +including, without limitation, the warranties of merchantability and of +fitness for any purpose. The Contributing Authors and Group 42, Inc. +assume no liability for direct, indirect, incidental, special, exemplary, +or consequential damages, which may result from the use of the PNG +Reference Library, even if advised of the possibility of such damage. + +Permission is hereby granted to use, copy, modify, and distribute this +source code, or portions hereof, for any purpose, without fee, subject +to the following restrictions: + + 1. The origin of this source code must not be misrepresented. + + 2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + +The Contributing Authors and Group 42, Inc. specifically permit, without +fee, and encourage the use of this source code as a component to +supporting the PNG file format in commercial products. If you use this +source code in a product, acknowledgment is not required but would be +appreciated. + +END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE. + +A "png_get_copyright" function is available, for convenient use in "about" +boxes and the like: + + printf("%s", png_get_copyright(NULL)); + +Also, the PNG logo (in PNG format, of course) is supplied in the +files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). + +Libpng is OSI Certified Open Source Software. OSI Certified Open Source is +a certification mark of the Open Source Initiative. OSI has not addressed +the additional disclaimers inserted at version 1.0.7. + +Glenn Randers-Pehrson +glennrp at users.sourceforge.net +September 28, 2017 diff --git a/src/png/README b/src/png/README new file mode 100644 index 0000000..98718e5 --- /dev/null +++ b/src/png/README @@ -0,0 +1,283 @@ +README for libpng version 1.0.69 - September 28, 2017 (shared library 10.0) +See the note about version numbers near the top of png.h + +See INSTALL for instructions on how to install libpng. + +Libpng comes in several distribution formats. Get libpng-*.tar.gz or +libpng-*.tar.xz if you want UNIX-style line +endings in the text files, or lpng*.7z or lpng*.zip if you want DOS-style +line endings. You can get UNIX-style line endings from the *.zip file +by using "unzip -a" but there seems to be no simple way to recover +UNIX-style line endings from the *.7z file. The *.tar.xz file is +recommended for *NIX users instead. + +Version 0.89 was the first official release of libpng. Don't let the +fact that it's the first release fool you. The libpng library has been in +extensive use and testing since mid-1995. 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 < 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 +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 +png_uint_32, which will affect shared-library applications that use +this function. + +To avoid problems with changes to the internals of png_info_struct, +new APIs have been made available in 0.95 to avoid direct application +access to info_ptr. These functions are the png_set_ and +png_get_ functions. These functions should be used when +accessing/storing the info_struct data, rather than manipulating it +directly, to avoid such problems in the future. + +It is important to note that the APIs do not make current programs +that access the info struct directly incompatible with the new +library. However, it is strongly suggested that new programs use +the new APIs (as shown in example.c and pngtest.c), and older programs +be converted to the new format, to facilitate 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 +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 CRC error occurred in a +critical or an ancillary chunk. + +The changes made to the library, and bugs fixed are based on discussions +on the png-mng-implement mailing list and not on material submitted +privately to Guy, Andreas, or Glenn. They will forward any good +suggestions to the list. + +For a detailed description on using libpng, read libpng.txt. For +examples of libpng in a program, see example.c and pngtest.c. 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, or at +ftp://ftp.simplesystems.org/pub/png/src/ + +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.sf.net in the +[DOWNLOAD] area, 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. + +I am not a lawyer, but I believe that the Export Control Classification +Number (ECCN) for libpng is EAR99, which means not subject to export +controls or International Traffic in Arms Regulations (ITAR) because it +is open source, publicly available software, that does not contain any +encryption software. See the EAR, paragraphs 734.3(b)(3) and 734.7(b). + +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 and Andreas' earlier work), and the PNG +development group. + +Send comments/corrections/commendations to png-mng-implement at lists.sf.net +(subscription required; visit +https://lists.sourceforge.net/lists/listinfo/png-mng-implement +to subscribe) or to glennrp at users.sourceforge.net + +You can't reach Guy, the original libpng author, at the addresses +given in previous versions of this document. He and Andreas will +read mail addressed to the png-mng-implement list, however. + +Please do not send general questions about PNG. Send them to +the (png-mng-misc at lists.sourceforge.net, subscription required, visit +https://lists.sourceforge.net/lists/listinfo/png-mng-misc to +subscribe). On the other hand, please do not send libpng questions to +that address, send them to me or to the png-mng-implement list. 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 twenty 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 immediately, +it may be used later. + +Files in this distribution: + + ANNOUNCE => Announcement of this version, with recent changes + CHANGES => Description of changes between libpng versions + KNOWNBUG => List of known bugs and deficiencies + LICENSE => License to use and redistribute libpng + README => This file + TODO => Things not implemented in the current library + Y2KINFO => Statement of Y2K compliance + example.c => Example code for using libpng functions + libpng-*-*-diff.txt => Diff from previous release + libpng.3 => manual page for libpng (includes libpng.txt) + libpng.txt => Description of libpng and its functions + libpngpf.3 => manual page for libpng's private functions + png.5 => manual page for the PNG format + 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 + pngget.c => Functions for retrieving info from struct + pngmem.c => Memory handling functions + pngbar.png => PNG logo, 88x31 + pngnow.png => PNG logo, 98x31 + pngpread.c => Progressive reading 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 + pngset.c => Functions for storing data into the info_struct + 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 + contrib => Contributions + gregbook => source code for PNG reading and writing, from + Greg Roelofs' "PNG: The Definitive Guide", + O'Reilly, 1999 + pngminim => Minimal pnm2pngm and png2pnmm programs + pngminus => Simple pnm2png and png2pnm programs + pngsuite => Test images + visupng => Contains a MSVC workspace for VisualPng + projects => Contains project files and workspaces for + building a DLL + beos => Contains a Beos workspace for building libpng + c5builder => Contains a Borland workspace for building + libpng and zlib + MacOSX => Contains a MacOSX workspace for building libpng + netware.txt => Contains instructions for downloading a set + of project files for building libpng and + zlib on Netware. + visualc6 => Contains a Microsoft Visual C++ (MSVC) + workspace for building libpng and zlib + visualc71 => Contains a Microsoft Visual C++ (MSVC) + workspace for building libpng and zlib + wince.txt => Contains instructions for downloading a + Microsoft Visual C++ (Windows CD Toolkit) + workspace for building libpng and zlib on + WindowsCE + xcode => Contains xcode project files + scripts => Directory containing scripts for building libpng: + descrip.mms => VMS makefile for MMS or MMK + makefile.std => Generic UNIX makefile (cc, creates static + libpng.a) + makefile.elf => Linux/ELF gcc makefile symbol versioning, + creates libpng10.so.0.1.0.69) + makefile.linux => Linux/ELF makefile (gcc, creates + libpng10.so.0.1.0.69) + makefile.gcmmx => Linux/ELF makefile (gcc, creates + libpng10.so.0.1.0.69, previously + used assembler code tuned for Intel MMX + platform) + makefile.gcc => Generic makefile (gcc, creates static + libpng.a) + makefile.knr => Archaic UNIX Makefile that converts files + with ansi2knr (Requires ansi2knr.c from + ftp://ftp.cs.wisc.edu/ghost) + makefile.aix => AIX makefile + makefile.cygwin => Cygwin/gcc makefile + makefile.darwin => Darwin makefile + makefile.dec => DEC Alpha UNIX makefile + makefile.freebsd => FreeBSD makefile + makefile.hpgcc => HPUX makefile using gcc + makefile.hpux => HPUX (10.20 and 11.00) makefile + makefile.hp64 => HPUX (10.20 and 11.00) makefile, 64 bit + makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 + (static) + makefile.intel => Intel C/C++ version 4.0 and later + libpng.icc => Project file, IBM VisualAge/C++ 4.0 or later + makefile.netbsd => NetBSD/cc makefile, makes libpng.so. + makefile.ne10bsd => NetBSD/cc makefile, makes libpng10.so + makefile.openbsd => OpenBSD makefile + makefile.sgi => Silicon Graphics IRIX (cc, creates static lib) + makefile.sggcc => Silicon Graphics + (gcc, creates libpng10.so.0.1.0.69) + makefile.sunos => Sun makefile + makefile.solaris => Solaris 2.X makefile + (gcc, creates libpng10.so.0.1.0.69) + makefile.so9 => Solaris 9 makefile + (gcc, creates libpng10.so.0.1.0.69) + makefile.32sunu => Sun Ultra 32-bit makefile + makefile.64sunu => Sun Ultra 64-bit makefile + makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc + makefile.mips => MIPS makefile + makefile.acorn => Acorn makefile + makefile.amiga => Amiga makefile + smakefile.ppc => AMIGA smakefile for SAS C V6.58/7.00 PPC + compiler (Requires SCOPTIONS, copied from + scripts/SCOPTIONS.ppc) + makefile.atari => Atari makefile + makefile.beos => BEOS makefile for X86 + makefile.bor => Borland makefile (uses bcc) + makefile.bc32 => 32-bit Borland C++ (all modules compiled in C mode) + makefile.tc3 => Turbo C 3.0 makefile + makefile.dj2 => DJGPP 2 makefile + makefile.msc => Microsoft C makefile + makefile.vcawin32=> makefile for Microsoft Visual C++ 5.0 and + later (previously used assembler code tuned + for Intel MMX platform) + makefile.vcwin32 => makefile for Microsoft Visual C++ 4.0 and + later (does not use assembler code) + makefile.os2 => OS/2 Makefile (gcc and emx, requires pngos2.def) + pngos2.def => OS/2 module definition file used by makefile.os2 + makefile.watcom => Watcom 10a+ Makefile, 32-bit flat memory model + makevms.com => VMS build script + SCOPTIONS.ppc => Used with smakefile.ppc + +Good luck, and happy coding. + +-Glenn Randers-Pehrson (current maintainer, since 1998) + Internet: glennrp at users.sourceforge.net + +-Andreas Eric Dilger (former maintainer, 1996-1997) + Internet: adilger at enel.ucalgary.ca + Web: http://members.shaw.ca/adilger/ + +-Guy Eric Schalnat (original author and former maintainer, 1995-1996) + (formerly of Group 42, Inc) + Internet: gschal at infinet.com diff --git a/src/tiff/README b/src/tiff/README new file mode 100644 index 0000000..fe8b18f --- /dev/null +++ b/src/tiff/README @@ -0,0 +1,606 @@ +NOTE: This directory contains only the 'libtiff' portions of Sam's TIFF +distribution, as that's all that XV requires. The full TIFF distribution +(including tools, documentation, etc.) may be had via anonymous ftp on +sgi.com, in the directory graphics/tiff. + +--jhb, 10/31/94 + + +$Header: /usr/people/sam/tiff/RCS/README,v 1.22 1994/07/27 01:37:50 sam Exp $ + +TIFF Software Release +--------------------- + + Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994 Sam Leffler + Copyright (c) 1991, 1992, 1993, 1994 Silicon Graphics, Inc. + + Permission to use, copy, modify, distribute, and sell this software and + its documentation for any purpose is hereby granted without fee, provided + that (i) the above copyright notices and this permission notice appear in + all copies of the software and related documentation, and (ii) the names of + Sam Leffler and Silicon Graphics may not be used in any advertising or + publicity relating to the software without the specific, prior written + permission of Sam Leffler and Silicon Graphics. + + THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. + + + +About This Software +------------------- +This is software provides support for the Tag Image Format (TIFF). +Included is a library, libtiff, for reading and writing TIFF, a +collection of tools for doing simple manipulations of TIFF images, and +documentation on the library and tools. A random assortment of +TIFF-related software contributed by others is also included. + +The library, along with associated tool programs, should handle most of +your needs for reading and writing files that follow the 5.0 or 6.0 +TIFF spec. There is also considerable support for some of the more +esoteric portions of the 6.0 TIFF spec. + + +How to tell which version you have +---------------------------------- +The software version can be found by looking at the file named VERSION +that is located at the top of the source tree; the precise alpha number +is given in the file tiff.alpha. If you have need to refer to this +specific software, you should identify it as: + + TIFF + +where is whatever you get from "cat VERSION" and is +what you get from "cat tiff.alpha". + + +TIFF Support +------------ +The library, should handle most of your needs for reading and writing +files that follow the 5.0 or 6.0 TIFF spec. There is also considerable +support for some of the more esoteric portions of the 6.0 TIFF spec. + + o core requirements + both "MM" and "II" byte orders are handled + multiple subfiles can be read and written + editing is NOT supported in that related subfiles (e.g. + a reduced resolution version of an image) are not automatically + updated + + Tags handled: NewSubfileType, ImageWidth, ImageLength, Rowsperstrip, + StripOffsets, StripByteCounts, XResolution, YResolution, + ResolutionUnit. + o Class B for bilevel images + SamplesPerPixel = 1 + BitsPerSample = 1 + Compression = 1 (none), 2 (CCITT 1D), or 32773 (PackBits) + PhotometricInterpretation = 0 (Min-is-White), 1 (Min-is-Black) + o Class G for grayscale images + SamplesPerPixel = 1 + BitsPerSample = 4, 8 + Compression = 1 (none) 5 (LZW) + PhotometricInterpretation = 0 (Min-is-White), 1 (Min-is-Black) + o Class P for palette color images + SamplesPerPixel = 1 + BitsPerSample = 1-8 + Compression = 1 (none) 5 (LZW) + PhotometricInterpretation = 3 (Palette RGB) + ColorMap + o Class R for RGB full color images + SamplesPerPixel = 3 + BitsPerSample = <8,8,8> + PlanarConfiguration = 1, 2 + Compression = 1 (none) 5 (LZW) + PhotometricInterpretation = 2 (RGB) + o Class F for facsimile (proposed appendix to 5.0 spec) + (Class B tags plus...) + Compression = 3 (CCITT Group 3), 4 (CCITT Group 4) + FillOrder = 1 (MSB), 2 (LSB) + Group3Options = 1 (2d encoding), 4 (zero fill), 5 (2d+fill) + ImageWidth = 1728, 2048, 2482 + NewSubFileType = 2 + ResolutionUnit = 2 (Inch), 3 (Centimeter) + PageNumber, XResolution, YResolution, Software, + BadFaxLines, CleanFaxData, ConsecutiveBadFaxLines, + DateTime, DocumentName, ImageDescription, Orientation + o Class S for separated images (in 6.0) + SamplesPerPixel = 4 + PlanarConfiguration = 1, 2 + Compression = 1 (none), 5 (LZW) + PhotometricInterpretation = 5 (Separated) + InkSet = 1 (CMYK) + DotRange, InkNames, DotRange, TargetPrinter + o Class Y for JPEG images (in 6.0) + SamplesPerPixel = 3 + BitsPerSample = <8,8,8> + PlanarConfiguration = 1, 2 + Compression = 1 (none), 5 (LZW), 6 (JPEG) + PhotometricInterpretation = 6 (YCbCr) + YCbCrCoefficients, YCbCrSubsampling, YCbCrPositioning + (colorimetry info from Appendix H; see below) + o Class "JPEG" for JPEG images (in 6.0) + PhotometricInterpretation = 1 (grayscale), 2 (RGB), 5 (CMYK), 6 (YCbCr) + (Class Y tags if YCbCr) + (Class S tags if CMYK) + Compression = 6 (JPEG) + JPEGProc = 0 (baseline) + JPEGQTables = ... (offsets to per-channel Q matrices) + JPEGDCTables = .... (offsets to per-channel DC tables) + JPEGACTables = .... (offsets to per-channel AC tables) + JPEGRestartInterval + o Tiled Images (in 6.0) + TileWidth + TileLength + TileOffsets + TileByteCounts + o Image Colorimetry Information (in 6.0) + WhitePoint + PrimaryChromaticities + TransferFunction + ReferenceBlackWhite + +In addition, the library supports some optional compression algorithms +that are, in some cases, of dubious value. + Compression = 32766 NeXT 2-bit encoding + Compression = 32809 ThunderScan 4-bit encoding + +[JPEG compression should fit into this library simply by replacing + the existing stub JPEG compression module. That is, all YCbCr and + JPEG-related tags are supported in this version of the library.] + +The following tags are recognized and handled by the library (as +described in the table). If no use is indicated, then the library +reads and writes the tag, but does not use it internally. + +Tag Name Value R/W Library's Use +----------------------------------------------------- +NewSubFileType 254 R/W (called SubFileType) +SubFileType 255 R/W (called OSubFileType) +ImageWidth 256 R/W lots +ImageLength 257 R/W lots +BitsPerSample 258 R/W lots +Compression 259 R/W choosing compression routines +PhotometricInterpretation 262 R/W Group 3 and JPEG code +Thresholding 263 R/W +CellWidth 264 parsed but ignored +CellLength 265 parsed but ignored +FillOrder 266 R/W control bit order +DocumentName 269 R/W +ImageDescription 270 R/W +Make 271 R/W +Model 272 R/W +StripOffsets 273 R/W data i/o +Orientation 274 R/W +SamplesPerPixel 277 R/W lots +RowsPerStrip 278 R/W data i/o +StripByteCounts 279 R/W data i/o +MinSampleValue 280 R/W +MaxSampleValue 281 R/W +XResolution 282 R/W +YResolution 283 R/W used by Group 3 2d encoding +PlanarConfiguration 284 R/W data i/o +PageName 285 R/W +XPosition 286 R/W +YPosition 286 R/W +FreeOffsets 288 parsed but ignored +FreeByteCounts 289 parsed but ignored +GrayResponseUnit 290 parsed but ignored +GrayResponseCurve 291 parsed but ignored +Group3Options 292 R/W used by Group 3 code +Group4Options 293 R/W +ResolutionUnit 296 R/W +PageNumber 297 R/W +ColorResponseUnit 300 parsed but ignored +TransferFunction 301 R/W +Software 305 R/W +DateTime 306 R/W +Artist 315 R/W +HostComputer 316 R/W +Predictor 317 R/W used by LZW code +WhitePoint 318 R/W +PrimaryChromacities 319 R/W +ColorMap 320 R/W +TileWidth 322 R/W data i/o +TileLength 323 R/W data i/o +TileOffsets 324 R/W data i/o +TileByteCounts 324 R/W data i/o +BadFaxLines 326 R/W +CleanFaxData 327 R/W +ConsecutiveBadFaxLines 328 R/W +InkSet 332 R/W +InkNames 333 R/W +DotRange 336 R/W +TargetPrinter 337 R/W +ExtraSamples 338 R/W lots +SampleFormat 339 R/W +JPEGProc 512 R/W JPEG code +JPEGQRestartInterval 515 R/W JPEG code +JPEGQTables 519 R/W JPEG code +JPEGDCTables 520 R/W JPEG code +JPEGACTables 521 R/W JPEG code +YCbCrCoefficients 529 R/W used by TIFFReadRGBAImage +YCbCrSubsampling 530 R/W tile/strip size calculations +YCbCrPositioning 531 R/W +ReferenceBlackWhite 532 R/W +Matteing 32995 R (obsoleted by ExtraSamples) +DataType 32996 R (obsoleted by SampleFormat) +ImageDepth 32997 R/W tile/strip calculations +TileDepth 32998 R/W tile/strip calculations + +The Matteing and DataType tags have been obsoleted by the 6.0 +ExtraSamples and SampleFormat tags. Consult the documentation on the +ExtraSamples tag and Associated Alpha for elaboration. Note however +that if you use Associated Alpha, you are expected to save data that is +pre-multipled by Alpha. If this means nothing to you, check out Porter +& Duff's paper in the '84 SIGGRAPH proceedings: "Compositing Digital +Images". + +The ImageDepth tag is a non-standard, but registered tag that specifies +the Z-dimension of volumetric data. The combination of ImageWidth, +ImageLength, and ImageDepth, defines a 3D volume of pixels that are +further specified by BitsPerSample and SamplesPerPixel. The TileDepth +tag (also non-standard, but registered) can be used to specified a +subvolume "tiling" of a volume of data. + +The JPEG, Colorimetry, and CMYK tags are additions that appear in TIFF +6.0. Consult the TIFF 6.0 specification included in the doc directory. + + +The TIFF Library +---------------- +libtiff is the software library that you can use to read and write TIFF +files (most all the tools use it to do their work). The library +provides two interfaces, one for strip-based images and one for +tile-based images. The normal interface is through a simple +scanline-based interface that works with images organized as strips. +For example, to read the contents of a file, the following might be used: + + #include "tiffio.h" + + TIFF *tif; + unsigned long imagelength; + char *buf; + long row; + + tif = TIFFOpen("myfile.tif", "r"); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imagelength); + buf = malloc(TIFFScanlineSize(tif)); + for (row = 0; row < imagelength; row++) + TIFFReadScanline(tif, buf, row); + +(this example assumes samples are packed contiguously.) Similarly, to +write a file, something like the following can be used: + + tif = TIFFOpen("myfile.tif", "w"); + TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, imagewidth); + TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_LZW); + ... + row = 0; + while (...more scanlines to write...) + TIFFWriteScanline(tif, buf, row); + TIFFClose(tif); + +(once again, we assume samples are packed contiguously.) + +A 2D tile-based interface is also provided as an alternative to the +scanline-orientated interfaces. With this interface, an image is +broken up into a set of rectangular areas called tiles. All the tiles +in an image have the same size, and the tile width and length must each +be a multiple of 16 pixels. Tiles are ordered left-to-right and +top-to-bottom in an image. As for scanlines, samples can be packed +contiguously or separately. When separated, all the tiles for a sample +are colocated in the file. That is, all the tiles for sample 0 appear +before the tiles for sample 1, etc. + +Tiles and strips may also be extended in a z dimension to form +volumes. Data volumes are organized as "slices". That is, all the +data for a slice is colocated. Volumes whose data is organized in +tiles can also have a tile depth so that data can be organized in +cubes. + +The interface for tiles is similar to scanlines. To read a tiled image, +code of the following sort might be used: + + unsigned long imageWidth, imageLength; + unsigned long tileWidth, tileLength; + unsigned long x, y; + char *buf; + + tif = TIFFOpen("myfile.tif", "r"); + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &imageWidth); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imageLength); + TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tileWidth); + TIFFGetField(tif, TIFFTAG_TILELENGTH, &tileLength); + buf = malloc(TIFFTileSize(tif)); + for (y = 0; y < imageLength; y += tileLength) + for (x = 0; x < imageWidth; x += tileWidth) + TIFFReadTile(tif, buf, x, y, 0); + +(once again, we assume samples are packed contiguously.) + +Note that unlike the stdio library, libtiff only supports reading OR +writing of a file. There is also an append mode, but this has not +really been tested. + + +TIFF Tools +---------- +There are two device-dependent programs: + +o tiffgt is used to display the contents of a TIFF file on a + framebuffer. The version included in this release was written + for the Silicon Graphics Graphics Library (GL), although it + should be a simple matter to tailor it for other systems. +o tiffsv is used to save all or part of a framebuffer in a + TIFF file. Once again, the version of tiffsv included here + was written for the GL, but should be tailorable to other devices. + (Note, tiffsv uses the readdisplay routine that was introduced + in IRIX 4.0.) + +The remaining programs should be device-independent: + +o tiffinfo formats information about one or more TIFF files +o tiffdump displays the verbatim contents of the TIFF directory in a + file (it's very useful for debugging bogus files that you may get from + someone that claims they support TIFF). +o tiffcp is used to copy, concatenate, and convert TIFF images (e.g. + switching from Compression=5 to Compression=1). +o tiff2ps is a program that converts a TIFF image to PostScript. +o tiffcmp can be used to compare the contents of two TIFF files (it does + not check all the directory information, but does check all the data). +o tiff2bw is a simple program to convert a color image to grayscale. +o ras2tiff is a quick hack that converts Sun rasterfile format images to + TIFF -- it's less than complete. +o rgb2ycbcr converts an RGB, grayscale, or bilevel TIFF image to a + YCbCr TIFF image. +o gif2tiff is a quick hack that converts GIF 87a format images to TIFF. +o ppm2tiff is a quick hack that converts PPM format images to TIFF. +o fax2tiff converts raw Group 3 facsimile data to TIFF. +o pal2rgb converts a Palette color image to a full color RGB image by + applying the colormap. +o tiffdither dithers a b&w image into a bilevel image (suitable for + use in creating fax files) +o tiffsplit creates one or more single-image files from a (possibly) + multi-image file +o Finally, tiffmedian is a version of Paul Heckbert's median cut program + that reads an RGB TIFF image, and creates a TIFF palette file as a + result. It's useful for converting full-color RGB images to 8-bit + color for your friends that have cheapo 8-bit framebuffers. + +There is also: + +o sgi2tiff, a program to convert SGI image files to TIFF. This + program is only useful on SGI machines as it uses -limage. + +Check out the manual pages for details about the above programs. + + +Contributed Stuff +----------------- +The directory contrib has contributed software: + +contrib/dbs an X-based TIFF viewer from Dan & Chris Sears (has not + been updated in a long time and does not compile) +contrib/ras two programs by Patrick Naughton for converting + between Sun rasterfile format and TIFF (these + require libpixrect.a, as opposed to the one in + tools that doesn't) +contrib/fax2ps a program that converts TIFF/F images to an encoded + form of PostScript that is faster to print than just + dumping a full raster +contrib/vms scripts and files from Karsten Spang for building + the library and tools under VMS + +Don't send me mail asking about these programs. Send questions +and/or bug reports directly to the authors. + + +Documentation +------------- +A copy of the 6.0 spec available by public ftp from sgi.com in the +directory graphics/tiff. TIFF6.ps is the PostScript of the final 6.0 +spec as provided by Aldus. TIFF6.ps.Z is a compress(1)'d version of +TIFF6.ps. + + +Test Images +----------- +Test images are available for most formats supported by the library. +The images are kept in a separate archive that should be located along +with this software. For example, if the archive that you retrieve was +v3.1.tar.Z, then the images should be in the same directory in an +archive named v3.1pics.tar.Z. + + +Building the Software +--------------------- +To configure things for your machine, check for Makefiles in the +libtiff and tools directories for your machine: + + Makefile.aix Makefile for an IBM RS/6000 running AIX 3.x + Makefile.alpha Makefile for DEC AlphaAXP, OSF/1 v1.3 + Makefile.apollo Makefile for an Apollo + Makefile.convex Makefile for Convex + Makefile.gcc Makefile for use with gcc (the GNU compiler) + Makefile.hpux Makefile for HP machines running HP-UX + Makefile.lcc Makefile for Atari + Makefile.mpw Makefile for an Apple Macintosh with MPW + Makefile.next Makefile for NeXT + Makefile.sco Makefile for a PC running SCO ODT 2.0 (or similar) + Makefile.sgi Makefile for Silicon Graphics + Makefile.sun Makefile for a Sun-3 or Sun-4 running SunOS 3.5+ + +If your machine is not represented, you'll have to make up a Makefile +that is right for you. In libtiff the important things to setup are + + AR=/usr/bin/ar whatever your library archiver is called + RANLIB=/usr/bin/ranlib if you need to ranlib a library + IPATH=-I. -I/usr/include/bsd list of directories to search includes + CONF=.... configuring optional support + +To build the library, just + + cd libtiff; make + +In the tools directory, pick the appropriate Makefile as in the libtiff +directory. If no Makefile is present for your machine, create one, setup +the MACHALL macro, + + MACHALL=ras2tiff tiffgt tiffsv + +and add definitions for how to build tiffgt and tiffsv for your machine +(if appropriate). Note also that for building the fax2tiff program, the +CONF_LIBRARY macro in the Makefile MUST agree with the definition in the +Makefile in the libtiff directory! If this is not true, then fax2tiff +will not work. + +To build the tools library, just + + cd ../tools; make + + +Checking out the Software +------------------------- +Assuming you have working versions of tiffgt and tiffsv, you can just +use them to view any of the sample images (the list is given below). +Otherwise, you can check out the operation of the library with tiffcp +and tiffcmp. For example, + + tiffcp -lzw cramps.tif x.tif + tiffcmp cramps.tif x.tif + +(tiffcmp should be silent if the files compare correctly). + + +Bugs and such.... +----------------- +This software is free. The only thing that I ask in return is that you +tell me when you find a problem or fix a bug. I also gladly accept +software contributions, although I hesitate to include such software in +my regular stuff if I am personally unable to test it. + +A mailing list for users of this software is located on sgi.com. +If you want to join this mailing list or have a list-related request +such as getting your name removed from it, send a request to + + tiff-request@sgi.com + +For example, to subscribe, send the line "subscribe" in +the body of your message. The line "help" will return a list of +the commands understood by the mailing list management software. + +Submissions (including bug reports) should be directed to: + + tiff@sgi.com + +When corresponding about this software please always specify what +version you have, what system you are running on. + +If all else fails, I can be reached by sending mail to sam@sgi.com +(but beware that I'm more likely to respond to mail sent to the +mailing list than mail sent directly to me). + + +Acknowledgements +---------------- +The LZW algorithm is derived from the compress program (the proper +attribution is included in the source code). The Group 3 fax stuff +originated as code from Jef Poskanzer, but has since been rewritten +several times. The latest version uses an algorithm from Michael +Marking -- consult libtiff/mkg3states.c for further information. +Many other people have, by now, helped with bug fixes and code. + + +Warning +------- +It appears that Unisys is actively pursuing copyright control on the +LZW compression algorithm. In particular, users of the LZW compression +within the TIFF framework. For this reason the TIFF 6.0 spec states +that LZW compression is not recommended. It is unclear at this time +what compression algorithm will be used in place of it. I have no idea +what this means to you or to this library. I make no warranty or +guarantees with regard to the LZW support in this library. + + +Use and Copyright +----------------- +Silicon Graphics has seen fit to allow me to give this work away. It +is free. There is no support or guarantee of any sort as to its +operations, correctness, or whatever. If you do anything useful with +all or parts of it you need to honor the copyright notices. I would +also be interested in knowing about it and, hopefully, be acknowledged. + + Sam Leffler (sam@sgi.com) + + + +Table of Contents +----------------- +At least the following files are included in the distribution: + +libtiff/tiff.h TIFF spec definitions +libtiff/tiffio.h public TIFF library definitions +libtiff/tiffiop.h private TIFF library definitions +libtiff/tiffcomp.h OS-compatibility definitions +libtiff/t4.h CCITT Group 3 1d code tables+definitions +libtiff/tif_fax3.h CCITT Group 3-related definitions + +libtiff/tif_aux.c auxilary directory-related functions +libtiff/tif_ccittrle.c CCITT 1d Huffman compression +libtiff/tif_compress.c list of supported compression algorithms +libtiff/tif_dir.c directory tag interface code +libtiff/tif_dirinfo.c directory known tag support code +libtiff/tif_dirread.c directory reading code +libtiff/tif_dirwrite.c directory writing code +libtiff/tif_dumpmode.c "no" compression algorithm +libtiff/tif_fax3.c CCITT Group 3 fax compression +libtiff/tif_fax4.c CCITT Group 4 fax compression +libtiff/tif_getimage.c code to read an entire image into an RGBA raster +libtiff/tif_jpeg.c JPEG compression placeholder +libtiff/tif_lzw.c LZW encoding and decoding +libtiff/tif_next.c NeXT 2-bit decoding algorithm (no encoding) +libtiff/tif_open.c open and simply query code +libtiff/tif_packbits.c Packbits encoding and decoding +libtiff/tif_print.c directory printing support +libtiff/tif_swab.c byte and bit swapping support +libtiff/tif_strip.c some strip-related code +libtiff/tif_thunder.c Thunderscan decoding (no encoding) +libtiff/tif_tile.c some tile-related code +libtiff/tif_unix.c UNIX-related OS support +libtiff/tif_apple.c Apple-related OS support +libtiff/tif_msdos.c MSDOS-related OS support +libtiff/tif_vms.c VMS-related OS support +libtiff/mkg3states.c program to generate G3 decoding state tables +libtiff/mkspans.c program to generate black-white span tables + +tools/getopt.c public domain getopt from Berkeley used by tools +tools/fax2tiff.c convert raw facsimile data to TIFF +tools/gif2tiff.c convert GIF87 file to TIFF +tools/pal2rgb.c convert TIFF Palette image to TIFF RGB +tools/ppm2tiff.c convert PPM image file to TIFF +tools/ras2tiff.c convert Sun rasterfile format to TIFF (limited) +tools/rgb2ybcr.c convert TIFF to YCbCr TIFF +tools/sgi2tiff.c convert SGI image file to TIFF +tools/sgigt.c TIFF picture get for SGI framebuffer (uses GL) +tools/sgisv.c save image on SGI framebuffer in TIFF file +tools/tiff2bw.c convert color TIFF file to B&W +tools/tiff2ps.c convert TIFF to PostScript +tools/tiffcmp.c compare two TIFF files +tools/tiffcp.c copy/convert TIFF files (used to change compression) +tools/tiffdither.c dither grayscale to bilevel +tools/tiffdump.c dump TIFF header and directory tags w/o library +tools/tiffinfo.c print info about TIFF file(s) +tools/tiffmedian.c median cut RGB -> palette conversion program +tools/tiffsplit.c split a multi-page TIFF into single-page TIFFs +tools/ycbcr.c RGB->YCbCr->RGB test program + +man/man1 UNIX manual pages for tools +man/man3 UNIX manual pages for libtiff functions diff --git a/src/xv/README b/src/xv/README new file mode 100644 index 0000000..c8df500 --- /dev/null +++ b/src/xv/README @@ -0,0 +1,160 @@ +(Note: This has been changed, and hopefully clarified, from the 3.00 +version of this info. Please read it.) + +Thank you for acquiring a copy of XV, a pretty nifty X program. +I hope you enjoy using it, as I've enjoyed writing it. + +The latest version of XV (or at least a pointer to it) is available +via anonymous ftp on ftp.cis.upenn.edu, in the directory pub/xv. If +you're not sure if you have the latest version, or you are missing the +source or documentation for XV, PLEASE pick up the latest version of +the xv distribution. Do *not* send mail unless absolutely necessary +(ie, you don't have ftp capability). + +Note: The documentation ('xvdocs.ps') may be installed in '/usr/local'. + +If you're viewing this information via the 'About XV' command, and +you'd like to print it out, a copy of this info can be found in the +README file in the top-level XV source directory. Print that. If you +don't have it, see the previous paragraph. + + +XV Licensing Information +------------------------ +XV IS SHAREWARE FOR PERSONAL USE ONLY. + +You may use XV for your own amusement, and if you find it nifty, +useful, generally cool, or of some value to you, your registration fee +would be greatly appreciated. $25 is the standard registration fee, +though of course, larger amounts are quite welcome. Folks who donate +$40 or more can receive a printed, bound copy of the XV manual for no +extra charge. If you want one, just ask. BE SURE TO SPECIFY THE +VERSION OF XV THAT YOU ARE USING! + +COMMERCIAL, GOVERNMENT, AND INSTITUTIONAL USERS MUST REGISTER THEIR +COPIES OF XV. + +This does *not* mean that you are required to register XV just because +you play with it on the workstation in your office. This falls under +the heading of 'personal use'. If you are a sysadmin, you can put XV +up in a public directory for your users amusement. Again, 'personal +use', albeit plural. + +On the other hand, if you use XV in the course of doing your work, +whatever your 'work' may happen to be, you *must* register your +copy of XV. (Note: If you are a student, and you use XV to do +classwork or research, you should get your professor/teacher/advisor +to purchase an appropriate number of copies.) + +XV licenses are $25 each. You should purchase one license per +workstation, or one per XV user, whichever is the smaller number. XV +is *not* sold on a 'number of concurrent users' basis. If XV was some +$1000 program, yes, that would be a reasonable request, but at $25, +it's not. Also, given that XV is completely unlocked, there is no way +to enforce any 'number of concurrent users' limits, so it isn't sold +that way. + +Printed and bound copies of the 100-odd page XV manual are available +for $15 each. Note that manuals are *only* sold with, at minimum, an +equal number of licenses. (e.g. if you purchase 5 licenses, you can +also purchase *up to* 5 copies of the manual) + +The source code to the program can be had (as a compressed 'tar' file +split over a couple 3.5" MS-DOS formatted floppies) for $15, for those +who don't have ftp capabilities. + +Orders outside the US and Canada must add an additional $5 per manual +ordered to cover the additional shipping charges. + +Checks, money orders, and purchase orders are accepted. Credit cards +are not. All forms of payment must be payable in US Funds. Checks +must be payable through a US bank (or a US branch of a non-US bank). +Purchase orders for less than $50, while still accepted, are not +encouraged. + +All payments should be payable to 'John Bradley', and mailed to: + John Bradley + 1053 Floyd Terrace + Bryn Mawr, PA 19010 + USA + + +Site Licenses +------------- +If you are planning to purchase 10 or more licenses, site licenses are +available, at a substantial discount. Site licenses let you run XV on +any and all computing equipment at the site, for any purpose +whatsoever. The site license covers the current version of XV, and +any versions released within one year of the licensing date. You are +also allowed to duplicate and distribute an unlimited number of copies +of the XV manual, but only for use within the site. Covered versions +of the software may be run in perpetuity. + +Also, it should be noted that a 'site' can be defined as anything +you'd like. It can be a physical location (a room, building, +location, etc.), an organizational grouping (a workgroup, department, +division, etc.) or any other logical grouping ("the seventeen +technical writers scattered about our company", etc.). + +The site license cost will be based on your estimate of the number of +XV users or workstations at your site, whichever is the smaller +number. + +If you are interested in obtaining a site license, please contact the +author via electronic mail or FAX (see below for details). Send +information regarding your site (the name or definition of the 'site', +a physical address, a fax number, and an estimate of the number of +users or workstations), and we'll get a site license out to you for +your examination. + + +Copyright Notice +---------------- +XV is Copyright 1989, 1994 by John Bradley + +Permission to copy and distribute XV in its entirety, for +non-commercial purposes, is hereby granted without fee, provided that +this license information and copyright notice appear in all copies. + +If you redistribute XV, the *entire* contents of this distribution +must be distributed, including the README, and INSTALL files, the +sources, and the complete contents of the 'docs' directory. + +Note that distributing XV 'bundled' in with any product is considered +to be a 'commercial purpose'. + +Also note that any copies of XV that are distributed MUST be built +and/or configured to be in their 'unregistered copy' mode, so that it +is made obvious to the user that XV is shareware, and that they should +consider registering, or at least reading this information. + +The software may be modified for your own purposes, but modified +versions may not be distributed without prior consent of the author. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the author be held liable for any damages +arising from the use of this software. + +If you would like to do something with XV that this copyright +prohibits (such as distributing it with a commercial product, using +portions of the source in some other program, distributing registered +copies, etc.), please contact the author (preferably via email). +Arrangements can probably be worked out. + + +The author may be contacted via: + US Mail: John Bradley + 1053 Floyd Terrace + Bryn Mawr, PA 19010 + + FAX: (610) 520-2042 + +Electronic Mail regarding XV should be sent to one of these three addresses: + xv@devo.dccs.upenn.edu - general XV questions + xvbiz@devo.dccs.upenn.edu - all XV licensing questions + xvtech@devo.dccs.upenn.edu - bug reports, technical questions + +Please do *not* send electronic mail directly to the author, as he +gets more than enough as it is. + + diff --git a/src/zlib/LICENSE b/src/zlib/LICENSE new file mode 100644 index 0000000..ab8ee6f --- /dev/null +++ b/src/zlib/LICENSE @@ -0,0 +1,22 @@ +Copyright notice: + + (C) 1995-2022 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu diff --git a/src/zlib/README b/src/zlib/README new file mode 100644 index 0000000..c5f9175 --- /dev/null +++ b/src/zlib/README @@ -0,0 +1,117 @@ +ZLIB DATA COMPRESSION LIBRARY + +zlib 1.3.1 is a general purpose data compression library. All the code is +thread safe. The data format used by the zlib library is described by RFCs +(Request for Comments) 1950 to 1952 in the files +http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and +rfc1952 (gzip format). + +All functions of the compression library are documented in the file zlib.h +(volunteer to write man pages welcome, contact zlib@gzip.org). A usage example +of the library is given in the file test/example.c which also tests that +the library is working correctly. Another example is given in the file +test/minigzip.c. The compression library itself is composed of all source +files in the root directory. + +To compile all files and run the test program, follow the instructions given at +the top of Makefile.in. In short "./configure; make test", and if that goes +well, "make install" should work for most flavors of Unix. For Windows, use +one of the special makefiles in win32/ or contrib/vstudio/ . For VMS, use +make_vms.com. + +Questions about zlib should be sent to , or to Gilles Vollant + for the Windows DLL version. The zlib home page is +http://zlib.net/ . Before reporting a problem, please check this site to +verify that you have the latest version of zlib; otherwise get the latest +version and check whether the problem still exists or not. + +PLEASE read the zlib FAQ http://zlib.net/zlib_faq.html before asking for help. + +Mark Nelson wrote an article about zlib for the Jan. 1997 +issue of Dr. Dobb's Journal; a copy of the article is available at +https://marknelson.us/posts/1997/01/01/zlib-engine.html . + +The changes made in version 1.3.1 are documented in the file ChangeLog. + +Unsupported third party contributions are provided in directory contrib/ . + +zlib is available in Java using the java.util.zip package. Follow the API +Documentation link at: https://docs.oracle.com/search/?q=java.util.zip . + +A Perl interface to zlib and bzip2 written by Paul Marquess +can be found at https://github.com/pmqs/IO-Compress . + +A Python interface to zlib written by A.M. Kuchling is +available in Python 1.5 and later versions, see +http://docs.python.org/library/zlib.html . + +zlib is built into tcl: http://wiki.tcl.tk/4610 . + +An experimental package to read and write files in .zip format, written on top +of zlib by Gilles Vollant , is available in the +contrib/minizip directory of zlib. + + +Notes for some targets: + +- For Windows DLL versions, please see win32/DLL_FAQ.txt + +- For 64-bit Irix, deflate.c must be compiled without any optimization. With + -O, one libpng test fails. The test works in 32 bit mode (with the -n32 + compiler flag). The compiler bug has been reported to SGI. + +- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works + when compiled with cc. + +- On Digital Unix 4.0D (formerly OSF/1) on AlphaServer, the cc option -std1 is + necessary to get gzprintf working correctly. This is done by configure. + +- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with + other compilers. Use "make test" to check your compiler. + +- gzdopen is not supported on RISCOS or BEOS. + +- For PalmOs, see http://palmzlib.sourceforge.net/ + + +Acknowledgments: + + The deflate format used by zlib was defined by Phil Katz. The deflate and + zlib specifications were written by L. Peter Deutsch. Thanks to all the + people who reported problems and suggested various improvements in zlib; they + are too numerous to cite here. + +Copyright notice: + + (C) 1995-2024 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +If you use the zlib library in a product, we would appreciate *not* receiving +lengthy legal documents to sign. The sources are provided for free but without +warranty of any kind. The library has been entirely written by Jean-loup +Gailly and Mark Adler; it does not include third-party code. We make all +contributions to and distributions of this project solely in our personal +capacity, and are not conveying any rights to any intellectual property of +any third parties. + +If you redistribute modified sources, we would appreciate that you include in +the file ChangeLog history information documenting your changes. Please read +the FAQ for more information on the distribution of modified source versions.