[comp.graphics] much tiff information for all

doug@psuecl.bitnet (Douglas H. Hughes) (04/23/89)

Here's a compilation of Tiff source code from all the information that
people from the list have so kindly offered to me.. Below are a number
of notable contributions which I'm sure will be appreciated by many
of you.. Also, I have all the below files for myself, if someone doesn't
have FTP access.
----------------------------------------------------------------------------
        If you want stuff to convert TIFF files for BSD, there is a large
amount of source code from Sam Leffler (no less) on ucbvax.berkeley.edu
for FTP (called tiff.tar.Z, I think). It does the complete TIFF stuff,
more or less, including compression galore.
----------------------------------------------------------------------------
Here's a program for going from tiff to raster format that so
many have asked for. You can get it from:
albanycs.albany.edu

pub/graphics/tif2sun.4.Z (I think).
----------------------------------------------------------------------------
From: phils@ATHENA.MIT.EDU

I have a good program for displaying images on X, the only problem is
that it displays images in my own format.  This is the "xim" format
after the display program of the same name.   If you have an afternoon
to spare you can modify the program or, even easier, write a translator
to your format.  There are a couple translators to other formats to
look at already.  If interested, it is all tarred together and
available on 18.80.0.45 via anonymous ftp.

Philip Thompson
----------------------------------------------------------------------------
I have all of the tiff format info that you could ever ask for in one huge
file. So, if you've got lots of time, and like reading a whole lot,
just ask and I'll have it sent to you..
thanks to fmr@cwi.nl
----------------------------------------------------------------------------
        (extract from received mail and file itself)
This directory contains the Beta test release (version 0.9) of the
Fuzzy Pixmap Manipulation (FBM) library of programs.  This collection
(in combination with Jef Poskanzer's PBM collection) provides a
complete package for manipulating and converting color and black and
whites images, including 24bit RGB, 8bit mapped color, 8bit grayscale,
and 1bit bitmapped images.

Compilation

        Unpack all files in one directory.  Edit Makefile and put in
        appropriate values for

File Formats

        FBM   (-F)      FBM file with 256 byte header (with title & credits)
        Sun   (-S)      Sun rasterfile with 32 byte header
        PBM   (-P)      Poskanzer format for 1bit files
        GIF   (-G)      CompuServe GIF format
        IFF   (-I)      Amiga IFF files (except HAM mode files)
        PCX   (-Z)      PC PaintBrush format for IBM
        Face  (-B)      Bennet Yee's 1bit files, used at CMU

        All programs (except fbinfo) can read any of the formats, and use
        the magic number to decide the file type.  If the input is not a
        pipe and is compressed using the net standard 'compress' program,
        the file will be uncompressed as it is read.  Note however that
        the operation to be performed must make sense; that is you cannot
        halftone a color image, quantize a grayscale image, or resize a
        1bit file.
************************************************************************
*   Announcing the "Fuzzy PixMap" (or FBM) image manipulation library  *
************************************************************************

                        Current version 0.9

The FBM library is now available in Beta test form to interested
parties.  This package allows manipulation and conversion of a variety
of color and black-and-white image formats.

Philosophy

    Each program can read any of the understood formats, and
    can write any of the understood formats that make sense for
    the image data.

    Programs are designed around specific image operations (sizing,
    scaling, retoning, halftoning, quantizing, etc.), rather than
    simply converting from one format to another.  For example,
    converting a 4bit color GIF file to a 1bit Sun rasterfile
    takes the following operations:

        read GIF format
        map color values to grayscale
        adjust aspect ratio (1.2 --> 1.0)
        scale image up to be visible (320x200 --> 640x480 or 1152x864)
        optionally sharpen the image (edge enhancement)
        optionally clean up "snow" in image (flip isolated pixels)
        halftone (Blue noise, Floyd-Steinberg, Jarvis, Threshhold)
        write Sun rasterfile format.

    So there equivalent pipeline of fbm routines would be:

    clr2gray < foo.gif | fbnorm | fbext [ args ] | fbhalf [args] > foo.1bit

    That way you have maximum control over the resulting image size
    and quality.

Inputs the following file formats

  o Sun rasterfiles     (1, 8, or 24 bits, color or grayscale)
  o GIF files           (1 to 8 bits, color or grayscale)
  o Amiga IFF files     (except HAM mode)
  o PCX files
  o PBM bitmaps
  o Face files          (CMU format for 1bit files by Bennet Yee)
  o FBM files           (my own format)

    (automatically determines input format, and uncompresses
     files compressed using 'compress')

Outputs the following formats

  o Sun rasterfiles
  o FBM files
  o GIF files           (mapped color only)
  o Amiga IFF files     (except HAM mode)
  o PBM                 (1bit files only)
  o Face format         (1bit files only)

With input converter for

  o raw images (like Amiga Digi-View files)

With output converters for

  o PostScript         (1bit or 8bit grayscale files only)
  o Diablo graphics    (1bit files only)

Operations

  o Extract rectangle (optionally resizing and changing aspect ratio)
  o Change density and contrast (color and grayscale)
  o Rotate  90, 180, or 270 degrees
  o Quantize 24 bit RGB images to 8..256 colors
        Modified Heckbert median cut
  o Halftone grayscale using
        Ulichney's Blue Noise dithering
        Floyd-Steinberg dithering
        Jarvis's Constrained averaging
        Threshholding
  o Edge Sharpening by Digitial Laplacian (color or grayscale)
  o Convert color to grayscale (or compute "gray" colormap
        so grayscale images can be viewed on frame buffers)
  o Compute histograms of grayscale images
  o Sample 1bit images to convert to grayscale

Status

    Beta test release, 0.9.  "Use at your own risk, bug fixes not
    guaranteed, be happy with minimal documentation."  Bugs reported
    so far have been fixed.

    Freely available for use, redistribution, incorporation into
    other code.  Just don't make a profit off it or take my name
    off of it.

    Written in C for BSD and Mach Unix Systems.
    Tested on Vaxes, Sun Workstations, IBM RTs and Pyramids.

    Self contained.  Does not require Sun include files or library
    routines to manipulate Sun rasters.

Availability

    Anonymous FTP

    Host:       nl.cs.cmu.edu (128.2.222.56)
    User:       anonymous
    Password:   name@site
    Directory:  /usr/mlm/ftp/
    Filename:   fbm.tar.Z
    Transfer:   'image'

    Note: you must 'cd' to /usr/mlm/ftp directly, you cannot access
    either /usr, or /usr/mlm alone.  Don't forget to specify 'image'
    format transfer.

    Will be posted to UseNet when the code is stable and
    the documentation is complete and accurate.

Acknowledgements

    GIF read support written by David Koblas.
    GIF write support written by David Rowley.
    Some IFF code by Jerry Morrison and Steve Shaw of Electronic Arts.
    Edge detection and pixel cleaning by Gary Sherwin and Michael Mauldin

Rumours

    Future support is rumoured for TIFF files and MacPaint files.  Also it
    may someday be able to write all of the formats that it can read.

    All that is needed to incorporate a new format is to write a routine
    that reads the given image into memory and one that writes it out
    again.  I will incorporate other code on a "whenever I'm not working
    on my thesis" basis.

Michael L. Mauldin (Fuzzy)              School of Computer Science
ARPA: Michael.Mauldin@NL.CS.CMU.EDU     Carnegie Mellon University
Phone: (412) 268-3065                   Pittsburgh, PA  15213-3890
 with a 24 bit color Amiga file, bar.cp, first create an
        FBM format file with title and credit, then render that file for
        viewing on a Sun by normalizing, rotating, sharpening, and
        quantizing.
-------------------------------------------------------