man > pamshuffle

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 double hyphens instead of
       single hyphen to denote options.  You may use white space in place of the equals sign to sep‐
       arate 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 shuf‐
       fled.  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 per‐
       form the same shuffle on every row, meaning the program is shuffling vertical columns of pix‐
       els.   Either  way, there is no vertical rearrangement; this means images consisting entirely
       of horizontal 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  pam‐
       flip.  See examples below.

       Input is from Standard Input if you don't specify the input file pamfile.

       Output is to Standard Output.

       pamshuffle  works  on a multi-image stream.  It operates on each image in the stream indepen‐
       dently and produces a multi-image stream output.

       The shuffling algorithm is the widely known  Fisher-Yates method .



OPTIONS
       In addition to the options common to all programs based on libnetpbm  (most  notably  -quiet,
       see  Common Options ), 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 independently.


       -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 invocations.

              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 probably want to add redi‐
       rection to somewhere useful.



       •


              pamshuffle is useful when you want to randomize the orderly output 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)
pamshuffle □✕
NAME SYNOPSIS DESCRIPTION OPTIONS
-column -randomseed= integer
EXAMPLES SEE ALSO HISTORY AUTHOR DOCUMENT SOURCE

Generated by phpman v4.12.13 · Markdown · JSON Author: Che Dong Under GNU General Public License
2026-10-23 08:52 @216.73.217.37
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!

^_top_^