Provided by: netpbm_11.05.02-1.1build1_amd64 bug

NAME

       pamfix - repair a Netpbm image with various corruptions

SYNOPSIS

       pamfix

       [-truncate] [-changemaxval] [-clip] [-verbose]

       [netpbmfile]

       Minimum unique abbreviation of option is acceptable.  You may use double hyphens instead of single hyphen
       to  denote  options.  You may use white space in place of the equals sign to separate an option name from
       its value.

DESCRIPTION

       This program is part of Netpbm(1).

       pamfix reads a stream that is mostly a Netpbm image  but  may  have  certain  types  of  corruptions  and
       produces a valid Netpbm image that preserves much of the information in the original.

       In particular, Netpbm salvages streams that are truncated and that contain illegally large sample values.

       pamfix looks at only on the first image in a multi-image stream.

   Truncated Stream
       This  is  a  stream that is missing the last part.  Netpbm corrects this by creating an output image that
       simply has fewer rows.

       You select this kind of repair with a -truncate option.

       The header of a Netpbm image implies how large the image must be (how many bytes the file must  contain).
       If  the  file is actually smaller than that, a Netpbm program that tries to read the image fails, with an
       error message telling you that it couldn't read the whole file.  The data in the file is arranged in  row
       order,  from top to bottom, and the most common reason for the file being smaller than its header says it
       should be is because the bottommost rows are simply missing.  So pamfix assumes  that  is  the  case  and
       generates a new image with just the rows that are readable.  (technically, that means the output's header
       indicates a smaller number of rows and omits any partial last row).

       The  most  common  way  for  a  Netpbm  file  to  be small is that something interrupted the program that
       generated it before it was finished writing the file.  For example, the program ran out of its own  input
       or encountered a bug or ran out of space in which to write the output.

       Another  problem  pamfix  deals  with is where the file isn't actually too small, but because of a system
       error, a byte in the middle of it cannot be read (think of a disk storage  failure).   pamfix  reads  the
       input  sequentially  until  it  can't  read any further, for any reason.  So it treats such an image as a
       truncated one, ignoring all data after the unreadable byte.

       But be aware that an image file is sometimes too small because of a bug in the program that generated it,
       and in that case it is not simply a matter of the bottom of the image missing, so pamfix simply creates a
       valid Netpbm image containing a garbage picture.

       If you want to test an image file to see if it is corrupted by being too small, use pamfile --allimages .
       It fails with an error message if the file is too small.

       If you want to cut the bottom off a valid Netpbm image, use pamcut.

   Excessive Sample Value
       This is a stream that contains a purported sample value that is higher than the maxval of the image.

       The header of a Netpbm image tells the maxval of the image, which is a value that gives  meaning  to  all
       the sample values in the raster.  The sample values represent a fraction of the maxval, so a sample value
       that is greater than the maxval makes no sense.

       A  regular Netpbm program fails if you give it input that contains a value larger than the maxval where a
       sample value belongs.

       pamfix has three ways of salvaging such a stream:

       •      Clip to the maxval.  Request this with -clip.

       •      Raise the maxval, thus lowering the fraction represented by every sample in  the  image.   Request
              this with -changemaxval.

       •      Truncate  the  image  at  the first invalid sample value.  Request this with -truncate and neither
              -clip nor -changemaxval.

       You cannot specify both -clip and -changemaxval.

OPTIONS

       In addition to the options common to all programs based on libnetpbm (most notably  -quiet,  see   Common
       Options ), pamfix recognizes the following command line options:

       -truncate
              Create a truncated output image from all the valid input rows that could be read.

       -changemaxval
              Raise  the  maxval  to  cope  with pixel values that exceed the maxval stated in the header of the
              input file.

       -clip  Change all pixel values that exceed the maxval stated in the header of the input file.

       -verbose
              Report details of the transportation to standard error.

SEE ALSO

       pnm(1), pam(1), pamcut(1), pamfile(1), pamvalidate(1)

HISTORY

       pamfix was new in Netpbm 10.66 (March 2014).  But it grew out of pamfixtrunc, which  was  new  in  Netpbm
       10.38  (March  2007)  and did only the truncated image repair (and for invalid sample values would simply
       pass them through to its output, generating an invalid Netpbm image).

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/pamfix.html

netpbm documentation                              06 March 2014                            Pamfix User Manual(1)