Pamfixtrunc User Manual(0) Pamfixtrunc User Manual(0)
pamfixtrunc - repair a Netpbm image whose file is truncated
This program is part of Netpbm(1)
pamfixtrunc reads as much as it can of a Netpbm image that may be truncated (i.e. the file
may not contain the last part of the image) and writes out a valid Netpbm image that is
just missing the bottom rows of the original (pre-truncation) image.
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 pamfixtrunc 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 pro-
gram 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
Another problem pamfixtrunc deals with is where the file isn't actually too small, but due
to a system error, a byte in the middle of it cannot be read (think of a disk storage
failure). pamfixtrunc 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
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 pamfixtrunc simply creates a valid Netpbm image containing a garbage picture.
pamfixtrunc looks at only on the first image in a multi-image stream.
If you want to test an image file to see if it is corrupted by being too small, use pam-
file --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.
pnm(5) , pam(5) , pamcut(1) , pamfile(1) ,
pamfixtrunc was new in Netpbm 10.38 (March 2007).
netpbm documentation 06 January 2006 Pamfixtrunc User Manual(0)