home *** CD-ROM | disk | FTP | other *** search
/ gondwana.ecr.mu.oz.au/pub/ / Graphics.tar / Graphics / papers / shir90a / seeppm.c < prev    next >
C/C++ Source or Header  |  1991-03-26  |  1KB  |  57 lines

  1. #include <stdio.h>
  2. #include <gl/gl.h>
  3.  
  4. main(argc, argv)
  5. int argc;
  6. char** argv;
  7. {
  8.     char p6[10];
  9.     int nx, ny;
  10.     int num;
  11.     int i, j;
  12.     unsigned char c;
  13.     int ic;
  14.     unsigned long pix[1000000];
  15.     unsigned int sec;
  16.     FILE* picfile;
  17.     int scale;
  18.  
  19.  
  20.     if (argc != 4)
  21.     {
  22.     fprintf(stderr, "usage: %s filename zoom time\n", argv[0]);
  23.         exit(1);
  24.     }
  25.     picfile = fopen(argv[1], "r");
  26.     scale = atoi(argv[2]);
  27.     sec = atoi(argv[3]);
  28.  
  29.    fscanf(picfile, "%s%d%d%d",p6, &nx, &ny, &num); 
  30.    printf("%s\n%d %d\n%d\n", p6, nx, ny, num);
  31.    getc(picfile);
  32.    for (j = ny-1; j >= 0; j--)
  33.       for (i = 0; i < nx; i++)
  34.    {
  35.        c = getc(picfile);
  36.        ic = (int) c;
  37.        pix[j*nx + i] = ic;
  38.        c = getc(picfile);
  39.        ic = (int) c;
  40.        pix[j*nx + i] += ic*256;
  41.        c = getc(picfile);
  42.        ic = (int) c;
  43.        pix[j*nx + i]  += 256*256*ic;
  44.    }
  45.    prefsize(scale*nx, scale*ny);
  46.    winopen(argv[1]);
  47.    RGBmode();
  48.    gconfig();
  49.    rectzoom((float) scale,(float) scale);
  50.    lrectwrite(0, 0, nx-1, ny-1, pix);
  51.     
  52. sleep(sec);
  53.     gexit();
  54.     return 0;
  55. }
  56.  
  57.