1Pnmmontage User Manual(0) Pnmmontage User Manual(0)
2
3
4
6 pnmmontage - create a montage of PNM images
7
8
10 pnmmontage
11
12 [-header=headerfile]
13
14 [-quality=n]
15
16 [-prefix=prefix]
17
18 [-0|-1|-2|...|-9]
19
20 [-data=filename]
21
22 pnmfile...
23
24
26 This program is part of Netpbm(1).
27
28 pnmmontage packs images of differing sizes into a minimum-area compos‐
29 ite image.
30
31 Areas of the output that cannot be occupied by an image are black.
32
33
34
36 In addition to the options common to all programs based on libnetpbm
37 (most notably -quiet, see
38 Common Options ⟨index.html#commonoptions⟩ ), pnmmontage recognizes the
39 following command line options:
40
41
42
43
44 -data=filename
45 This option causes pnmmontage to write a file that describes in
46 machine-readable form the positions of the original images
47 within the packed image. Here is an example:
48
49
50 :0:0:227:298
51 ../image1.ppm:0:0:227:149
52 ../image2.ppm:0:149:227:149
53
54
55
56 There is a line for each component image and one for the compos‐
57 ite.
58
59 The 5 fields on each line are:
60
61
62
63 • source image name (or null string indicating the line for the
64 composite image)
65
66 • Column number of upper left corner of the image
67
68 • Row number of upper left corner of the image
69
70 • width of the image (columns)
71
72 • height of the image (rows)
73
74
75 This option was new in Netpbm 10.6 (July 2002).
76
77
78 -header=filename
79 Tells pnmmontage to write a C header file of the locations of
80 the original images within the packed image. Each original im‐
81 age generates four #defines within the packed file: xxxX, xxxY,
82 xxxSZX, and xxxSZY, where xxx is the name of the file, converted
83 to all uppercase. The output also includes #defines OVERALLX
84 and OVERALLY, which specifies the total size of the montage im‐
85 age.
86
87 Here is an example:
88
89 #define OVERALLX 227
90 #define OVERALLY 298
91
92 #define X 0
93 #define Y 0
94 #define SZX 227
95 #define SZY 149
96
97 #define X 0
98 #define Y 149
99 #define SZX 227
100 #define SZY 149
101
102
103
104 -prefix
105 Tells pnmmontage to use the specified prefix on all of the #de‐
106 fines it generates.
107
108
109 -quality
110 Before attempting to place the subimages, pnmmontage will calcu‐
111 late a minimum possible area for the montage; this is either the
112 total of the areas of all the subimages, or the width of the
113 widest subimage times the height of the tallest subimage, which‐
114 ever is greater. pnmmontage then initiates a problem-space
115 search to find the best packing; if it finds a solution that is
116 (at least) as good as the minimum area times the quality as a
117 percent, it will break out of the search. Thus, -quality=100
118 will find the best possible solution; however, it may take a
119 very long time to do so. The default is -quality=200.
120
121
122 -0, -1, ... -9
123 These options control the quality at a higher level than -qual‐
124 ity; -0 is the worst quality (pick the first solution found),
125 while -9 is the best quality (perform an exhaustive search of
126 problem space for the absolute best packing). The higher the
127 number, the slower the computation. The default is -5.
128
129
130
131
132
134 Using -9 is very slow on all but the smallest image sets.
135
136 The minimum area arrangement is often not a convenient shape. For ex‐
137 ample, it might be a tall, thin column of images, when you'd rather
138 have something more square. To force a minimum width or height, you
139 can include a strut image - a black image that wide and one pixel high.
140 Similarly, you can use a vertical strut to force a minimum height.
141
142
143
145 pamcat(1), pnmindex(1), pnm(1), pam(1), pbm(1), pgm(1), ppm(1)
146
147
149 pnmmontage was new in Netpbm 9.10 (January 2001).
150
151
152
154 Copyright (C) 2000 by Ben Olmstead.
155
157 This manual page was generated by the Netpbm tool 'makeman' from HTML
158 source. The master documentation is at
159
160 http://netpbm.sourceforge.net/doc/pnmmontage.html
161
162netpbm documentation 22 November 2012 Pnmmontage User Manual(0)