Provided by: netpbm_11.10.02-1build1_amd64 bug

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 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 program is shuffling vertical columns of pixels.  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 pamflip.  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  independently  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  redirection  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)