# tifftopnm(1) - man - phpMan

[tifftopnm(1)](https://www.chedong.com/phpMan.php/man/tifftopnm/1/markdown)                           General Commands Manual                          [tifftopnm(1)](https://www.chedong.com/phpMan.php/man/tifftopnm/1/markdown)



## NAME
       tifftopnm - convert a TIFF file into a portable anymap


## SYNOPSIS
       **tifftopnm** [**-alphaout=**{_alpha-filename_,**-**}] [**-headerdump**] [**-respectfillorder**] [_tiff-filename_]

       You may abbreviate any option to its shortest unique prefix.  You may use two hyphens instead
       of one in options.  You may separate an option and its value either  by  an  equals  sign  or
       white space.


## DESCRIPTION
       Reads  a  TIFF  file as input.  Produces a portable anymap as output.  The type of the output
       file depends on the input file - if it's black  &  white,  generates  a  _pbm_  file;  if  it's
       grayscale,  generates a _pgm_ file; otherwise, a _ppm_ file.  The program tells you which type it
       is writing.

       This program cannot read every possible TIFF file -- there are myriad variations of the  TIFF
       format.   However,  it  does  understand monochrome and gray scale, RGB, RGBA (red/green/blue
       with alpha channel), CMYK (Cyan-Magenta-Yellow-Black ink color separation), and color palette
       TIFF  files.   An RGB file can have either single plane (interleaved) color or multiple plane
       format.  The program reads 1-8 and 16 bit-per-sample input, the latter in either bigendian or
       littlendian encoding.  Tiff directory information may also be either bigendian or littendian.

       One  reason  this program isn't as general as TIFF programs often are is that it does not use
       the TIFFRGBAImageGet() function of the TIFF library to read TIFF files.  Rather, it uses  the
       more primitive TIFFReadScanLine() function and decodes it itself.

       There  is  no  fundamental reason that this program could not read other kinds of TIFF files;
       the existing limitations are mainly because no one has asked for more.

       The PNM output has the same maxval as the Tiff input, except that if the Tiff input  is  col‐
       ormapped  (which  implies a maxval of 65535) the PNM output has a maxval of 255.  Though this
       may result in lost information, such input images hardly ever actually have more color  reso‐
       lution  than  a  maxval of 255 provides and people often cannot deal with PNM files that have
       maxval > 255.  By contrast, a non-colormapped Tiff image that doesn't need  a  maxval  >  255
       doesn't  _have_ a maxval > 255, so when we see a non-colormapped maxval > 255, we take it seri‐
       ously and produce a matching output maxval.

       The _tiff-filename_ argument names the regular file that contains the Tiff image.  If you spec‐
       ify  "-"  or  don't  specify this argument, **tfftopnm** uses Standard Input. In either case, the
       file must be seekable.  That means no pipe, but any regular file is fine.


## OPTIONS
### -alphaout=
              **tifftopnm** creates a PGM (portable graymap) file containing the alpha channel values in
              the input image.  If the input image doesn't contain an alpha channel, the _alpha-file__‐
              _name_ file contains all zero (transparent) alpha values.  If  you  don't  specify  **-al**‐‐
              **phaout**, **tifftopnm** does not generate an alpha file, and if the input image has an alpha
              channel, **tifftopnm** simply discards it.

              If you specify **-** as the filename, **tifftopnm** writes the alpha output to Standard Output
              and discards the image.

              See [**pnmcomp**(1)](https://www.chedong.com/phpMan.php/man/pnmcomp/1/markdown) for one way to use the alpha output file.

### -respectfillorder
              By  default,  **tifftopnm**  ignores the "fillorder" tag in the TIFF input, which means it
              may incorrectly interpret the image.  To make it follow the  spec,  use  this  option.
              For  a  lengthy but engaging discussion of why **tifftopnm** works this way and how to use
              the **-respectfillorder** option, see the note on fillorder below.


### -headerdump
              Dump TIFF file information to stderr.  This information may  be  useful  in  debugging
              TIFF file conversion problems.

       All options can be abbreviated to their shortest unique prefix.


## NOTES
### Fillorder
       There  is  a piece of information in the header of a TIFF image called "fillorder."  The TIFF
       specification quite clearly states that this value tells the order in which bits are arranged
       in a byte in the description of the image's pixels.  There are two options, assuming that the
       image has a format where more than one pixel can be represented by a single byte: 1) the byte
       is  filled from most signficant bit to least signficant bit going left to right in the image;
       and 2) the opposite.

       However, there is confusion in the world as to the meaning of fillorder.  Evidence shows that
       some  people  believe  it has to do with byte order when a single value is represented by two
       bytes.

       These people cause TIFF images to be created that, while they  use  a  MSB-to-LSB  fillorder,
       have  a  fillorder  tag that says they used LSB-to-MSB.  A program that properly interprets a
       TIFF image will not end up with the image that the author intended in this case.

       For a long time, **tifftopnm** did not understand fillorder itself and assumed the fillorder  was
       MSB-to-LSB  regardless  of the fillorder tag in the TIFF header.  And as far as I know, there
       is no legitimate reason to use a fillorder other than MSB-to-LSB.  So users of **tifftopnm** were
       happily using those TIFF images that had incorrect fillorder tags.

       So  that  those  users can continue to be happy, **tifftopnm** today continues to ignore the fil‐
       lorder tag unless you tell it not to.  (It does, however, warn you  when  the  fillorder  tag
       does not say MSB-to-LSB that the tag is being ignored).

       If for some reason you have a TIFF image that actually has LSB-to-MSB fillorder, and its fil‐
       lorder tag correctly indicates that, you must use the **-respectfillorder** option  on  **tifftopnm**
       to get proper results.

       Examples of incorrect TIFF images are at ftp://weather.noaa.gov.  They are apparently created
       by a program called **faxtotiff**.

       This note was written on January 1, 2002.



## SEE ALSO
       [**pnmtotiff**(1)](https://www.chedong.com/phpMan.php/man/pnmtotiff/1/markdown), [**pnmtotiffcmyk**(1)](https://www.chedong.com/phpMan.php/man/pnmtotiffcmyk/1/markdown), [**pnmcomp**(1)](https://www.chedong.com/phpMan.php/man/pnmcomp/1/markdown), [**pnm**(5)](https://www.chedong.com/phpMan.php/man/pnm/5/markdown)

## AUTHOR
       Derived by Jef Poskanzer from tif2ras.c, which is Copyright (c)  1990  by  Sun  Microsystems,
       Inc.  Author: Patrick J. Naughton (<naughton@wind.sun.com>).



                                            02 April 2000                               [tifftopnm(1)](https://www.chedong.com/phpMan.php/man/tifftopnm/1/markdown)
