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
|
\
.\" This man page was generated by the Netpbm tool 'makeman' from HTML source.
.\" Do not hand-hack it! If you have bug fixes or improvements, please find
.\" the corresponding HTML page on the Netpbm website, generate a patch
.\" against that, and send it to the Netpbm maintainer.
.TH "Ppmshift User Manual" 1 "20 November 2008" "netpbm documentation"
.SH NAME
ppmshift - shift lines of a PPM image left or right by a random amount
.UN synopsis
.SH SYNOPSIS
\fBppmshift\fP
\fIshift\fP
[\fIppmfile\fP]
.UN description
.SH DESCRIPTION
.PP
This program is part of
.BR "Netpbm" (1)\c
\&.
.PP
\fBppmshift\fP reads a PPM image as input. It shifts every row of image
data to the left or right by a random amount, within a range of \fIshift\fP
pixels. The random distribution is uniform, centered at zero movement.
.PP
The randomness in the image is limited before Netpbm 10.37 (December
2006) -- if you run the program twice in the same second, you may get
identical output.
.PP
This is an effect the author intended to use for MPEG tests.
Unfortunately, this program is not useful for that - it creates too random
patterns to be used for animations. Still, it might give interesting results
on still images.
.UN options
.SH OPTIONS
.PP
There are no command line options defined specifically
for \fBppmshift\fP, but it recognizes the options common to all
programs based on libnetpbm (See
.UR index.html#commonoptions
Common Options
.UE
\&.)
.UN example
.SH EXAMPLE
.PP
Check this out: Save your favorite model's picture from something like
alt.binaries.pictures.supermodels (ok, or from any other picture source),
convert it to ppm, and process it e.g. like this, assuming the picture is
800x600 pixels:
.nf
#take the upper half, and leave it like it is
pamcut -top=0 -width=800 -height=300 cs.ppm >upper.ppm
#take the lower half, flip it upside down, dim it and distort it a little
pamcut -top=300 -width=800 -height=300 cs.ppm | \e
pamflip -topbottom | \e
ppmdim 0.7 | \e
ppmshift 10 >lower.ppm
#and concatenate the two pieces
pamcat -topbottom upper.ppm lower.ppm >newpic.ppm
.fi
.PP
The resulting picture looks like the image being reflected on a water
surface with slight ripples.
.UN seealso
.SH SEE ALSO
.BR "ppm" (1)\c
\&,
.BR "pamcut" (1)\c
\&,
.BR "pamflip" (1)\c
\&,
.BR "ppmdim" (1)\c
\&,
.BR "pamcat" (1)\c
\&
.UN author
.SH AUTHOR
Copyright (C) 1993 by Frank Neumann
.SH DOCUMENT SOURCE
This manual page was generated by the Netpbm tool 'makeman' from HTML
source. The master documentation is at
.IP
.B http://netpbm.sourceforge.net/doc/ppmshift.html
.PP
|