Listing 8 mainr.c -- rotates a 300 x300 by 90 degrees

      /**********************************************
      *       file d:\cips\mainr.c
      *
      *       Functions: This file contains
      *          main
      *
      *       Purpose:
      *          This file contains the main calling
      *          routine for a program which rotates an
      *          entire 300x300 image by 90
      *          degrees.
      *
      *       External Calls:
      *          gin.c - get_image_name
      *          numcvrt.c - get_integer
      *                      int_convert
      *          tiff.c - read_tiff_header
      *          rotate.c - rotate_flip_image_array
      *
      *       Modifications:
      *          7 April 1992 - created
      *
      **********************************************/

#include "d:\cips\cips.h"


short the_image[ROWS][COLS];
short out_image[ROWS][COLS];

main(argc, argv)
   int argc;
   char *argv[];
{

   char     name[80], name2[80];
   int      count, length, width;
   struct   tiff_header_struct image_header;
   
   _setvideomode(_TEXTC80); /* MSC 6.0 statements */
   _setbkcolor(1);
   _settextcolor(7);
   _clearscreen(_GCLEARSCREEN);

      /***********************************************
      *
      *       Interpret the command line parameters.
      *
      ***********************************************/

   if(argc < 3 || argc > 3){
    printf(
     "\n"
     "\n usage: mainr in-file out_file"
     "\n");
    exit(0);
   }
   
   strcpy(name, argv[1]);
   strcpy(name2, argv[2]);
   
   if(does_not_exist(name2)){
      printf("\n\n output file does not exist %s", name2);
      read_tiff_header(name, &image_header);
      round_off_image_size(&image_header,
                       &length, &width);
      image_header.image_length = length*ROWS;
      image_header.image_width  = width*COLS;
      create_allocate_tiff_file(name2, &image_header,
                            out_image);
   }  /* ends if does_not_exist */
   
      /***********************************************
      *
      *   Read, rotate, and write each ROWSxCOLS array
      *   in the input image. Write them to the new
      *   locations in the output image.
      *
      **********************************************/
      
   count = 1;
   
   printf(" %d", count++);
   rotate_flip_image_array(name, name2, the_image,
                   out_image, 1, 1, 101, 101,
                   1, 201, 101, 301, 1);
   
   printf(" %d", count++);
   rotate_flip_image_array(name, name2, the_image,
                   out_image, 1, 101, 101, 201,
                   101, 201, 201, 301, 1);
   
   printf(" %d", count++);
   rotate_flip_image_array(name, name2, the_image,
                   out_image, 1, 201, 101, 301,
                   201, 201, 301, 301, 1);
   
   printf(" %d", count++);
   rotate_flip_image_array(name, name2, the_image,
                   out_image, 101, 1, 201, 101,
                   1, 101, 101, 201, 1);
   
   printf(" %d", count++);
   rotate_flip_image_array(name, name2, the_image,
                   out_image, 101, 101, 201, 201,
                   101, 101, 201, 201, 1);
   
   printf(" %d", count++);
   rotate_flip_image_array(name, name2, the_image,
                   out_image, 101, 201, 201, 301,
                   201, 101, 301, 201, 1);
   
   printf(" %d", count++);
   rotate_flip_image_array(name, name2, the_image,
                   out_image, 201, 1, 301, 101,
                   1, 1, 101, 101, 1);
                   
   printf(" %d", count++);
   rotate_flip_image_array(name, name2, the_image,
                   out_image, 201, 101, 301, 201,
                   101, 1, 201, 101, 1);
   
   printf(" %d", count++);
   rotate_flip_image_array(name, name2, the_image,
                   out_image, 201, 201, 301, 301,
                   201, 1, 301, 101, 1);

}  /* ends main  */
/* End of File */