Pamshuffle User Manual(1) General Commands Manual Pamshuffle User Manual(1)
Updated:
NAME
pamshuffle - Shuffle pixels of a Netpbm image
SYNOPSIS
pamshuffle [-column [-randomseed integer]] [pamfile]
Minimum unique abbreviations of option are acceptable. You may use dou-
ble 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.
DESCRIPTION
This program is part of Netpbm(1).
pamshuffle reads a Netpbm image as input and produces an output file
with the pixels shuffled. The operation only changes the location of
existing pixels; nothing is discarded or added.
By default, pixels change location within rows independently, but it is
also possible to perform the same shuffle on every row, meaning the pro-
gram is shuffling vertical columns of pixels. Either way, there is no
vertical rearrangement; this means images consisting entirely of hori-
zontal stripes, such as the national banners of Germany, Thailand and
Ukraine, will be unchanged.
To shuffle vertically, or to perform a complete scramble, use pamshuffle
together with pamflip. See examples below.
Input is from Standard Input if you don't specify the input file pam-
file.
Output is to Standard Output.
pamshuffle works on a multi-image stream. It operates on each image in
the stream independently and produces a multi-image stream output.
The shuffling algorithm is the widely known ]8;;https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle\ Fisher-Yates method]8;;\ .
OPTIONS
In addition to the options common to all programs based on libnetpbm
(most notably -quiet, see ]8;;index.html#commonoptions\ Common Options]8;;\ ), pamshuffle recognizes the
following command line options:
-column
Shuffle vertical columns, i.e. perform the same movement on all
rows. Without this option, the program shuffles each row inde-
pendently.
-randomseed= integer
This is the seed for the random number generator that generates
the pixels.
Use this to ensure you get the same image on separate invoca-
tions.
By default, pamshuffle uses a seed derived from the time of day
and process ID, which gives you quite uncorrelated results in
multiple invocations.
EXAMPLES
In the following example, output is to Standard Output. You will proba-
bly want to add redirection to somewhere useful.
•
pamshuffle is useful when you want to randomize the orderly out-
put of image generators such as pamseq and pgmramp.
Produce five permutations of integers 0 to 15:
pgmramp -lr -maxval=15 16 5 | pamshuffle -plain
• Shuffle columns:
pamshuffle -column image.ppm
• Shuffle rows:
pamflip -cw image.ppm | pamshuffle | pamflip -ccw
• Perform complete shuffle:
pamflip -cw image.ppm | pamshuffle | pamflip -ccw | pamshuffle
SEE ALSO
pamseq(1), pgmramp(1), pamflip(1), ppmshift(1), ppmspread(1), pam(1)
HISTORY
pamshuffle was new in Netpbm 10.99 (June 2022).
AUTHOR
By Akira F. Urushibata. Contributed to the public domain by the author.
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/pamshuffle.html
netpbm documentation Pamshuffle User Manual(1)
Generated by dwww version 1.16 on Tue Dec 16 06:14:27 CET 2025.