TRANSPOSE(9.1)                                     TRANSPOSE(9.1)

     NAME
          rotate, transpose - re-orient an image

     SYNOPSIS
          fb/rotate angle [ input ]

          fb/transpose [ -vhadrlui ] [ -ox y ] [ input ]

     DESCRIPTION
          Rotate rotates the image in its input picture file (default
          standard input) clockwise by angle degrees, writing the
          resulting picture file on standard output.

          Transpose turns its input picture file on its side by
          reflection through its major (descending from left to right)
          diagonal, writing the resulting picture file on standard
          output.  If no file name is given, the picture is read from
          standard input.  Options yield all possible symmetries of
          the square grid:

          -d   reflects the image through its descending diagonal (the
               default).

          -a   reflects the image through its ascending diagonal.

          -v   reflects the image left-to-right through its vertical
               center line.

          -h   inverts the image top-to-bottom through its horizontal
               center line.

          -r   rotates the image to the right (clockwise) 90 degrees.

          -l   rotates the image to the left (counterclockwise) 90
               degrees.

          -u   rotates the image upside down (180 degrees).

          -i   identity transformation (for completeness only.)

          -o x y
               translates by (x,y).  Without -o, the input and output
               files have the same upper-left corner.

          Transpose is particularly useful to convince programs that
          work on the rows of a picture file to operate on columns.
          For example

               fb/transpose big |
                    fb/resample 48 |

     TRANSPOSE(9.1)                                     TRANSPOSE(9.1)

                    fb/transpose |
                    fb/resample 48 >tiny

          makes a tiny 48×48 version of a big picture.

     SOURCE
          /sys/src/fb/rotate.c
          /sys/src/fb/transpose.c

     SEE ALSO
          picfile(9.6), resample(9.1)

     BUGS
          Very large images may not fit in memory.  The result of
          rotate is not anti-aliased.