packages icon



 FLY( Version 1.6.5)                                     FLY( Version 1.6.5)




 NB FOR FULL DOCUMENTATION see fly.html
 USAGE
      The standard manner used to invoke fly is: fly -i <input file> -o
      <output file>

      You can omit the input file, and fly takes its directives from stdin,
      and if you omit the output file, the output goes to stdout.

            Using the -q switch sets fly to quiet mode - no on-screen
      reporting.
            A quick reference to directives may be seen by using the -h
      switch.


 THE COMMAND FILE
      The command file uses a number of directives. It must start with one
      of the following lines:

      existing /path/to/file.gif
            if modifying an existing image, OR new size x,y
            for creating a new image of width x pixels, height y pixels.

      After the initial command, any of the commands below may be used.

      To create more than one image from a command file, use the directive
      end, followed by either

      existing /path/to/file.gif name <filename.gif>
            if modifying an existing image, OR new size x,y name
      <filename.gif>
            for creating a new image.

      Note:

            All x,y values are in pixels measured from the top left of the
      image. For a 256x256 image, top left is 0,0 and
            bottom right is 255,255. All x1,y1,x2,y2 pairs must specify the
      top left and bottom right of the shape, where
            appropriate.
            All RGB colour values are in integer format, not hexadecimal.
            Arc sweeps are clockwise.




 DIRECTIVES AND EXPLANATIONS
      line x1,y1,x2,y2,R,G,B

            Creates a line from coordinates x1,y1 to coordinates x2,y2 of
      colour R,G,B.




                                    - 1 -           Formatted:  July 3, 2022






 FLY( Version 1.6.5)                                     FLY( Version 1.6.5)




      dline x1,y1,x2,y2,R,G,B

            Creates a dashed line from coordinates x1,y1 to coordinates
      x2,y2 of colour R,G,B.

      rect x1,y1,x2,y2,R,G,B

            Creates a rectangle from coordinates x1,y1 to coordinates x2,y2
      with edging of colour R,G,B.

      frect x1,y1,x2,y2,R,G,B

            Creates a filled rectangle from coordinates x1,y1 to coordinates
      x2,y2 filled with colour R,G,B.

      square x1,y1,s,R,G,B

            Creates a square qith the top left corner at coordinates x1,y1,
      with side s in length, with edge of colour
            R,G,B.

      fsquare x1,y1,s,R,G,B

            Creates a square qith the top left corner at coordinates x1,y1,
      with side s in length, filled with colour
            R,G,B.

      poly R,G,B,x1,y1...,xn,yn

            Creates a polygon (has to be closed) through the points x1,y1 to
      x2,y2 to ... to xn,yn, of colour R,G,B.
            Note that the colour values appear before the coordinates in
      this directive.

      fpoly R,G,B,x1,y1...,xn,yn

            Creates a polygon (has to be closed) through the points x1,y1 to
      x2,y2 to ... to xn,yn, filled with colour
            R,G,B.
            Note that the colour values appear before the coordinates in
      this directive.

      arc x1,y1,w,h,start,finish,R,G,B

            Creates an arc of colour R,G,B centered at coordinates x1,y1, of
      width w and height h, starting at start
            degrees and finishing at finish degrees.

      ellipse x1,y1,w,h,R,G,B

            Creates an ellipse of colour R,G,B centered at coordinates



                                    - 2 -           Formatted:  July 3, 2022






 FLY( Version 1.6.5)                                     FLY( Version 1.6.5)




      x1,y1, of width w and height h.

      fcircle x1,y1,d,R,G,B

            Creates a circle centered at coordinates x1,y1, of diameter d,
      filled with colour R,G,B.

      circle x1,y1,d,R,G,B

            Creates a circle of colour R,G,B centered at coordinates x1,y1,
      of diameter d.

      fill x,y,R,G,B

            Flood fills with the colour R,G,B from the coordinates x,y to
      the edge of the area of the original color of
            x,y.

      filltoborder x,y,R1,G1,B1,R2,B2,G2

            Flood fills with colour R2,G2,B2 from x,y to the border of
      colour R1,G1,B1.

      string R,G,B,x,y,<size>,<string>

            Writes a string starting at x,y (in the colour R,G,B), of font
      size <size>, where size can be one of tiny
            (5x8), small (6x12), medium (7x13, bold), large (8x16) or giant
      (9x15, bold).

      stringup R,G,B,x,y,<size>,<string>

            Writes a string vertically starting at x,y (in the colour
      R,G,B), of font size <size>, where size can be one of
            tiny, small, medium, large or giant. The string will go up from
      the coordinates supplied.

      copy x,y,x1,y1,x2,y2,[source-filename.gif|`command`]

            Copies region x1,y1 - x2,y2 of source-filename.gif or the GIF
      output of command to the coordinates x,y
            of the image being created/modified.
            If x1,y1,x2,y2 are all -1, copy the entire image.

      copyresized x1,y1,x2,y2,dx1,dy1,dx2,dy2,[source-
      filename.gif|`command`]

            Copies region x1,y1 - x2,y2 of source-filename.gif or the GIF
      output of command to the area dx1,dy1 -
            dx2,dy2 of the image being created/modified, resizing the image
      to fit.



                                    - 3 -           Formatted:  July 3, 2022






 FLY( Version 1.6.5)                                     FLY( Version 1.6.5)




            If x1,y1,x2,y2 are all -1, copy the entire image.

      getpixel x,y

            Gets the colour index of the point at x,y.

      setpixel x,y,R,G,B

            Sets the point at x,y to the colour R,G,B.

      colourchange R1,G1,B1,R2,G2,B2

            Changes all pixels of colour R1,G1,B1 to R2,G2,B2.

      setbrush filename.gif

            Sets the current "brush" to filename.gif. Subsequent directives
      of line, dline, rect, poly and arc will use the
            selected "brush" to draw their lines, until a call of killbrush.

      killbrush

            Turns off the brush selection. Calls to line, dline, rect, poly
      and arc will then use the standard single-pixel
            width brush.

      settile filename.gif

            Sets the current "tile" to filename.gif. Subsequent directives
      of fill, and fpoly will use the selected "tile" as
            a fill pattern, until a call of killtile.

      killtile

            Turns off the tile selection. Calls to fill, filltoborder and
      fpoly will then use the specified colour for fills.

      setstyle R1,G1,B1, R2, G2, B2, ..., Rn,Gn,Bn

            Various line calls can use a style, specified by one or more
      colour settings for each pixel, that is repeated for
            the length of the "line". All subsequent directives of line,
      dline, rect, poly and arc will use the selected "style"
            to draw their lines, until a call of killstyle.

      killstyle

            Turns off the style selection. Calls to line, dline, rect, poly
      and arc will then use the standard single-pixel
            width brush.




                                    - 4 -           Formatted:  July 3, 2022






 FLY( Version 1.6.5)                                     FLY( Version 1.6.5)




      transparent R,G,B

            Makes the colour R,G,B the transparent colour.

      sizex

            Returns the width of the image in pixels.

      sizey

            Returns the height of the image in pixels.

      rotate deg

            Rotates the GIF image deg degrees clockwise, where deg is 90,
      180 or 270.

      interlace

            Makes the image output by fly an interlaced GIF.



      Comments in the command file

      At any point in the command file, you can insert a comment line
      starting with "#".

      Example:

      new size 256,256 # # start with a background fill fill 1,1,255,255,255
      # # then a circle in the middle circle 128,128,180,0,0,0 # etc.




 EXAMPLES
      If you are using fly from within a CGI program, here are some
      examples:

      Perl

            #!/usr/local/bin/perl

            $flyprog = "/usr/local/bin/fly";
            $outfile = "temp.gif";

            open(FLY,"| $flyprog -o $outfile ");
            print FLY "new0;
            print FLY "size 256,2560;
            print FLY "fill 1,1,255,255,2550;



                                    - 5 -           Formatted:  July 3, 2022






 FLY( Version 1.6.5)                                     FLY( Version 1.6.5)




            print FLY "circle 128,128,180,0,0,00;
            print FLY "fill 128,128,255,255,00;
            print FLY "arc 128,128,120,120,0,180,0,0,00;
            print FLY "circle 96,96,10,0,0,00;
            print FLY "circle 160,96,10,0,0,00;
            print FLY "fill 96,96,0,0,00;
            print FLY "fill 160,96,0,0,00;
            close(FLY);

      csh

            #!/bin/csh
            # test out fly!

            cat > /tmp/fly.$$ <<EOD
            new
            size 256,256
            fill 1,1,255,255,255
            circle 128,128,180,0,0,0
            fill 128,128,255,255,0
            arc 128,128,120,120,0,180,0,0,0
            circle 96,96,10,0,0,0
            circle 160,96,10,0,0,0
            fill 96,96,0,0,0
            fill 160,96,0,0,0
            EOD

            fly -i /tmp/fly.$$ -o test.gif

      Fly Scripts

            You can even create your own fly "scripts"!

            #!/usr/local/bin/fly -q
            new
            size 256,256
            fill 1,1,255,255,255
            <etc>

            Thanks to Andrew Finkenstadt <andyf@simutronics.com> for noting
      this unintentional feature of fly.

      C
            If you're using C, then you might as well use gd!!

      Can you guess what the above examples produce? Here's the answer!




      Feedback



                                    - 6 -           Formatted:  July 3, 2022






 FLY( Version 1.6.5)                                     FLY( Version 1.6.5)




            Let me know if you're using fly - send email to
      gleeson@unimelb.edu.au.




















































                                    - 7 -           Formatted:  July 3, 2022