mirror of
https://github.com/NishiOwO/nishi-xv.git
synced 2025-04-21 16:44:39 +00:00
add files
This commit is contained in:
parent
dff9dcef92
commit
7913639297
110
src/png/LICENSE
Normal file
110
src/png/LICENSE
Normal file
@ -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
|
283
src/png/README
Normal file
283
src/png/README
Normal file
@ -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_<chunk> and
|
||||
png_get_<chunk> 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
|
606
src/tiff/README
Normal file
606
src/tiff/README
Normal file
@ -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 <version> <alpha>
|
||||
|
||||
where <version> is whatever you get from "cat VERSION" and <alpha> 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);
|
||||
... <set other required tags>
|
||||
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
|
160
src/xv/README
Normal file
160
src/xv/README
Normal file
@ -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.
|
||||
|
||||
|
22
src/zlib/LICENSE
Normal file
22
src/zlib/LICENSE
Normal file
@ -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
|
117
src/zlib/README
Normal file
117
src/zlib/README
Normal file
@ -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 <zlib@gzip.org>, or to Gilles Vollant
|
||||
<info@winimage.com> 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 <markn@ieee.org> 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 <pmqs@cpan.org>
|
||||
can be found at https://github.com/pmqs/IO-Compress .
|
||||
|
||||
A Python interface to zlib written by A.M. Kuchling <amk@amk.ca> 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 <info@winimage.com>, 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.
|
Loading…
x
Reference in New Issue
Block a user