about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--directory.html7
-rw-r--r--libpm.html2
-rw-r--r--pamdepth.html3
-rw-r--r--pamfixtrunc.html90
4 files changed, 97 insertions, 5 deletions
diff --git a/directory.html b/directory.html
index 1558cb49..905f9dd1 100644
--- a/directory.html
+++ b/directory.html
@@ -938,12 +938,15 @@ These all work on the Netpbm formats as input.
 <DT><B><a href=pamstack.html>pamstack</a></B>
 <DD>stack the planes of multiple PAM images into a single output image
 
-<DT><B><a href=pampick.html>pampick</a>      </B>
+<DT><B><a href=pampick.html>pampick</a></B>
 <DD>pick images out of a multi-image Netpbm image stream
 
-<DT><B><a href=pamsplit.html>pamsplit</a>      </B>
+<DT><B><a href=pamsplit.html>pamsplit</a></B>
 <DD>split a multi-image Netpbm file into multiple 1-image files
 
+<DT><b><a href="pamfixtrunc"></a></b>
+<dd>repair a Netpbm image whose file is truncated
+
 <DT><B><a href=pambayer.html>pambayer</a></B>
 <DD>interpret Bayer patterns
 
diff --git a/libpm.html b/libpm.html
index 7f1c47af..17e65c5b 100644
--- a/libpm.html
+++ b/libpm.html
@@ -514,7 +514,7 @@ against <B>keyword</B>.  <B>str</B> can be a leading substring of
     <li><a href="#file">File Or Image Stream Access</a>
     <li><a href="#endian">Endian I/O</a>
     <li><a href="#maxval">Maxval Arithmetic</a>
-    <li><a href="#message">Messages And Errors</a>
+    <li><a href="#message">Messages</a>
     <li><a href="#keyword">Keyword</a>
     </ul>
   </ul>
diff --git a/pamdepth.html b/pamdepth.html
index 885edd9e..2eb002ca 100644
--- a/pamdepth.html
+++ b/pamdepth.html
@@ -59,8 +59,7 @@ and the ability to process multi-image input streams.  <b>pnmdepth</b>
 handled only PNM images and ignored all but the the first in any stream.
 
 <HR>
-<A NAME="index">&nbsp;</A>
-<H2>Table Of Contents</H2>
+<H2 id="index">Table Of Contents</H2>
 <UL>
 <LI><A HREF="#synopsis">SYNOPSIS</A>
 <LI><A HREF="#description">DESCRIPTION</A>
diff --git a/pamfixtrunc.html b/pamfixtrunc.html
new file mode 100644
index 00000000..14b8477d
--- /dev/null
+++ b/pamfixtrunc.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML><HEAD><TITLE>Pamfixtrunc User Manual</TITLE></HEAD>
+<BODY>
+<H1>pamfixtrunc</H1>
+Updated: 06 January 2006
+<BR>
+<A HREF="#index">Table Of Contents</A>
+
+<H2>NAME</H2>
+
+pamfixtrunc - repair a Netpbm image whose file is truncated
+
+<H2 id="synopsis">SYNOPSIS</H2>
+
+<B>pamfixtrunc</B>
+
+[<b>-verbose</b>]
+
+[<I>netpbmfile</I>]
+
+<H2 id="description">DESCRIPTION</H2>
+
+<p>This program is part of <a href="index.html">Netpbm</a>.
+
+<p><b>pamfixtrunc</b> 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.
+
+<p>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 <b>pamfixtrunc</b> 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).
+
+<p>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.
+
+<p>Another problem <b>pamfixtrunc</b> 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).  <b>pamfixtrunc</b>
+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.
+
+<p>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
+<b>pamfixtrunc</b> simply creates a valid Netpbm image containing a
+garbage picture.
+
+<p><b>pamfixtrunc</b> looks at only on the first image in a multi-image
+stream.
+
+<p>If you want to test an image file to see if it is corrupted by being
+too small, use <b>pamfile --allimages</b> .  It fails with an error
+message if the file is too small.
+
+<p>If you want to cut the bottom off a valid Netpbm image, use
+<b>pamcut</b>.
+
+<H2 id="seealso">SEE ALSO</H2>
+
+<A HREF="pnm.html">pnm</A>,
+<A HREF="pam.html">pam</A>,
+<A HREF="pamcut.html">pamcut</A>,
+<A HREF="pamfile.html">pamfile</A>,
+
+<h2 id="history">HISTORY</h2>
+
+<p><b>pamfixtrunc</b> was new in Netpbm 10.38 (March 2007).
+
+<HR>
+<H2 id="index">Table Of Contents</H2>
+<UL>
+<LI><A HREF="#synopsis">SYNOPSIS</A>
+<LI><A HREF="#description">DESCRIPTION</A>
+<LI><A HREF="#seealso">SEE ALSO</A>
+<LI><A HREF="#history">HISTORY</A>
+</UL>
+</BODY>
+</HTML>