man > pnmmontage(1)

TLDR: pnmmontage (tldr-pages)

Create a montage from multiple PNM images.

  • Produce a packing of the specified images
    pnmmontage {{path/to/image1.pnm path/to/image2.pnm ...}} > {{path/to/output.pnm}}
  • Specify the quality of the packing (Note: Larger values produce smaller packings but take longer to compute.)
    pnmmontage -{{0..9}} {{path/to/image1.pnm path/to/image2.pnm ...}} > {{path/to/output.pnm}}
  • Produce a packing that is not larger than `p` percent of the optimal packing
    pnmmontage {{-qua|-quality}} {{p}} {{path/to/image1.pnm path/to/image2.pnm ...}} > {{path/to/output.pnm}}
  • Write the positions of the input files within the packed image to a machine-readable file
    pnmmontage {{-d|-data}} {{path/to/datafile}} {{path/to/image1.pnm path/to/image2.pnm ...}} > {{path/to/output.pnm}}
Pnmmontage User Manual(1)              General Commands Manual             Pnmmontage User Manual(1)

NAME
       pnmmontage - create a montage of PNM images


SYNOPSIS
       pnmmontage

       [-header=headerfile]

       [-quality=n]

       [-prefix=prefix]

       [-0|-1|-2|...|-9]

       [-data=filename]

       pnmfile...


DESCRIPTION
       This program is part of Netpbm(1).

       pnmmontage packs images of differing sizes into a minimum-area composite image.

       Areas of the output that cannot be occupied by an image are black.



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




       -data=filename
              This option causes pnmmontage to write a file that describes in machine-readable  form
              the positions of the original images within the packed image.  Here is an example:


                          :0:0:227:298
                          ../image1.ppm:0:0:227:149
                          ../image2.ppm:0:149:227:149



              There is a line for each component image and one for the composite.

              The 5 fields on each line are:



       •      source image name (or null string indicating the line for the composite image)

       •      Column number of upper left corner of the image

       •      Row number of upper left corner of the image

       •      width of the image (columns)

       •      height of the image (rows)


              This option was new in Netpbm 10.6 (July 2002).


       -header=filename
              Tells  pnmmontage  to  write  a  C header file of the locations of the original images
              within the packed image.  Each original  image  generates  four  #defines  within  the
              packed  file:  xxxX, xxxY, xxxSZX, and xxxSZY, where xxx is the name of the file, con‐
              verted to all uppercase.  The output also includes  #defines  OVERALLX  and  OVERALLY,
              which specifies the total size of the montage image.

              Here is an example:

                          #define OVERALLX 227
                          #define OVERALLY 298

                          #define X 0
                          #define Y 0
                          #define SZX 227
                          #define SZY 149

                          #define X 0
                          #define Y 149
                          #define SZX 227
                          #define SZY 149



       -prefix
              Tells pnmmontage to use the specified prefix on all of the #defines it generates.


       -quality
              Before attempting to place the subimages, pnmmontage will calculate a minimum possible
              area  for  the montage; this is either the total of the areas of all the subimages, or
              the width of the widest subimage times the height of the tallest  subimage,  whichever
              is  greater.   pnmmontage then initiates a problem-space search to find the best pack‐
              ing; if it finds a solution that is (at least) as good as the minimum area  times  the
              quality  as  a percent, it will break out of the search.  Thus, -quality=100 will find
              the best possible solution; however, it may take a very long time to do so.   The  de‐
              fault is -quality=200.


       -0, -1, ... -9
              These  options  control  the  quality at a higher level than -quality; -0 is the worst
              quality (pick the first solution found), while -9 is the best quality (perform an  ex‐
              haustive  search of problem space for the absolute best packing).  The higher the num‐
              ber, the slower the computation.  The default is -5.





NOTES
       Using -9 is very slow on all but the smallest image sets.

       The minimum area arrangement is often not a convenient shape.  For example,  it  might  be  a
       tall,  thin column of images, when you'd rather have something more square.  To force a mini‐
       mum width or height, you can include a strut image - a black image that wide  and  one  pixel
       high.  Similarly, you can use a vertical strut to force a minimum height.



SEE ALSO
       pamcat(1), pnmindex(1), pnm(1), pam(1), pbm(1), pgm(1), ppm(1)


HISTORY
       pnmmontage was new in Netpbm 9.10 (January 2001).



AUTHOR
       Copyright (C) 2000 by Ben Olmstead.

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

netpbm documentation                      22 November 2012                 Pnmmontage User Manual(1)
pnmmontage(1)
NAME SYNOPSIS
pnmmontage
DESCRIPTION OPTIONS
-data=filename -header=filename -prefix -quality -0, -1, ... -9
NOTES SEE ALSO HISTORY AUTHOR DOCUMENT SOURCE

Generated by phpman v4.10.0-7-g98e9fd5 · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-09-12 07:00 @2600:1f28:365:80b0:6f72:a904:73b0:e266
CrawledBy CCBot/2.0 (https://commoncrawl.org/faq/)
Valid XHTML 1.0 Transitional!Valid CSS!

^_top_^