dwww Home | Manual pages | Find package

Pamtotiff User Manual(1)    General Commands Manual    Pamtotiff User Manual(1)

NAME
       pamtotiff - convert a Netpbm image to a TIFF file

SYNOPSIS
       pamtotiff

       [-none | -packbits | -lzw | -g3 | -g4 | -flate | -adobeflate]

       [-2d]

       [-fill]

       [-predictor=n]

       [-msb2lsb|-lsb2msb]

       [-rowsperstrip=n]

       [-minisblack|-miniswhite|mb|mw]

       [-truecolor]

       [-color]

       [-indexbits=bitwidthlist] [-xresolution=xres]

       [-yresolution=yres] [-resolutionunit={inch | centimeter | none | in | cm
       | no}]

       [-append]

       [-tag=taglist]

       [pamfile]

       You can use the minimum unique abbreviation of the options.  You can use
       two  hyphens  instead  of one.  You can separate an option name from its
       value with white space instead of an equals sign.

DESCRIPTION
       This program is part of Netpbm(1).

       pamtotiff reads a PNM or PAM image as input and produces a TIFF file  as
       output.

       Actually,  it  handles multi-image Netpbm streams, producing multi-image
       TIFF streams (i.e. a TIFF stream with multiple "directories").  But  be-
       fore  Netpbm 10.27 (March 2005), it ignored all but the first Netpbm im-
       age in the input stream.

   The Output File
       By default, the output goes to Standard Output.  Alternatively, you  can
       specify  an output file with the -output option and pamtotiff will write
       its output directly to that file.

       Because of the way the TIFF library (which pamtotiff uses)  works,  when
       the  program writes to Standard Output, it generates the entire TIFF im-
       age in a temporary file and then copies it to Standard Output;  you  may
       see negative performance effects of this.

       The  -output  method  avoids the performance effects of the copy through
       the temporary file, but there are restrictions on the  output  file:  it
       must  be  seekable  and it must be readable.  The program fails if it is
       not.  With Standard Output, neither of those restrictions applies.

       With -output, if the file already exists and has data in  it,  pamtotiff
       appends  the  image to the existing TIFF file.  (A TIFF file may contain
       multiple images).

       By default, pamtotiff creates the file named by -output if it  does  not
       already  exist.   But  if you also specify -append, the program fails if
       the file named by -output does not already exist.

       Before Netpbm 10.67 (June 2014), there is no -output option and Standard
       Output must be seekable.  So pipes are out.

       Before Netpbm 10.67 (June 2014), you could append  to  Standard  Output.
       See  below.  The current program does not have the ability; you must use
       -output to append to an existing TIFF file.

       The difference above means current pamtotiff is  actually  not  backward
       compatible, which is a rare thing for Netpbm.  But it's a good thing be-
       cause  the  previous  function was very strange and probably hardly ever
       exploited.

       Old Versions

       As alluded to above, pamtotiff does output very differently in  releases
       before  10.67.   The  following describes the old function, which is un-
       usual both for Netpbm and for Unix programs in general.

       •      The output file must be seekable.  pamtotiff does  not  write  it
              sequentially.   Therefore,  you  can't use a pipe; you can't pipe
              the output of pamtotiff to some other program.  But  any  regular
              file should work.

       •      If  the output file descriptor is readable, you must either spec-
              ify -append so as to add to the existing file, or make  sure  the
              file  is empty.  Otherwise, pamtotiff will fail with an unhelpful
              message telling you that a TIFF library function failed  to  open
              the TIFF output stream.

       •      If you are converting multiple images (your input stream contains
              multiple  images),  the  output  file  must  be both readable and
              writable.

       If you're using a Unix command shell to run pamtotiff, you  use  facili-
       ties of your shell to set up Standard Output.  In Bash, for example, you
       would  set up a write-only Standard Output to the file /tmp/myimage.tiff
       like this:

           $ pamtotiff myimage.pnm >/tmp/myimage.tiff

       In Bash, you would set up a  read/write  Standard  Output  to  the  file
       /tmp/myimage.tiff like this:

           $ pamtotiff myimage.pnm 1<>/tmp/myimage.tiff

   TIFF Capability
       pamtotiff  uses the Libtiff.org TIFF library (or whatever equivalent you
       provide) to generate the TIFF output.  Details of the format it produces
       are therefore controlled by that library.

OPTIONS
       In addition to the options common to all  programs  based  on  libnetpbm
       (most  notably  -quiet,  see ]8;;index.html#commonoptions\ Common Options]8;;\ ), pamtotiff recognizes the
       following command line options:

   Compression
       By default, pamtotiff creates a TIFF file with no compression.  This  is
       your  best bet most of the time.  If you want to try another compression
       scheme or tweak some of the other  even  more  obscure  output  options,
       there are a number of options which to play.

       Before  Netpbm 8.4 (April 2000), the default was to use LZW compression.
       But then new releases of the TIFF library started omitting the LZW  com-
       pression  capability  because of concern about patents on LZW.  So since
       then, the default has been no compression.  The LZW patents have now ex-
       pired and new TIFF libraries do LZW, but the pamtotiff behavior  remains
       the same for compatibility with older TIFF libraries and applications of
       pamtotiff.

       The  -none,  -packbits,  -lzw, -g3, -g4, -flate, and -adobeflate options
       are used to override the default and set the compression scheme used  in
       creating the output file.

       The -predictor option is meaningful only with LZW compression: a predic-
       tor value of 2 causes each scanline of the output image to undergo hori-
       zontal differencing before it is encoded; a value of 1 forces each scan-
       line  to be encoded without differencing.  By default, pamtotiff creates
       a TIFF file with msb-to-lsb fill order.  The -msb2lsb and  -lsb2msb  op-
       tions  are  used  to override the default and set the fill order used in
       creating the file.

       With some older TIFF libraries, -lzw doesn't work because the  TIFF  li-
       brary  doesn't  do  LZW  compression.  This is because of concerns about
       Unisys's patent on LZW which was then in force.  Actually, with very old
       TIFF libraries, -lzw works because no distributors of the  TIFF  library
       were sensitive yet to the patent issue.

       -flate chooses "flate" compression, which is the patent-free compression
       common in the Unix world implemented by the "Z" library.  It is what the
       PNG format uses.

       Fax Compression

       If  you  have bilevel data (e.g. PBM), you can generate a TIFF that uses
       the same compression scheme specified for use by fax machines.  See  the
       Fax Format(1) page for more information on these compression schemes.

       These  formats  all  relate to ITU Group 3 and Group 4 fax machine stan-
       dards.

       The -g3 option chooses MH or MR compression: MR with the additional  op-
       tion  -2d; MH without it.  -g4 selects MMR.  The option names are a lit-
       tle unfortunate and historical, but are consistent with the TIFF  speci-
       fication.

       MMR has a better compression ratio than the other two.

       -fill  specifies  that  for  MH or MR compression, each encoded scanline
       shall be zero-filled to a byte boundary.

       -2d and -fill are meaningful only with -g3.

   Fill Order
       The -msb2lsb and lsb2msb options control the fill order.

       The fill order is the order in which pixels are packed into  a  byte  in
       the  Tiff  raster,  in the case that there are multiple pixels per byte.
       msb-to-lsb means that the leftmost columns go into the most  significant
       bits of the byte in the Tiff image.  However, there is considerable con-
       fusion  about  the meaning of fill order.  Some believe it means whether
       16 bit sample values in the Tiff image are little-endian or  big-endian.
       This is totally erroneous (The endianness of integers in a Tiff image is
       designated by the image's magic number).  However, ImageMagick and older
       Netpbm   both   have   been  known  to  implement  that  interpretation.
       2001.09.06.

       If the image does not have sub-byte pixels, these options have no effect
       other than to set the value of the  FILLORDER  tag  in  the  Tiff  image
       (which  may  be useful for those programs that misinterpret the tag with
       reference to 16 bit samples).

   Color Space
       -color tells pamtotiff to produce a color, as opposed to grayscale, TIFF
       image if the input is PPM, even if it  contains  only  shades  of  gray.
       Without  this  option,  pamtotiff produces a grayscale TIFF image if the
       input is PPM and contains only shades of gray, and at most  256  shades.
       Otherwise, it produces a color TIFF output.  For PBM and PGM input, pam-
       totiff  always produces grayscale TIFF output and this option has no ef-
       fect.

       The -color option can prevent pamtotiff from making two  passes  through
       the  input  file,  thus  improving speed and memory usage.  See ]8;;#multipass\Multiple
       Passes]8;;\ .

       -truecolor tells pamtotiff to produce the 24-bit RGB form of TIFF output
       if it is producing a color TIFF image.  Without this  option,  pamtotiff
       produces  a colormapped (paletted) TIFF image unless there are more than
       256 colors (and in the latter case, issues a warning).

       The -truecolor option can  prevent  pamtotiff  from  making  two  passes
       through the input file, thus improving speed and memory usage.  See ]8;;#multipass\Mul-
       tiple Passes]8;;\ .

       The  -color and -truecolor options did not exist before Netpbm 9.21 (De-
       cember 2001).

       If pamtotiff produces a grayscale TIFF image, this option has no effect.

       The -minisblack and -miniswhite options force the output image to have a
       "minimum is black" or "minimum is white" photometric, respectively.   If
       you  don't  specify  either, pamtotiff uses minimum is black except when
       using Group 3 or Group 4 compression, in which  case  pamtotiff  follows
       CCITT fax standards and uses "minimum is white." This usually results in
       better compression and is generally preferred for bilevel coding.  These
       photometrics  are  for grayscale images, so these options are invalid if
       the image is color (but only if it is truly color; they are valid  with,
       for example, a PPM image that contains only shades of gray).

       Before  Netpbm  9.11 (February 200)1, pamtotiff always produced "minimum
       is black," because of a bug.  In either case, pamtotiff sets the  photo-
       metric  interpretation  tag in the TIFF output according to which photo-
       metric is actually used.

       Before Netpbm 10.78 (March 2017), pamtotiff  respected  -miniswhite  and
       -minisblack  even  with color images, producing invalid TIFF images that
       have the indicated photometric but red, green, and blue raster planes.

       The -indexbits option is meaningful only for  a  colormapped  (paletted)
       image.   In this kind of image, the raster contains values which are in-
       dexes into a table of colors, with  the  indexes  normally  taking  less
       space  that  the color description in the table.  pamtotiff can generate
       indexes of 1, 2, 4, or 8 bits.  By default, it will use 8, because  many
       programs that interpret TIFF images can't handle any other width.

       But  if  you have a small number of colors, you can make your image con-
       siderably smaller by allowing fewer than 8 bits  per  index,  using  the
       -indexbits  option.   The  value  is  a  comma-separated list of the bit
       widths you allow.  pamtotiff chooses the smallest width you  allow  that
       allows  it to index the entire color table.  If you don't allow any such
       width, pamtotiff fails.  Normally, the only useful value for this option
       is 1,2,4,8, because a program either understands the 8  bit  width  (de-
       fault) or understands them all.

       In  a Baseline TIFF image, according to the 1992 TIFF 6.0 specification,
       4 and 8 are the only valid widths.  There are no formal  standards  that
       allow any other values.

       This  option  was  added  in June 2002.  Before that, only 8 bit indices
       were possible.

   Extra Tags
       There are lots of tag types in the TIFF format that don't correspond  to
       any  information  in  the  PNM  format  or to anything in the conversion
       process.  For example, a TIFF_ARTIST tag names the  artist  who  created
       the image.

       You  can  tell  pamtotiff explicitly to include tags such as this in its
       output with the -tag option.  You identify a list of tag types and  val-
       ues  and  pamtotiff  includes  a tag in the output for each item in your
       list.

       The value of -tag is the list of tags, like this example:

           -tag=subfiletype=reducedimage,documentname=Fred,xposition=25

       As you see, it is a list of  tag  specifications  separated  by  commas.
       Each tag specification is a name and a value separated by an equal sign.
       The  name  is  the name of the tag type, except in arbitrary upper/lower
       case.  One place to see the names of TIFF tag types is in the  TIFF  li-
       brary's  tiff.h file, where there is a macro defined for each consisting
       of "TIFF_" plus the name.  E.g. for the SUBFILETYPE tag type, there is a
       macro TIFF_SUBFILETYPE.

       The format of the value specification for a tag (stuff after  the  equal
       sign) depends upon what kind of value the tag type has:

       •      Integer: a decimal number

       •      Floating point number: a decimal number

       •      String: a string

       •      Enumerated  (For example, a 'subfiletype' tag takes an enumerated
              value.  Its possible values are REDUCEDIMAGE, PAGE,  and  MASK.):
              The  name  of the value.  You can see the possible value names in
              the TIFF library's tiff.h file, where there is  a  macro  defined
              for each consisting of a qualifier plus the value name.  E.g. for
              the  REDUCEDIMAGE  value  of a SUBFILETYPE tag, you see the macro
              FILETYPE_REDUCEDIMAGE.

              The TIFF format assigns a unique number to each enumerated  value
              and  you  can specify that number, in decimal, as an alternative.
              This is useful if you are using an extension of TIFF that  pamto-
              tiff doesn't know about.

       If  you specify a tag type with -tag that is not independent of the con-
       tent of your PNM source image and pamtotiff's conversion process (i.e. a
       tag type in which pamtotiff is interested), pamtotiff fails.  For  exam-
       ple,  you  cannot specify an IMAGEWIDTH tag with -tag, because pamtotiff
       generates an IMAGEWIDTH tag that gives the actual width of the image.

       -tag was new in Netpbm 10.31 (December 2005).

   Output
       See ]8;;#output\The Output File]8;;\ .

       -output names the output file.  Without this option pamtotiff writes  to
       Standard Output.

       The  -append  option tells pamtotiff only to append to the file named by
       output; not create it.  Without this option,  the  program  creates  the
       file it does not already exist.  But even then, if the file does already
       exist, the program appends the image to what is in the file already.  (A
       TIFF file may contain multiple images).

       -append has no effect if you don't also specify -output.

       Before  Netpbm 10.67 (June 2014), -append means something rather differ-
       ent: it means to append the image to the output TIFF file (which is  al-
       ways Standard Output in 10.67) instead of replacing its contents.

       -append was new in Netpbm 10.27 (March 2005).

   Other
       You  can  use  the -rowsperstrip option to set the number of rows (scan-
       lines) in each strip of data in the output file.  By default, the output
       file has the number of rows per strip set to a value  that  will  ensure
       each strip is no more than 8 kilobytes long.

NOTES
       There  are myriad variations of the TIFF format, and this program gener-
       ates only a few of them.  pamtotiff creates a grayscale TIFF file if its
       input is a PBM (monochrome) or PGM (grayscale) or equivalent  PAM  file.
       pamtotiff  also  creates  a grayscale file if it input is PPM (color) or
       equivalent PAM, but there is only one color in the image.

       If the input is a PPM (color) file and there are 256  colors  or  fewer,
       but  more  than  1,  pamtotiff  generates a color palette TIFF file.  If
       there are more colors than that, pamtotiff generates an RGB  (not  RGBA)
       single plane TIFF file.  Use pnmtotiffcmyk to generate the cyan-magenta-
       yellow-black ink color separation TIFF format.

       The  number  of  bits per sample in the TIFF output is determined by the
       maxval of the Netpbm input.  If the maxval is less than  256,  the  bits
       per sample in the output is the smallest number that can encode the max-
       val.   If  the maxval is greater than or equal to 256, there are 16 bits
       per sample in the output.

   Extra Channels
       Like most Netpbm programs, pamtotiff's function is mostly  undefined  if
       the  input  is  PAM  image  with  tuple  type  other than BLACKANDWHITE,
       GRAYSCALE, or RGB.  Most of the statements in this manual assume the in-
       put is not such an exotic PAM.  But there is a little defined processing
       of other PAM subformats.

       pamtotiff assumes any 1 plane PAM image is  BLACKANDWHITE  or  GRAYSCALE
       (and doesn't distinguish between those two).

       pamtotiff  assumes a PAM with more than 1 plane is of tuple type RGB ex-
       cept with that number of planes instead of 3.  pamtotiff doesn't  really
       understand red, green, and blue, so it has no trouble with a 2-component
       or  5-component color space.  The TIFF format allows an arbitrary number
       of color components, so pamtotiff simply maps the PAM planes directly to
       TIFF color components.  I don't know if the meanings of 5 components  in
       a  TIFF image are standard at all, but the function is there if you want
       to use it.

       Note that pamtotiff may generate either a truecolor or colormapped image
       with an arbitrary number of color components.  In  the  truecolor  case,
       the  raster  has  that  number  of planes.  In the colormapped case, the
       raster has of course 1 plane, but the color map has all the color compo-
       nents in it.

       The most common reason for a PAM to have extra planes is when the  tuple
       type  is  xxx_ALPHA,  which means the highest numbered plane is a trans-
       parency plane (alpha channel).  At least one user found that a TIFF with
       an extra plane for transparency was useful.

       Note that the grayscale detection works on  N-component  colors,  so  if
       your  planes aren't really color components, you'll want to disable this
       via the -color option.

   Multiple Passes
       pamtotiff reads the input image once if it can, and otherwise twice.  It
       needs that second pass (which happens before the main pass,  of  course)
       to  analyze  the  colors in the image and generate a color map (palette)
       and determine if the image is grayscale.  So  the  second  pass  happens
       only  when  the  input  is PPM.  And you can avoid it then by specifying
       both the -truecolor and -color options.

        If the input image is small enough to fit in your system's file  cache,
       the  second  pass  is  very fast.  If not, it requires reading from disk
       twice, which can be slow.

       When the input is from a file that cannot be rewound and reread,  pamto-
       tiff  reads  the entire input image into a temporary file which can, and
       works from that.  Even if it needs only one pass.

       Before Netpbm 9.21 (December 2001), pamtotiff always read the entire im-
       age into virtual memory and then did one, two, or three  passes  through
       the  memory copy.  The -truecolor and -color options did not exist.  The
       passes through memory would involve page faults if the entire image  did
       not  fit  into  real  memory.  The image in memory required considerably
       more memory (12 bytes per pixel) than the cached file version of the im-
       age would.

   Resolution
       A Tiff image may contain information about the resolution of the  image,
       which means how big in real dimensions (centimeters, etc.) each pixel in
       the  raster  is.   That information is in the TIFF XRESOLUTION, YRESOLU-
       TION, and RESOLUTIONUNIT tags.  By default, pamtotiff does  not  include
       any tags of these types, but you can specify them with the -tags option.

       There  are also options -xresolution, -yresolution, and -resolutionunit,
       but those are obsolete.  Before -tags existed (before Netpbm 10.31  (De-
       cember 2005), they were the only way.

       Note  that  the  number  of pixels in the image and how much information
       each contains is determined independently from the setting of the  reso-
       lution  tags.   The number of pixels in the output is the same as in the
       input, and each pixel contains the same information.  For  your  resolu-
       tion  tags  to be meaningful, they have to consistent with whatever cre-
       ated the PNM input.  E.g. if a scanner turned a 10 centimeter wide image
       into a 1000 pixel wide PNM image, then your horizontal resolution is 100
       pixels per centimeter, and if your XRESOLUTION tag says  anything  else,
       something that prints your TIFF image won't print the proper 10 centime-
       ter image.

       The value of the XRESOLUTION tag is a floating point decimal number that
       tells  how  many pixels there are per unit of distance in the horizontal
       direction.  -yresolution is analogous for the vertical direction.

       The unit of distance is given by the value of the RESOLUTIONUNIT option.
       That value is either INCH, CENTIMETER, or NONE.  NONE means the unit  is
       arbitrary  or unspecified.  This could mean that the creator and user of
       the image have a separate agreement as to what the unit  is.   But  usu-
       ally,  it  just means that the horizontal and vertical resolution values
       cannot be used for anything except to determine  aspect  ratio  (because
       even  though the unit is arbitrary or unspecified, it has to be the same
       for both resolution numbers).

       If you don't use a -tag option to specify the resolution tag and use the
       obsolete options instead, note the following:

       •      If you don't include an specify -xresolution, the Tiff image does
              not contain  horizontal  resolution  information.   Likewise  for
              -yresolution.   If you don't specify -resolutionunit, the default
              is inches.

       •      Before Netpbm 10.16 (June 2003), -resolutionunit  did  not  exist
              and the resolution unit was always inches.

HISTORY
       pamtotiff was originally pnmtotiff and did not handle PAM input.  It was
       extended and renamed in Netpbm 10.30 (October 2005).

SEE ALSO
       tifftopnm(1), pnmtotiffcmyk(1), pamdepth(1), pamtopnm(1), pam(1)

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

DOCUMENT SOURCE
       This manual page was generated by the Netpbm tool  'makeman'  from  HTML
       source.  The master documentation is at

              http://netpbm.sourceforge.net/doc/pamtotiff.html

netpbm documentation             05 April 2017         Pamtotiff User Manual(1)

Generated by dwww version 1.16 on Tue Dec 16 05:01:50 CET 2025.