summary refs log tree commit diff
path: root/pnmpaste.html
blob: 92b6672b01b9987d8f69427eb1cf87fdcb3e1b5c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
<html><head><title>Pnmpaste User Manual</title></head>
<body>
<h1>pnmpaste</h1>
Updated: 16 December 2018
<br>
<a href="#index">Table Of Contents</a>

<h2>NAME</h2>

pnmpaste - paste a rectangle into a PNM image

<h2 id="synopsis">SYNOPSIS</h2>

<b>pnmpaste</b>

[<b>-replace</b> | <b>-or</b> | <b>-and</b> | <b>-xor</b> |
<b>-nor</b> | <b>-nand</b> | <b>-nxor</b>]

<i>frompnmfile</i> <i>x</i> <i>y</i>
[<i>intopnmfile</i>]

<p>You can abbreviate all options to their shortest unique prefix.

<h2 id="description">DESCRIPTION</h2>

<p>This program is part of <a href="index.html">Netpbm</a>.

<p><b>pnmpaste</b> reads two PNM images as input and inserts the first
image (the "pasted image") into the second (the "base image") at the
specified location, and produces a PNM image the same size and type as
the base image as output.

<p>Either file name argument (but not both) may be &quot;-&quot; to indicate
Standard Input.  If you don't specify the second file argument at all, that's
the same as &quot;-&quot;.

<p><i>x</i> and <i>y</i> specify the location in the base image at
which to put the top left corner of the pasted image, <i>x</i> giving
the horizontal position and <i>x</i> giving the vertical position.  A
nonnegative value indicates the number of pixels right of the right
edge or below the top edge of the base image, while a negative value
indicates the number of pixels right of the right edge or below the
bottom edge (so x = -5 means 5 pixels left of the right edge).

<p>If any part of the pasted image does not fit within the base image,
<b>pnmpaste</b> fails.

<p>This tool is most useful in combination with <i>pamcut</i>.  For
instance, if you want to edit a small segment of a large image, and
your image editor cannot edit the large image, you can cut out the
segment you are interested in, edit it, and then paste it back in.

<p>Another useful companion tool is <b>pbmmask</b>.

<p><b>pamcomp</b> is a more general tool, except that it lacks the
"or," "and," and "xor" functions.
<b>pamcomp</b> allows you to specify a transparency mask in order to have
only part of the inserted image get inserted.  So the inserted pixels
need not be a rectangle.  You can also have the inserted image be
translucent, so the resulting image is a mixture of the inserted image
and the base image.

<h2 id="options">OPTIONS</h2>

<p>In addition to the options common to all programs based on libnetpbm
(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
Common Options</a>), <b>pnmpaste</b> recognizes the following
command line options:

<dl compact>
<dt><b>-replace</b>, <b>-or</b>, <b>-and</b>, <b>-xor</b>,
<b>-nor</b>, <b>-nand</b>, <b>-nxor</b>
<dd>
<p>These option specify the operation to use when doing the paste.
The default is <b>-replace</b>, which means to do the obvious paste:
replace pixels of the "into" image with those of the
"from" image.

<p><b>-and</b>, <b>-nand</b>, <b>-or</b>, <b>-nor</b>, <b>-xor</b>,
and <b>nxor</b> are allowed only if both input images are PBM images.  They
say to combine the "from" and "into" images by performing boolean operations:
Each pixel of the output image is the result of the boolean operation on the
corresponding pixels of the two input images, where white is TRUE and black
is FALSE.

<p>Note that this is different from what you would get by doing a bit
arithmetic on the bits in the PBM images, because in PBM, white is
represented by a 0 bit, and 0 in bit arithmetic corresponds to FALSE
in boolean arithmetic.

<p><b>-nand</b>, <b>-nor</b>, and <b>-nxor</b> were new in Netpbm 10.85
(December 2018).

</dl>
  
<h2 id="seealso">SEE ALSO</h2>

<b><a href="pamcomp.html">pamcomp</a></b>,
<b><a href="pamcut.html">pamcut</a></b>,
<b><a href="pnminvert.html">pnminvert</a></b>,
<b><a href="pnmarith.html">pnmarith</a></b>,
<b><a href="pbmmask.html">pbmmask</a></b>,
<b><a href="pnm.html">pnm</a></b>

<h2 id="author">AUTHOR</h2>

Copyright (C) 1989, 1991 by Jef Poskanzer.


<hr>
<h2 id="index">Table Of Contents</h2>
<ul>
<li><a href="#synopsis">SYNOPSIS</a>
<li><a href="#description">DESCRIPTION</a>
<li><a href="#options">OPTIONS</a>
<li><a href="#seealso">SEE ALSO</a>
<li><a href="#author">AUTHOR</a>
</ul>
</body>
</html>