diff --git a/.gitignore b/.gitignore
index cb12c92..f4510f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,16 @@
/netpbm-10.89.00.tar.xz
/netpbm-10.90.00.tar.xz
/netpbm-10.92.00.tar.xz
+/netpbm-10.93.00.tar.xz
+/netpbm-10.94.05.tar.xz
+/netpbm-10.95.00.tar.xz
+/netpbm-10.96.00.tar.xz
+/netpbm-10.97.00.tar.xz
+/netpbm-10.99.00.tar.xz
+/netpbm-11.00.00.tar.xz
+/netpbm-11.01.00.tar.xz
+/netpbm-11.02.00.tar.xz
+/netpbm-11.09.00.tar.xz
+/netpbm-11.10.00.tar.xz
+/netpbm-11.12.00.tar.xz
+/netpbm-11.13.00.tar.xz
diff --git a/fix.patch b/fix.patch
new file mode 100644
index 0000000..b3c3cb9
--- /dev/null
+++ b/fix.patch
@@ -0,0 +1,1336 @@
+diff --git a/analyzer/pgmtexture.c b/analyzer/pgmtexture.c
+index c69643e..2e09dde 100644
+--- a/analyzer/pgmtexture.c
++++ b/analyzer/pgmtexture.c
+@@ -54,6 +54,7 @@ vector(unsigned int const nl,
+
+ assert(nh >= nl);
+
++ overflow_add(nh - nl, 1);
+ MALLOCARRAY(v, (unsigned) (nh - nl + 1));
+
+ if (v == NULL)
+@@ -85,6 +86,7 @@ matrix (unsigned int const nrl,
+ assert(nrh >= nrl);
+
+ /* allocate pointers to rows */
++ overflow_add(nrh - nrl, 1);
+ MALLOCARRAY(m, (unsigned) (nrh - nrl + 1));
+ if (m == NULL)
+ pm_error("Unable to allocate memory for a matrix.");
+@@ -93,6 +95,7 @@ matrix (unsigned int const nrl,
+
+ assert (nch >= ncl);
+
++ overflow_add(nch - ncl, 1);
+ /* allocate rows and set pointers to them */
+ for (i = nrl; i <= nrh; ++i) {
+ MALLOCARRAY(m[i], (unsigned) (nch - ncl + 1));
+diff --git a/converter/other/gemtopnm.c b/converter/other/gemtopnm.c
+index 6bbfcc0..24199cb 100644
+--- a/converter/other/gemtopnm.c
++++ b/converter/other/gemtopnm.c
+@@ -106,6 +106,7 @@ main(argc, argv)
+
+ pnm_writepnminit( stdout, cols, rows, MAXVAL, type, 0 );
+
++ overflow_add(cols, padright);
+ {
+ /* allocate input row data structure */
+ int plane;
+diff --git a/converter/other/jpegtopnm.c b/converter/other/jpegtopnm.c
+index 98552c0..311298c 100644
+--- a/converter/other/jpegtopnm.c
++++ b/converter/other/jpegtopnm.c
+@@ -862,6 +862,8 @@ convertImage(FILE * const ofP,
+ /* Calculate output image dimensions so we can allocate space */
+ jpeg_calc_output_dimensions(cinfoP);
+
++ overflow2(cinfoP->output_width, cinfoP->output_components);
++
+ /* Start decompressor */
+ jpeg_start_decompress(cinfoP);
+
+diff --git a/converter/other/pbmtopgm.c b/converter/other/pbmtopgm.c
+index 817fb5b..8baaa57 100644
+--- a/converter/other/pbmtopgm.c
++++ b/converter/other/pbmtopgm.c
+@@ -60,6 +60,7 @@ main(int argc, char *argv[]) {
+
+
+ outrow = pgm_allocrow(cols) ;
++ overflow2(width, height);
+ maxval = MIN(PGM_OVERALLMAXVAL, width*height);
+ pgm_writepgminit(stdout, cols, rows, maxval, 0) ;
+
+diff --git a/converter/other/pnmtoddif.c b/converter/other/pnmtoddif.c
+index b7b942b..52be0e4 100644
+--- a/converter/other/pnmtoddif.c
++++ b/converter/other/pnmtoddif.c
+@@ -629,6 +629,7 @@ main(int argc, char *argv[]) {
+ switch (PNM_FORMAT_TYPE(format)) {
+ case PBM_TYPE:
+ ip.bits_per_pixel = 1;
++ overflow_add(cols, 7);
+ ip.bytes_per_line = (cols + 7) / 8;
+ ip.spectral = 2;
+ ip.components = 1;
+@@ -644,6 +645,7 @@ main(int argc, char *argv[]) {
+ ip.polarity = 2;
+ break;
+ case PPM_TYPE:
++ overflow2(cols, 3);
+ ip.bytes_per_line = 3 * cols;
+ ip.bits_per_pixel = 24;
+ ip.spectral = 5;
+diff --git a/converter/other/pnmtojpeg.c b/converter/other/pnmtojpeg.c
+index e345831..39038f8 100644
+--- a/converter/other/pnmtojpeg.c
++++ b/converter/other/pnmtojpeg.c
+@@ -605,8 +605,10 @@ read_scan_script(j_compress_ptr const cinfo,
+ data, but if you want to compress multiple images you'd
+ want JPOOL_PERMANENT.
+ */
++ overflow2(nscans, sizeof(jpeg_scan_info));
+ const unsigned int scan_info_size = nscans * sizeof(jpeg_scan_info);
+- jpeg_scan_info * const scan_info =
++ const jpeg_scan_info * scan_info;
++ scan_info =
+ (jpeg_scan_info *)
+ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
+ scan_info_size);
+@@ -938,6 +940,8 @@ compute_rescaling_array(JSAMPLE ** const rescale_p, const pixval maxval,
+ const long half_maxval = maxval / 2;
+ long val;
+
++ overflow_add(maxval, 1);
++ overflow2(maxval+1, sizeof(JSAMPLE));
+ *rescale_p = (JSAMPLE *)
+ (cinfo.mem->alloc_small) ((j_common_ptr) &cinfo, JPOOL_IMAGE,
+ (size_t) (((long) maxval + 1L) *
+@@ -1016,6 +1020,7 @@ convert_scanlines(struct jpeg_compress_struct * const cinfo_p,
+ */
+
+ /* Allocate the libpnm output and compressor input buffers */
++ overflow2(cinfo_p->image_width, cinfo_p->input_components);
+ buffer = (*cinfo_p->mem->alloc_sarray)
+ ((j_common_ptr) cinfo_p, JPOOL_IMAGE,
+ (unsigned int) cinfo_p->image_width * cinfo_p->input_components,
+diff --git a/converter/other/pnmtops.c b/converter/other/pnmtops.c
+index 45d856d..5b04eeb 100644
+--- a/converter/other/pnmtops.c
++++ b/converter/other/pnmtops.c
+@@ -294,17 +294,21 @@ parseCommandLine(int argc, const char ** argv,
+ validateCompDimension(width, 72, "-width value");
+ validateCompDimension(height, 72, "-height value");
+
++ overflow2(width, 72);
+ cmdlineP->width = width * 72;
++ overflow2(height, 72);
+ cmdlineP->height = height * 72;
+
+ if (imagewidthSpec) {
+ validateCompDimension(imagewidth, 72, "-imagewidth value");
++ overflow2(imagewidth, 72);
+ cmdlineP->imagewidth = imagewidth * 72;
+ }
+ else
+ cmdlineP->imagewidth = 0;
+ if (imageheightSpec) {
+- validateCompDimension(imagewidth, 72, "-imageheight value");
++ validateCompDimension(imageheight, 72, "-imageheight value");
++ overflow2(imageheight, 72);
+ cmdlineP->imageheight = imageheight * 72;
+ }
+ else
+diff --git a/converter/other/rletopnm.c b/converter/other/rletopnm.c
+index 97f271d..72b63d3 100644
+--- a/converter/other/rletopnm.c
++++ b/converter/other/rletopnm.c
+@@ -19,6 +19,8 @@
+ * If you modify this software, you should include a notice giving the
+ * name of the person performing the modification, the date of modification,
+ * and the reason for such modification.
++ *
++ * 2002-12-19: Fix maths wrapping bugs. Alan Cox Updated: 7 February 2010 Updated: 07 February 2010 avstopam - convert an AVS X image to a Netpbm image
-+ avstopam - convert an AVS X image to a Netpbm image avstopam
- [avsfile]
+ avstopam - convert an AVS X image to a Netpbm image
+@@ -16,40 +16,40 @@ Updated: 07 February 2010
avstopam
-Updated: 07 February 2010
-
-+
-+NAME
--SYNOPSIS
-+SYNOPSIS
-
- DESCRIPTION
@@ -37,8 +27,11 @@ index eb39766..d104518 100644
+image as output.
avsfile is the input file, which defaults to Standard Input. - Output is always on Standard Output. -@@ -30,26 +34,26 @@ Output is always on Standard Output. +-Output is always on Standard Output. ++Output is always on Standard Output.
+ +There are no command line options defined specifically
for avstopam, but it recognizes the options common to all
programs based on libnetpbm (See
@@ -48,8 +41,8 @@ index eb39766..d104518 100644
Copyright © 2010 Scott Pakin,
--scott+pbm@pakin.org.
-+scott+pbm@pakin.org.AUTHOR
This page, part of the Netpbm user's guide, describes FAX formats in relation to Netpbm facilities. - -+
The ITU (formerly CCITT) publishes standards for operation of fax machines (the idea is to provide a way to be sure that a fax machine is able to receive a fax sent by another). These standards incidentally specify graphics file -diff --git a/userguide/pampaintspill.html b/userguide/pampaintspill.html -index eeb1cac..e42db76 100644 ---- a/userguide/pampaintspill.html -+++ b/userguide/pampaintspill.html -@@ -2,12 +2,12 @@ -
Updated: 09 February 2020
-
--Table Of Contents
-+Table Of Contents
The Libnetpbm Netpbm Image +-Processing Manual describes the the libnetpbm functions for ++Processing Manual describes the libnetpbm functions for + processing image data. + +
The Libnetpbm Utility Manual +diff -urNp a/userguide/pamfunc.html b/userguide/pamfunc.html +--- a/userguide/pamfunc.html 2025-02-04 10:47:27.823451565 +0100 ++++ b/userguide/pamfunc.html 2025-02-04 17:52:19.661114878 +0100 +@@ -60,7 +60,7 @@ output image. + and bit string (such as and with 01001000). For the arithmetic functions, the + function arguments and results are the fraction that a sample is of the + maxval, i.e. normal interpretation of PAM tuples. But for the bit string +-functions, the value is the the bit string whose value as a binary cipher is ++functions, the value is the bit string whose value as a binary cipher is + the sample value, and the maxval indicates the width of the bit string. + +
pammixmulti - blend together multiple PAM images ++
pammixmulti - blend together multiple PAM images
+ + +Minimum unique abbreviation of an option is acceptable. You can use double + hyphen instead of a single hyphen to denote options. You can use white + space in place of the equals sign to separate an option name from its +-value. ++value.
+ + +This file is part of Netpbm. ++
This file is part of Netpbm.
+ +pammixmulti mixes two or more images to produce a new image. The +-program provides multiple ways to interpret "mix." ++program provides multiple ways to interpret "mix."
+ + +In addition to the options common to all programs based on libnetpbm + (most notably -quiet, see + Common Options), pammixmulti recognizes the following +-command line options: ++command line options:
+ +mask, each pixel in the output is
+ produced by a weighted average of the corresponding pixels from all
+ the input images based on the grayscale level of an additional mask
+-image.
+--alpha-weighted was new in Netpbm 11.09 (December 2024). ++image.
++-alpha-weighted was new in Netpbm 11.09 (December 2024).
+ + +Use this to ensure you get the same image on separate invocations. ++
Use this to ensure you get the same image on separate invocations.
+ +You supply the names of the files to mix as non-option arguments. ++
You supply the names of the files to mix as non-option arguments.
+ + +Average a bunch of PPM images to produce a new PAM image: ++
Average a bunch of PPM images to produce a new PAM image:
+
+ pammixmulti input*.ppm >output.ppm
+
+
+ Mix these same images by taking each pixel from a randomly selected input +-image: ++image:
+ +
+ pammixmulti -blend=random input*.ppm >output.ppm
+
+
+ Use a mask image to control the fading among input images on a +-pixel-by-pixel basis: ++pixel-by-pixel basis:
+ +
+ pammixmulti -blend=mask -maskfile=mask.pgm >output.pam \
+ one.pam two.pam three.pam four.pam
+
+
+-Do the same but with more abrupt transitions: ++
Do the same but with more abrupt transitions:
+ +
+ pammixmulti -blend=mask -maskfile=mask.pgm -stdev=0.0 >output.pam \
+ one.pam two.pam three.pam four.pam
+
+
+-and now with more gradual transitions: ++
and now with more gradual transitions:
+ +
+ pammixmulti -blend=mask -maskfile=mask.pgm -stdev=1.0 >output.pam \
+@@ -139,12 +139,12 @@ pixel-by-pixel basis:
+
+ HISTORY
+
+-pammixmulti was new in Netpbm 10.85 (December 2018).
++
pammixmulti was new in Netpbm 10.85 (December 2018).
+
+
+ AUTHOR
+
+-Copyright 2018–2024 Scott Pakin, scott+pbm@pakin.org.
++
Copyright 2018–2024 Scott Pakin, scott+pbm@pakin.org.
+
+ SEE ALSO
+
+@@ -152,20 +152,20 @@ pixel-by-pixel basis:
+ ppmmix,
+ pamarith,
+ pnm,
+-pam
++pam
+
+
+ Table Of Contents
+
+
+-- SYNOPSIS
+-
- DESCRIPTION
+-
- OPTIONS
+-
- ARGUMENTS
+-
- EXAMPLES
+-
- HISTORY
+-
- AUTHOR
+-
- SEE ALSO
++
- SYNOPSIS
++- DESCRIPTION
++- OPTIONS
++- ARGUMENTS
++- EXAMPLES
++- HISTORY
++- AUTHOR
++- SEE ALSO
+
+
+
+diff -urNp a/userguide/pampaintspill.html b/userguide/pampaintspill.html
+--- a/userguide/pampaintspill.html 2025-02-04 10:47:27.823451565 +0100
++++ b/userguide/pampaintspill.html 2025-02-04 18:01:50.746117598 +0100
+@@ -7,7 +7,7 @@ Updated: 02 November 2021
+ Table Of Contents
NAME
-pampaintspill - smoothly spill colors into the background
@@ -122,12 +292,13 @@ index eeb1cac..e42db76 100644
SYNOPSIS
-@@ -16,31 +16,31 @@ pampaintspill - smoothly spill colors into the background
- [--bgcolor=color]
- [--wrap] [--all]
+@@ -19,48 +19,48 @@ pampaintspill - smoothly spill colors in
[--downsample=number]
--[--power=number] [filename]
-+[--power=number] [filename]
+ [--near=number]
+ [--power=number] [filename]
+-[-randomseed=integer]
++[-randomseed=integer]
+
Minimum unique abbreviations of option are acceptable. You may use
double hyphens instead of single hyphen to denote options. You may use
@@ -160,7 +331,9 @@ index eeb1cac..e42db76 100644
pampaintspill can produce tileable output and
can control how tightly the gradient colors bind to their source
-@@ -49,14 +49,14 @@ paint" onto the background. pampaintspill is similar to
+- pixels.
++ pixels.
+
Results are generally best when the input image contains just a few, crisp
spots of color. Use your drawing program's pencil tool — as opposed to a
@@ -177,40 +350,96 @@ index eeb1cac..e42db76 100644
- --bgcolor=color
-diff --git a/userguide/pamrecolor.html b/userguide/pamrecolor.html
-index 3f341d4..a5f2671 100644
---- a/userguide/pamrecolor.html
-+++ b/userguide/pamrecolor.html
-@@ -2,12 +2,15 @@
+@@ -117,45 +117,45 @@ command line options:
+ gradients away from them.
+
+ - -randomseed=integer
+-
- This is the seed for the random number generator that generates the
+- pixels.
++
- This is the seed fodr the random number generator that generates the
++ pixels.
+
+- Use this to ensure you get the same image on separate invocations.
++
Use this to ensure you get the same image on separate invocations.
+
+- This option was new in Netpbm 10.94 (March 2021).
++ This option was new in Netpbm 10.94 (March 2021).
+
+
+
+ SEE ALSO
+
+
+-- pamgradient
+-
- ppmmake,
+-
- ppmrainbow,
+-
- pgmramp,
+-
- ppmpat,
+-
- pam
++
- pamgradient
++- ppmmake,
++- ppmrainbow,
++- pgmramp,
++- ppmpat,
++- pam
+
+
+ HISTORY
+
+-pampaintspill was new in Netpbm 10.50 (March 2010).
++
pampaintspill was new in Netpbm 10.50 (March 2010).
+
+
+ COPYRIGHT
+
+ Copyright © 2010–2021 Scott Pakin,
+-scott+pbm@pakin.org.
++scott+pbm@pakin.org.
+
+ Table Of Contents
+
+
+-- SYNOPSIS
+-
- DESCRIPTION
+-
- OPTIONS
+-
- SEE ALSO
+-
- HISTORY
+-
- COPYRIGHT
++
- SYNOPSIS
++- DESCRIPTION
++- OPTIONS
++- SEE ALSO
++- HISTORY
++- COPYRIGHT
+
+
+
+diff -urNp a/userguide/pamrecolor.html b/userguide/pamrecolor.html
+--- a/userguide/pamrecolor.html 2025-02-04 10:47:27.823451565 +0100
++++ b/userguide/pamrecolor.html 2025-02-04 18:10:00.968545076 +0100
+@@ -2,9 +2,9 @@
Pamrecolor User Manual
pamrecolor
-Updated: 31 July 2010
--
++Updated: 31 July 2010
+
-Table Of Contents
++Table Of Contents
--NAME
--pamrecolor - alter colors without affecting luminance
-+Updated: 31 July 2010
-+
-+
-+
-+
-+NAME
-+
-+pamrecolor - alter colors without affecting luminance
-
- SYNOPSIS
-
-@@ -22,6 +25,7 @@ pamrecolor - alter colors without affecting luminance
+ NAME
+ pamrecolor - alter colors without affecting luminance
+@@ -22,15 +22,15 @@ pamrecolor - alter colors without affect
[-randomseed=integer]
[infile]
+-
+
-
Minimum unique abbreviation of option is acceptable. You may use double
-@@ -30,7 +34,7 @@ space in place of the equals sign to separate an option name from its value.
+ 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.
++space in place of the equals sign to separate an option name from its value.
DESCRIPTION
@@ -219,16 +448,19 @@ index 3f341d4..a5f2671 100644
pamrecolor changes an image's colors to be as close as
possible to given target colors but with the constraint that the
-@@ -39,7 +43,7 @@ image will look identical if both are converted to grayscale
+@@ -39,17 +39,17 @@ image will look identical if both are co
(e.g. with
ppmtopgm). You can have pamrecolor select
target colors randomly, specify a single hue for the entire image, or take the
-target colors from a target image.
+target colors from a target image.
- pamrecolor works on pseudo-Netpbm images based on arbitrary
- color spaces. You can define the color space explicitly or choose one
-@@ -49,7 +53,7 @@ of many that pamrecolor knows by name.
+
In addition to real Netpbm images, pamrecolor works on pseudo-Netpbm
+ images based on arbitrary color spaces. You can define the color space
+-explicitly or choose one of many that pamrecolor knows by name.
++explicitly or choose one of many that pamrecolor knows by name.
+
+ The output is a PAM image on standard output. Options control the
exact format of the PAM. If you want a PNM (PBM, PGM, or PPM) image,
use pamtopnm on the output. There is no
need to convert if you will use the image as input to a current Netpbm
@@ -237,7 +469,7 @@ index 3f341d4..a5f2671 100644
OPTIONS
-@@ -57,7 +61,7 @@ program, but many other programs don't know what a PAM is.
+@@ -57,7 +57,7 @@ program, but many other programs don't k
In addition to the options common to all programs based on libnetpbm
(most notably -quiet, see
Common Options), pamrecolor recognizes the following
@@ -246,7 +478,28 @@ index 3f341d4..a5f2671 100644
-@@ -109,12 +113,12 @@ the format that uses sRGB.
+@@ -67,7 +67,7 @@ to luminance of each of the red, green,
+ example, in the SMPTE-C color space an RGB color is converted to
+ grayscale by multiplying the red channel by 0.2124132, the green
+ channel by 0.7010437, and the blue channel by 0.0865432 and summing
+-the resulting three products.
++the resulting three products.
+
+ When you use this option, the input and output images are not true Netpbm
+ images, because the Netpbm image format specifies a particular color space.
+@@ -76,9 +76,9 @@ the raster have different meaning. Many
+ images actually use a variation with a different color space. For example,
+ GIMP uses sRGB internally and if you
+ have GIMP generate a Netpbm image file, it really generates a variation of
+-the format that uses sRGB.
++the format that uses sRGB.
+
+-pamrecolor knows the following color spaces (name values):
++
pamrecolor knows the following color spaces (name values):
+
+
+ - adobe
+@@ -109,12 +109,12 @@ the format that uses sRGB.
The default is "ntsc" because this is the color space that the Netpbm
formats and many graphics utilities use. As a counterexample,
GIMP uses sRGB as its native color
@@ -257,29 +510,64 @@ index 3f341d4..a5f2671 100644
Bruce Lindbloom's
-Computing RGB-to-XYZ and XYZ-to-RGB matrices page.
-+Computing RGB-to-XYZ and XYZ-to-RGB matrices page.
++Computing RGB-to-XYZ and XYZ-to-RGB matrices page.
- --rmult=fraction
- --gmult=fraction
-@@ -137,7 +141,7 @@ library routine (e.g., "hotpink" or "#ff69b4").
+@@ -133,15 +133,13 @@ image. pamrecolor will make each
+ to color subject to the constraint that the luminance must stay the
+ same as in the original image. Specify color as in
+ the argument of the pnm_parsecolor()
+-library routine (e.g., "hotpink" or "#ff69b4").
++library routine (e.g., "hotpink" or "#ff69b4").
+
+ If you specify neither --targetcolor nor
+ --colorfile, pamrecolor will randomly select a target color for
+-each pixel of the input image.
+-
+-
You may not specify both -targetcolor and -colorfile.
++each pixel of the input image.
+
+-
++You may not specify both -targetcolor and -colorfile.
+
+ - --colorfile=file
+ - Take per-pixel target colors from Netpbm file file instead
+@@ -150,40 +148,38 @@ of using a single target color for the e
+ If the image in the file wider or taller than the input image,
+ pamrecolor uses only the left and top part of it.
+ If the image is narrower or shorter, pamrecolor considers the
+-image to be repeated in a tile pattern.
++image to be repeated in a tile pattern.
If you specify neither --targetcolor nor
--colorfile, pamrecolor will randomly select a target color for
-each pixel of the input image.
+each pixel of the input image.
- You may not specify both -targetcolor and -colorfile.
+-
You may not specify both -targetcolor and -colorfile.
++
You may not specify both -targetcolor and -colorfile.
-@@ -154,7 +158,7 @@ image to be repeated in a tile pattern.
+-- -randomseed=integer
++
- -randomseed=integer
- If you specify neither --targetcolor nor
- --colorfile, pamrecolor will randomly select a target color for
--each pixel of the input image.
-+each pixel of the input image.
+ - This is the seed for the random number generator that generates the
+-pixels.
++pixels.
- You may not specify both -targetcolor and -colorfile.
+-
Use this to ensure you get the same image on separate invocations.
++
Use this to ensure you get the same image on separate invocations.
+
+ By default, pamrecolor uses a seed derived from the time of day
+ and process ID, which gives you fairly uncorrelated results in multiple
+-invocations.
+-
+-
This option was new in Netpbm 10.61 (December 2012).
++invocations.
+
+-
++This option was new in Netpbm 10.61 (December 2012).
-@@ -176,23 +180,23 @@ invocations.
EXAMPLES
@@ -287,8 +575,7 @@ index 3f341d4..a5f2671 100644
+This command tints an image yellow:
-- pamrecolor --targetcolor=yellow colorpic.pam > yellowpic.pam
-+ pamrecolor --targetcolor=yellow colorpic.pam > yellowpic.pam
+ pamrecolor --targetcolor=yellow colorpic.pam > yellowpic.pam
This command takes the colors from colorpicture.ppm and applies
@@ -296,10 +583,8 @@ index 3f341d4..a5f2671 100644
+them to graypicture.pgm:
-- pamrecolor --colorfile=colorpic.ppm graypic.pgm > colorizedpic.pam
-+ pamrecolor --colorfile=colorpic.ppm graypic.pgm > colorizedpic.pam
-
-
+ pamrecolor --colorfile=colorpic.ppm graypic.pgm > colorizedpic.pam
+@@ -192,52 +188,52 @@ them to graypicture.pgm:
The grayscale version of colorizedpic.pam will look just like
graypic.pgm. Note that if you use a non-Netpbm tool to do the conversion to
grayscale, you may additionally need to specify an
@@ -308,7 +593,11 @@ index 3f341d4..a5f2671 100644
NOTES
-@@ -203,25 +207,25 @@ appropriate --colorspace value for your conversion tool.
+
+ Here are a couple of fun special effects you can produce with
+-pamrecolor:
++pamrecolor:
+
- Specify a color file that is identical to the input image but with
some large, colored text added to it. The text will "magically"
@@ -336,18 +625,30 @@ index 3f341d4..a5f2671 100644
-
Scott Pakin wrote pamrecolor in July 2010.
+
Scott Pakin wrote pamrecolor in July 2010.
- pamrecolor was new in Netpbm 10.52 (September 2010).
+-
pamrecolor was new in Netpbm 10.52 (September 2010).
++
pamrecolor was new in Netpbm 10.52 (September 2010).
+
-@@ -229,7 +233,7 @@ photograph of the late 1800s).
AUTHOR
Copyright (C) 2010 Scott
--Pakin, scott+pbm@pakin.org.
-+Pakin, scott+pbm@pakin.org.
+-Pakin, scott+pbm@pakin.org
++Pakin, scott+pbm@pakin.org
SEE ALSO
-@@ -246,14 +250,14 @@ Pakin, scott+pbm@pakin.org.
+
+
+
+
+@@ -246,14 +242,14 @@ Pakin, Table Of Contents
@@ -370,1096 +671,39 @@ index 3f341d4..a5f2671 100644
-diff --git a/userguide/pamsistoaglyph.html b/userguide/pamsistoaglyph.html
-index 1ca53ac..e545986 100644
---- a/userguide/pamsistoaglyph.html
-+++ b/userguide/pamsistoaglyph.html
-@@ -1,15 +1,18 @@
-
- Pamsistoaglyph User Manual
-
-+
- pamsistoaglyph
--Updated: 05 April 2009
--
--Table Of Contents
-+
-+Updated: 5 April 2009
-+
-+
-+
-
- NAME
-
--pamsistoaglyph - convert a single-image stereogram to a red/cyan
--anaglyphic image
-+pamsistoaglyph - convert a single-image stereogram to a red/cyan
-+anaglyphic image
-
-
- SYNOPSIS
-@@ -20,11 +23,11 @@ anaglyphic image
- [--minsep=number]
- [--gray=number]
- [in_netpbmfile
--
-+
-
- All options can be abbreviated to their shortest unique prefix. You
- may use either white space or an equals sign between an option name
--and its value.
-+and its value.
-
-
- DESCRIPTION
-@@ -32,7 +35,7 @@ and its value.
- This program is part of Netpbm.
-
-
pamsistoaglyph reads a Netpbm image as input and
--produces a Netpbm image as output.
-+produces a Netpbm image as output.
-
- pamsistoaglyph takes a single-image stereogram
- (SIS) such as those produced by pamsistoaglyph is to help people who have trouble
--viewing single-image stereograms see the intriguing 3-D effect.
-+viewing single-image stereograms see the intriguing 3-D effect.
-
- pamsistoaglyph can convert single-image random-dot
- stereograms (SIRDS), wallpaper stereograms, and even dual-image
--stereograms to anaglyphic images.
-+stereograms to anaglyphic images.
-
-
- OPTIONS
-@@ -57,13 +60,13 @@ stereograms to anaglyphic images.
- In addition to the options common to all programs based on libnetpbm
- (most notably -quiet, see
- Common Options), pamsistoaglyph recognizes the following
--command line options:
-+command line options:
-
- For most images, no command-line options need to be specified. The
--following options are available, however, for unusual circumstances.
-+following options are available, however, for unusual circumstances.
-
-
--- --invert
-+
- --invert
- - Swap the left- and right-eye
- images. pamsistoaglyph assumes that its input
- represents a wall-eyed stereogram and generates the anaglyphic
-@@ -71,17 +74,17 @@ following options are available, however, for unusual circumstances.
- the page where it should pop out of the page (and vice versa),
- this typically implies that the input image represents a
- cross-eyed stereogram. Use --invert to correct
-- the image depth.
-+ the image depth.
-
--- --sep=number
-+
- --sep=number
- - Specify the distance in pixels between the left- and right-eye
- images. Essentially, this corresponds to the distance between
- repetitions of the background pattern. The --sep
- option should rarely be necessary
- as pamsistoaglyph is fairly good at determining
-- automatically the eye-separation distance.
-+ automatically the eye-separation distance.
-
--- --minsep=number
-+
- --minsep=number
- - This option is similar to --sep but
- constrains pamsistoaglyph only to
- a minimum eye-separation distance. Any distance larger
-@@ -90,9 +93,9 @@ following options are available, however, for unusual circumstances.
- as pamsistoaglyph is fairly good at determining
- automatically the eye-separation distance. The default value for
- the minimum eye-separation distance is 10% of the image width;
-- this value seems to work well in practice.
-+ this value seems to work well in practice.
-
--- --gray=number
-+
- --gray=number
- - Limit the number of gray levels to use when searching for the
- optimal eye-separation
- distance. Because pamsistoaglyph looks for
-@@ -103,7 +106,7 @@ following options are available, however, for unusual circumstances.
- unintentional color variations (such as those caused by conversion
- from a low-quality JPEG image, for example). The default of 63
- seems to work well so the --gray option should
-- rarely be necessary.
-+ rarely be necessary.
-
-
-
-@@ -112,22 +115,22 @@ following options are available, however, for unusual circumstances.
- The registration algorithm used by pamsistoaglyph
- was developed specifically for this program. As far as the author
- knows, there are no existing algorithms for converting stereograms to
--anaglyphs. The algorithm works as follows:
-+anaglyphs. The algorithm works as follows:
-
-
- - Convert the image to grayscale to increase the ability to identify
-- matches.
-+ matches.
-
- - Count the number of pixels that match N pixels ahead in the
-- image for all N in [1, width/2].
-+ image for all N in [1, width/2].
-
- - Maintain a running mean (μ) and standard deviation (σ) of
-- the number of matched pixels.
-+ the number of matched pixels.
-
- - Store the N corresponding to each spike in the number of
- matched pixels. A spike is defined as a tally that exceeds the
- mean plus one, two, or three standard deviations. Only the first
-- spike of a given standard-deviation multiplier is stored.
-+ spike of a given standard-deviation multiplier is stored.
-
- - If a tally greater than μ+3σ was encountered, return the
- corresponding N. If not, then if a tally greater than
-@@ -138,13 +141,13 @@ anaglyphs. The algorithm works as follows:
- produces the minimum average distance between matched pixels
- (i.e., #matches divided by #pixels). If no
- such N exceeds the minimum allowable eye-separation value,
-- return zero to indicate failure.
-+ return zero to indicate failure.
-
- - If the algorithm returned zero, rerun the algorithm independently
- on each row of the input image and return the median of
- all N that exceed the minimum allowable eye-separation
- value. If no such N exists, abort with an error
-- message.
-+ message.
-
-
- HISTORY
-@@ -156,7 +159,7 @@ in Netpbm in Release 10.47 (June 2009).
- AUTHOR
-
- Copyright (C) 2009 Scott
--Pakin, scott+pbm@pakin.org.
-+Pakin, scott+pbm@pakin.org.
-
-
- SEE ALSO
-@@ -174,13 +177,13 @@ Pakin, scott+pbm@pakin.org.
- Table Of Contents
-
-
--- SYNOPSIS
--
- DESCRIPTION
--
- OPTIONS
--
- NOTES
--
- HISTORY
--
- AUTHOR
--
- SEE ALSO
-+
- SYNOPSIS
-+- DESCRIPTION
-+- OPTIONS
-+- NOTES
-+- HISTORY
-+- AUTHOR
-+- SEE ALSO
-
-
-
-diff --git a/userguide/pamstereogram.html b/userguide/pamstereogram.html
-index 759ca28..eec0e66 100644
---- a/userguide/pamstereogram.html
-+++ b/userguide/pamstereogram.html
-@@ -2,13 +2,16 @@
- Pamstereogram User Manual
-
- pamstereogram
--Updated: 10 May 2020
--
--Table Of Contents
-+
-+Updated: 10 May 2020
-+
-+
-+
-
- NAME
-
--pamstereogram - create a single-image stereogram from a PAM depth map
-+pamstereogram - create a single-image stereogram from a PAM
-+depth map
-
- SYNOPSIS
-
-@@ -38,13 +41,13 @@ pamstereogram - create a single-image stereogram from a PAM depth map
- [-randomseed=integer]
- [-tileable]
- [infile]
--
-+
-
-
-
- DESCRIPTION
-
--This program is part of Netpbm.
-+
This program is part of Netpbm.
-
- pamstereogram inputs a depth map (a map of the distances
- from your eye of the points in a scene) and outputs a single-image
-@@ -54,22 +57,22 @@ eyes. What's exciting about single-image stereograms is that they
- don't require special glasses to view, although it does require a bit
- of practice to train your eyes to unfocus properly. The
- pamstereogram program provides a wealth of control over how the
--stereogram is generated, including the following:
-+stereogram is generated, including the following:
-
-
--- black and white, grayscale, or color output
-+
- black and white, grayscale, or color output
-
- - single-image random-dot stereograms (SIRDS), single-image
- stereograms (SIS) using a tiled image, or mapped-texture stereograms
--(MTS)
-+(MTS)
-
--- images targeting a given device resolution and eye separation
-+
- images targeting a given device resolution and eye separation
-
--- optional guide boxes to assist in focusing
-+
- optional guide boxes to assist in focusing
-
--- the ability to trade off depth levels for easier viewing
-+
- the ability to trade off depth levels for easier viewing
-
--- choice of wall-eyed or cross-eyed stereograms
-+
- choice of wall-eyed or cross-eyed stereograms
-
-
- The output is a PAM image on standard output. Options control
-@@ -79,7 +82,7 @@ if you will use the image as input to a current Netpbm program, but
- many other programs don't know what a PAM is.
-
-
To make a red/green type of stereogram (that you view with 3-D
--glasses) instead, see ppm3d.
-+glasses) instead, see ppm3d.
-
-
- OPTIONS
-@@ -87,36 +90,36 @@ glasses) instead, see ppm3d.
- In addition to the options common to all programs based on libnetpbm
- (most notably -quiet, see
- Common Options), pamstereogram recognizes the following
--command line options:
-+command line options:
-
- You may use either single or double hyphens to denote options. You
- may use either whitespace or an equals sign to separate an option name
--from its value.
-+from its value.
-
-
-
--- -verbose
-+
- -verbose
- - Display messages about image sizes and formats and properties
--of the stereogram being generated.
-+of the stereogram being generated.
-
--- -blackandwhite
-+
- -blackandwhite
- - Produce a single-image random-dot black-and-white stereogram.
--This is the default.
-+This is the default.
-
--- -grayscale
--
- Produce a single-image random-dot grayscale stereogram.
-+
- -grayscale
-+- Produce a single-image random-dot grayscale stereogram.
-
--- -color
--
- Produce a single-image random-dot color stereogram.
-+
- -color
-+- Produce a single-image random-dot color stereogram.
-
--- -maxval=value
-+
- -maxval=value
- - Designate the maximum value of each gray/color component, i.e.
- the color resolution. Smaller values make the output image have
- smaller numbers of unique grays/colors. If you don't specify
- -maxval, pamstereogram uses the maxval of the input
--image. This option has no effect with -blackandwhite.
-+image. This option has no effect with -blackandwhite.
-
--- -patfile=pamfile
-+
- -patfile=pamfile
- - Specify an image to use as a repeated background pattern for
- the stereogram instead of a random-dot pattern. Intricate images
- generally produce a crisper 3-D effect that simpler images. The
-@@ -125,9 +128,9 @@ grayscale or color) as the pattern file. You cannot specify the
- -patfile option along with -blackandwhite,
- -grayscale, -color, or -maxval. The
- -verbose option will give you information on the ideal
--dimensions of the pattern file.
-+dimensions of the pattern file.
-
--
- -xbegin=pixels
-+
- -xbegin=pixels
- - Specify the horizontal coordinate at which to begin stereogram generation.
- The background pattern will be minimally distorted at this point and more
- distorted at greater distances. Consider using this in conjunction
-@@ -141,7 +144,7 @@ and pamstereogram actually ignores it with respect to -texfile
-
-
This option was new in Netpbm 10.71 (June 2015).
-
--
- -texfile=pamfile
-+
- -texfile=pamfile
- - Specify an image to use as the texture for a mapped-texture
- stereogram. The idea is that the depth-map image provides the depth
- values of the 3-D object/scene while the texture image provides the
-@@ -150,10 +153,10 @@ the depth-map image. (Note that it's required to have the same
- dimensions.) The texture image's background color is ignored when
- blending colors.
-
--
This option was new in Netpbm 10.53 (December 2010).
--
-+
This option was new in Netpbm 10.53 (December 2010).
-+
-
--- -bgcolor=color
-+
- -bgcolor=color
- - Use color as the texture image's background color instead
- of letting pamstereogram determine it automatically. Specify
- the color as described for the
-@@ -161,10 +164,10 @@ the color as described for the
- routine. The -bgcolor option is meaningful only in conjunction
- with -texfile.
-
--
This option was new in Netpbm 10.53 (December 2010).
--
-+
This option was new in Netpbm 10.53 (December 2010).
-+
-
--- -smoothing=pixels
-+
- -smoothing=pixels
- - When used without -texfile, attempt to eliminate artifacts
- introduced by edges in the depth map if pixels is greater than zero.
-
-@@ -175,29 +178,29 @@ by the stereogram's color constraints when producing a mapped-texture
- stereogram. In this case, the -smoothing option is helpful
- when the texture image includes smooth color transitions (as in a
- photograph) but makes crisp texture images (as in a line drawing)
--appear blurry.
-+appear blurry.
-
-
This option was new in Netpbm 10.53 (December 2010). Before
--Netpbm 10.61 (December 2012), it has no effect without -texfile.
-+Netpbm 10.61 (December 2012), it has no effect without -texfile.
-+
-
--
--- -xshift=pixels
-+
- -xshift=pixels
- - Shift the pattern image (designated by -patfile) to the
- right by pixels pixels (default: 0).
--
--This option is valid only along with -patfile.
-+
-+This option is valid only along with -patfile.
-
--- -yshift pixels
-+
- -yshift pixels
- - Shift the pattern image (designated by -patfile)
- downwards by pixels pixels (default: 0). This option is
--valid only along with -patfile.
-+valid only along with -patfile.
-
--- -magnifypat=scale
-+
- -magnifypat=scale
- - Magnify each pixel in the pattern file or each random dot by
- integral scaling factor scale. Note that
- pamstereogram applies the pattern magnification
- after pattern shifting (-xshift and
---yshift).
-+-yshift).
-
- - -guidebottom
-
-
-@@ -211,7 +214,7 @@ square. At that point, a crisp, 3-D image will appear.
-
This option was new in Netpbm 10.61 (December 2012). Before that,
- the presence of -guidesize, with a positive value, has the same
- effect.
--
-+
-
- - -guidetop
-
-
-@@ -221,7 +224,7 @@ Same as -guidebottom, except the guides go at the top of the image.
- the presence of -guidesize, with a negative value, has the same
- effect.
-
--
- -guidesize=pixels
-+
- -guidesize=pixels
-
- - The size (width and height) of each guide box.
-
-@@ -236,15 +239,15 @@ too, and if you specify it with a negative value, it behaves as if you
- specified -guidetop and specified guidesize with the absolute
- value of that negative value.
-
--
- -dpi=resolution
-+
- -dpi=resolution
- - Specify the resolution of the output device in dots per inch.
- The default is 100 DPI, which represents a fairly crisp screen
- resolution.
-
--
Before Netpbm 10.53 (December 2010), the default was 96 DPI.
--
-+
Before Netpbm 10.53 (December 2010), the default was 96 DPI.
-+
-
--- -crosseyed
-+
- -crosseyed
- - Invert the gray levels in the depth map (input image) so that the 3-D
- image pops out of the page where it would otherwise sink into the page and
- vice versa. Some people are unable to diverge their eyes and can only cross
-@@ -255,10 +258,10 @@ colors are farther from the eye.
-
-
Before Netpbm 10.53 (December 2010), pamstereogram used higher
- (lighter) numbers for things closer to the eye without
---crosseyed and vice versa.
-+-crosseyed and vice versa.
-+
-
--
--- -makemask
-+
- -makemask
- - Instead of a stereogram, output a PAM mask image showing
- coloring constraints. New pixels will be taken from the pattern
- file where the mask is black. Copies of existing pixels will be
-@@ -266,30 +269,30 @@ taken from the pattern file where the mask is white. The
- -makemask option can be used to help create more
- sophisticated pattern files (to use with -patfile) Note that
- -makemask ignores -magnifypat; it always produces
--masks that assume a pattern magnification of 1.
-+masks that assume a pattern magnification of 1.
-
--- -eyesep=inches
-+
- -eyesep=inches
- - Specify the separation in inches between your eyes. The
- default, 2.5 inches (6.4 cm), should be sufficient for most people
--and probably doesn't need to be changed.
-+and probably doesn't need to be changed.
-
--- -depth=fraction
-+
- -depth=fraction
- - Specify the output image's depth of field. That is,
- fraction represents the fractional distance of the near
- plane from the far plane. Smaller numbers make the 3-D image easier
- to perceive but flatter. Larger numbers make the 3-D image more
- difficult to perceive but deeper. The default, 0.3333, generally
--works fairly well.
-+works fairly well.
-
--- -planes=near_pixels,far_pixels
-+
- -planes=near_pixels,far_pixels
- - Explicitly specify the distance between repeated pixels in the near plane
- and in the far plane. This is an alternative to
- -eyesep and -depth. The following equalities hold:
-
-
-- - eyesep = 2 * far
-+
- eyesep = 2 * far
- - depth = 2 * (far − near) /
-- (2 * far − near)
-+ (2 * far − near)
-
-
- The number of distinct 3-D depths is far
-@@ -299,10 +302,10 @@ parameters (distance between eyes and tradeoff between perceptibility
- and depth) while -planes is a more computer-centric way (pixel
- distances in the resulting stereogram).
-
--
This option was new in Netpbm 10.59 (June 2012).
--
-+
This option was new in Netpbm 10.59 (June 2012).
-+
-
--- -randomseed=integer
-+
- -randomseed=integer
- - Specify a seed to be used for the random number generator.
- The default is to use a seed based on the time of day, to one second
- granularity.
-@@ -313,18 +316,19 @@ every time you run pamstereogram.
-
-
This is irrelevant if you use a pattern file (-patfile
- option), because there is no random element to pamstereogram's
--behavior.
-+behavior.
-
--This option was new in Netpbm 10.32 (February 2006).
-+
This option was new in Netpbm 10.32 (February 2006).
-+
-
--- -tileable
-+
- -tileable
-
- - Make the generated image horizontally tileable. This works by
- blending a left-to-right rendering (the equivalent
- of -xbegin=0) with a right-to-left rendering (the equivalent
- of -xbegin=width−1).
-
--
This option was new in Netpbm 10.91 (June 2020).
-+
This option was new in Netpbm 10.91 (June 2020).
-
-
-
-@@ -333,7 +337,7 @@ of -xbegin=width−1).
-
- The only parameter, infile, is the name of an input file
- that is a depth map image. If you don't specify infile, the
--input is from standard input.
-+input is from standard input.
-
- The input is a PAM image of depth 1. Each sample represents the
- distance from the eye that the 3-D image at that location should
-@@ -344,10 +348,10 @@ be. Lower (darker) numbers mean further from the eye.
-
Input Images
-
- pamstereogram pays no attention to the image's tuple type and
--ignores all planes other than plane 0.
-+ignores all planes other than plane 0.
-
- Like any Netpbm program, pamstereogram will accept PNM
--input as if it were the PAM equivalent.
-+input as if it were the PAM equivalent.
-
- Mapped-texture Stereograms
-
-@@ -355,12 +359,12 @@ input as if it were the PAM equivalent.
- drawn with true colors. Unlike a SIRDS or tiled-image SIS, however,
- the image portrayed by an MTS is apparent in normal 2-D viewing. It
- appears repeated multiple times and overlapped with itself, but it is
--not hidden.
-+not hidden.
-
- You create an MTS with pamstereogram by passing the filename
- of a PAM "texture image" with a -texfile option. A
- texture image portrays the same 3-D object as the depth-map image but
--indicates the colors that the program should apply to the object.
-+indicates the colors that the program should apply to the object.
-
- pamstereogram ignores the texture image's background color when it
- overlaps copies of the 3-D object. This prevents, for example, a bright-red
-@@ -370,32 +374,32 @@ object remains bright red. A consequence of this feature is that an MTS looks
- best when the objects in the texture image have a crisp outline. Smooth
- transitions to the background color result in unwanted color artifacts around
- edges because the program ignores only exact matches with the
--background color.
-+background color.
-
- You should specify a larger-than-normal value for -eyesep
- (and/or -dpi) when producing an MTS. Otherwise, the 3-D object will
- repeat so many times that most colored pixels will overlap other colored
--pixels, reducing the number of true-colored pixels that remain.
-+pixels, reducing the number of true-colored pixels that remain.
-
- An MTS can employ a background pattern (-patfile). In this
- case, pamstereogram replaces background pixels with pattern pixels in
--the final step of generating the image.
-+the final step of generating the image.
-
-
- Miscellaneous
-
- A good initial test is to input an image consisting of a solid
- shape of distance 0 within a large field of maximum distance (e.g., a
--white square on a black background).
-+white square on a black background).
-
- With the default values for -dpi and -eyesep, pattern
--images that are 128 pixels wide can tile seamlessly.
-+images that are 128 pixels wide can tile seamlessly.
-
-
- EXAMPLES
-
- Generate a SIRDS out of small, brightly colored squares and
--prepare it for display on an 87 DPI monitor:
-+prepare it for display on an 87 DPI monitor:
-
-
- pamstereogram depthmap.pam \
-@@ -406,7 +410,7 @@ prepare it for display on an 87 DPI monitor:
- Generate a SIS by tiling a PPM file (a prior run with
- -verbose indicates how wide the pattern file should be for
- seamless tiling, although any width is acceptable for producing
--SISes):
-+SISes):
-
-
- pamstereogram depthmap.pam -patfile mypattern.ppm >3d.pam
-@@ -416,7 +420,7 @@ SISes):
- Generate an MTS by associating colors with a depth-mapped object
- (using a large eye separation to reduce the number of repetitions of
- the texture image) and twice smoothing over background-colored
--speckles:
-+speckles:
-
-
- pamstereogram depthmap.pam \
-@@ -427,21 +431,21 @@ speckles:
-
- SEE ALSO
-
--- pam
-+
- pam
-
--- pamsistoaglyph
-+
- pamsistoaglyph
-
--- ppm3d
-+
- ppm3d
-
- - Harold W. Thimbleby, Stuart Inglis, and Ian H. Witten.
- Displaying 3D Images: Algorithms for Single Image Random Dot
- Stereograms. In IEEE Computer, 27(10):38-48,
- October 1994. DOI: 10.1109/2.318576.
-+href="http://dx.doi.org/10.1109/2.318576">10.1109/2.318576.
-
- - W. A. Steer.
- Stereograms: Technical Details.
--URL: http://www.techmind.org/stereo/stech.html.
-+URL: http://www.techmind.org/stereo/stech.html.
-
-
-
-@@ -457,24 +461,25 @@ Netpbm 10.61 (December 2012).
-
-
- AUTHOR
--Copyright © 2006-2020 Scott Pakin, scott+pbm@pakin.org.
-+
Copyright © 2006-2020 Scott Pakin, scott+pbm@pakin.org.
-
- Table Of Contents
-
--- SYNOPSIS
--
- DESCRIPTION
--
- OPTIONS
--
- PARAMETERS
-+
- SYNOPSIS
-+- DESCRIPTION
-+- OPTIONS
-+- PARAMETERS
- - NOTES
--
-- - Input Images
--
- Mapped-texture Stereograms
--
- Miscellaneous
-+
-+ - Input Images
-+ - Mapped-texture Stereograms
-+ - Miscellaneous
-
-- - EXAMPLES
--
- SEE ALSO
--
- HISTORY
--
- AUTHOR
-+
-+- EXAMPLES
-+- SEE ALSO
-+- HISTORY
-+- AUTHOR
-
-
-
-diff --git a/userguide/pamtoavs.html b/userguide/pamtoavs.html
-index 5d0ae35..bee1a40 100644
---- a/userguide/pamtoavs.html
-+++ b/userguide/pamtoavs.html
-@@ -2,13 +2,15 @@
- Pamtoavs User Manual
-
- pamtoavs
--Updated: 07 February 2010
--
--Table Of Contents
-+
-+Updated: 7 February 2010
-+
-+
-+
-
- NAME
-
--pamtoavs - convert a Netpbm image to an AVS X image
-+
pamtoavs - convert a Netpbm image to an AVS X image
-
- SYNOPSIS
-
-@@ -17,7 +19,7 @@ Updated: 07 February 2010
-
- DESCRIPTION
-
--This program is part of Netpbm.
-+
This program is part of Netpbm.
-
- pamtoavs reads a Netpbm image as input and produces a Stardent
- AVS
-@@ -27,14 +29,14 @@ href="http://www.gnuplot.info/">Gnuplot v4.2 and later can use.
-
netpbmfile is the input file, which defaults to Standard Input.
- Output is always on Standard Output.
-
--
Try the following:
-+
Try the following:
-
-
- gnuplot> plot 'myimage.avs' binary filetype=avs with rgbimage
-
-
- See the Gnuplot
--manual for more information.
-+manual for more information.
-
-
- OPTIONS
-@@ -42,29 +44,29 @@ manual for more information.
- There are no command line options defined specifically
- for pamtoavs, but it recognizes the options common to all
- programs based on libnetpbm (See
--Common Options.)
-+Common Options.)
-
- AUTHOR
-
- Copyright © 2010 Scott Pakin,
--scott+pbm@pakin.org.
-+scott+pbm@pakin.org.
-
- SEE ALSO
-
- avstopam,
- gnuplot,
--pam
-+pam
-
-
-
- Table Of Contents
-
-
--- SYNOPSIS
--
- DESCRIPTION
--
- OPTIONS
--
- AUTHOR
--
- SEE ALSO
-+
- SYNOPSIS
-+- DESCRIPTION
-+- OPTIONS
-+- AUTHOR
-+- SEE ALSO
-
-
-
-diff --git a/userguide/pamtooctaveimg.html b/userguide/pamtooctaveimg.html
-index 4e09e8e..d2cc50b 100644
---- a/userguide/pamtooctaveimg.html
-+++ b/userguide/pamtooctaveimg.html
-@@ -2,13 +2,13 @@
- Pamtooctaveimg User Manual
-
- pamtooctaveimg
--
--Updated: 27 June 2007
--Table Of Contents
-+
-+
Updated: 27 June 2007
-+Table Of Contents
-
- NAME
-
--pamtooctaveimg - convert a Netpbm image to a GNU Octave image
-+
pamtooctaveimg - convert a Netpbm image to a GNU Octave image
-
- SYNOPSIS
-
-@@ -17,7 +17,7 @@
-
- DESCRIPTION
-
--This program is part of Netpbm.
-+
This program is part of Netpbm.
-
- pamtooctaveimg reads a Netpbm image as input and produces a GNU Octave image file as output.
-@@ -45,7 +45,7 @@ Image Processing chapter of the GNU Octave manual for details.
-
There are no command line options defined specifically
- for pamtooctaveimg, but it recognizes the options common to all
- programs based on libnetpbm (See
--Common Options.)
-+Common Options.)
-
- ARGUMENTS
-
-@@ -77,7 +77,8 @@ specify netpbmfile, the input is from Standard Input.
- NOTES
-
- There is no octavetopam program. However, GNU Octave's
--saveimage command can save images in PPM format.
-+saveimage command can save images in PPM format.
-+
-
+diff -urNp a/userguide/pbmtog3.html b/userguide/pbmtog3.html
+--- a/userguide/pbmtog3.html 2025-02-04 10:47:27.827451549 +0100
++++ b/userguide/pbmtog3.html 2025-02-04 18:10:55.328259786 +0100
+@@ -80,7 +80,7 @@ You cannot specify both.
HISTORY
-@@ -86,7 +87,7 @@ specify netpbmfile, the input is from Standard Input.
- AUTHOR
+ Before Netpbm 10.79 (June 2017), there was a different program by the same
+-name in Netpbm, which was written by by Paul Haeberli
++name in Netpbm, which was written by Paul Haeberli
+ <paul@manray.sgi.com> in 1989
+ and then modified extensively by others.
-
Copyright (C) 2007 Scott Pakin,
--scott+pbm@pakin.org.
-+scott+pbm@pakin.org.
-
- SEE ALSO
-
-@@ -98,15 +99,15 @@ href="http://www.gnu.org/software/octave/doc/interpreter/index.html">octave
-
- Table Of Contents
-
--- SYNOPSIS
--
- DESCRIPTION
--
- OPTIONS
--
- ARGUMENTS
--
- EXAMPLES
--
- NOTES
--
- HISTORY
--
- AUTHOR
--
- SEE ALSO
-+
- SYNOPSIS
-+- DESCRIPTION
-+- OPTIONS
-+- ARGUMENTS
-+- EXAMPLES
-+- NOTES
-+- HISTORY
-+- AUTHOR
-+- SEE ALSO
-
-
-
-diff --git a/userguide/pnmflip.html b/userguide/pnmflip.html
-index 2bd7368..8a1916e 100644
---- a/userguide/pnmflip.html
-+++ b/userguide/pnmflip.html
-@@ -5,17 +5,18 @@
-
- NAME
-
--pnmflip - replaced by pamflip
-+pnmflip - replaced by pamflip
-
- DESCRIPTION
-
--This program is part of Netpbm.
-+
This program is part of Netpbm.
-
- pnmflip was replaced in Netpbm 10.13 (December 2002) by
- pamflip.
-
-+
DESCRIPTION
- pamflip is mostly backward compatible with pnmflip,
--but works on PAM images too.
-+but works on PAM images too.
-
- One way pamflip is not backward compatible with pnmflip
- is that pnmflip lets you specify any number of basic flip options,
-@@ -23,12 +24,12 @@ whereas pamflip requires exactly one. (pamflip provides
- the -xform option for requesting multiple transformations, though).
- Because of this incompatibility, pnmflip still exists as a
- separate program, and all it does is translate its options to pamflip
--style and run pamflip.
-+style and run pamflip.
-
- You should not make any new use of pnmflip and if you modify an
- existing use, you should upgrade to pamflip. But note that if you
- write a program that might have to be used with very old
--Netpbm, pnmflip is the only way to do that.
-+Netpbm, pnmflip is the only way to do that.
-
-
-
-diff --git a/userguide/pnmmercator.html b/userguide/pnmmercator.html
-index 998f7fb..65576ac 100644
---- a/userguide/pnmmercator.html
-+++ b/userguide/pnmmercator.html
-@@ -18,11 +18,12 @@ projection and vice-versa
- [filename]
-
- Minimum unique abbreviation of option is acceptable.
--You may use double hyphens instead of single hyphen to denote options.
-+You may use double hyphens instead of single hyphen to denote options.
-
- DESCRIPTION
-
--This program is part of Netpbm.
-+
This program is part of Netpbm.
-
- The pnmmercator utility, converts a rectangular projection worldmap
- to a Mercator projection format, as used for maps.google.com and many other
-@@ -31,34 +32,34 @@ online maps. The map used as input for pnmmercator must have rows for
- file will typically be twice as wide as high, but this is not a
- requirement. The output file will be using the Mercator
--projection and will get double the height of the input file.
-+projection and will get double the height of the input file.
-
- Maps using the Mercator projection are stretched more the closer a row is
- to the North or South Pole. The last few degrees (> 85 or < -85 degrees)
- are not part of a Mercator map at all because they would be stretched too much
- and the rows close to the edge will show banding, because they originate from
--the same row in the original map.
-+the same row in the original map.
-
- To overcome this, the program will by default do interpolation of pixel
- colors, which will eliminate the banding effect, but will cause some blurring
- of the output. With the -nomix option, this interpolation of colors isn't
- applied. You can obtain the highest quality output by starting with an input
- map of high resolution, so that you can follow the pnmmercator
--transformation with a pamscale reduction in size.
-+transformation with a pamscale reduction in size.
-
- This program can also convert a Mercator projection map back to a
- rectangular projection based. As said, the Mercator map doesn't have
- information about the latitudes close to the poles. Therefore the top rows in
- the output image will be identical and copied from the row corresponding with
--latitude of 85 degrees. The same at the bottom of the map.
-+latitude of 85 degrees. The same at the bottom of the map.
-
- Pnmmercator doesn't have any provision for scaling the image. You can scale
- by piping the output of the program through Netpbm programs such as
--pamscale.
-+pamscale.
-
- You can find maps to be used as input at flatplanet.sourceforge.net
--or uic.edu/pape.
-+or uic.edu/pape.
-
- The point of a Mercator projection map is that compass directions work on
- it. If you draw a straight line northeast from some point on the Mercator
-@@ -78,33 +79,33 @@ proportional to angular longitude.
-
PARAMETERS
-
- filename is the name of the input file. If you don't specify
--this, pnmmercator reads the image from standard Input.
-+this, pnmmercator reads the image from standard Input.
-
- OPTIONS
-
- In addition to the options common to all programs based on libnetpbm
- (most notably -quiet, see
- Common Options), pnmmercator recognizes the following
--command line options:
-+command line options:
-
-
- - -inverse
- -
-
With this option a conversion from Mercator to degrees is applied.The
--output image will have half the height of the input map.
-+output image will have half the height of the input map.
-
- - -nomix
- -
-
Default behaviour is that color blending is applied in between two adjacent
- rows. If you specify the -nomix parameter there is no blending. The
- consequence is a banding at the top and bottom of the map. With this option,
--the output map will also consist of exactly the same colors as the input.
-+the output map will also consist of exactly the same colors as the input.
-
- - -verbose and -vverbose
- -
-
This parameter outputs some additional information. If you double the 'v',
- it will output debug data about the lat/long degree and Mercator
--conversions.
-+conversions.
-
-
-
-@@ -114,25 +115,26 @@ conversions.
- ppmglobe
-
- HISTORY
--pnmmercator was new in Netpbm 10.49 (December 2009).
-+
pnmmercator was new in Netpbm 10.49 (December 2009).
-
- AUTHORS
-
- Willem van Schaik (of
- pnmtopng/pngtopnm fame) wrote this program in October 2009 and
--suggested it for inclusion in Netpbm.
-+suggested it for inclusion in Netpbm.
-
-
-
- Table Of Contents
-
- - SYNOPSIS
--
- DESCRIPTION
--
- PARAMETERS
--
- OPTIONS
--
- SEE ALSO
--
- HISTORY
--
- AUTHORS
-+
- DESCRIPTION
-+
- PARAMETERS
-+
- OPTIONS
-+
- SEE ALSO
-+
- HISTORY
-+
- AUTHORS
-+
-
-
-