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 colormapped (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 resolution 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 seriously and produce a matching output maxval.
The tiff-filename argument names the regular file that contains the Tiff image. You cannot use Standard Input or any other special file because the Tiff library must be able to perform seeks on it.
If you specify - as the filename, tifftopnm writes the alpha output to Standard Output and discards the image.
See pnmcomp(1) for one way to use the alpha output file.
All options can be abbreviated to their shortest unique prefix.