home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / apps / opaste / to2bpp.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-02  |  1.8 KB  |  59 lines

  1. /*
  2.  * Copyright 1993, 1994, Silicon Graphics, Inc.
  3.  * All Rights Reserved.
  4.  *
  5.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6.  * the contents of this file may not be disclosed to third parties, copied or
  7.  * duplicated in any form, in whole or in part, without the prior written
  8.  * permission of Silicon Graphics, Inc.
  9.  *
  10.  * RESTRICTED RIGHTS LEGEND:
  11.  * Use, duplication or disclosure by the Government is subject to restrictions
  12.  * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13.  * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14.  * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15.  * rights reserved under the Copyright Laws of the United States.
  16.  */
  17. /*
  18.  *    to2bpp - Create a file with 2 byte-per-pixel encoding.
  19.  *
  20.  * Created 4/1/93 by Tim Heidmann to get around apparent getrow() bug.
  21.  */
  22. #include <gl/image.h>
  23.  
  24. short rowbuf[8192];
  25.  
  26. main(argc,argv)
  27. int argc;
  28. char **argv;
  29. {
  30.     register IMAGE *iimage, *oimage;
  31.     register int x, y, z;
  32.     int xsize, ysize, zsize;
  33.     short mask;
  34.  
  35.     if( argc!=3 ) {
  36.     fprintf(stderr,"usage: to2bpp inimage outimage\n");
  37.     exit(1);
  38.     } 
  39.     if( (iimage=iopen(argv[1],"r")) == NULL ) {
  40.     fprintf(stderr,"mult: can't open input file %s\n",argv[1]);
  41.     exit(1);
  42.     }
  43.     oimage = iopen(argv[2],"w",
  44.     (iimage->type & TYPEMASK) | BPP(2),
  45.     iimage->dim, iimage->xsize, iimage->ysize, iimage->zsize); 
  46.     isetname(oimage,iimage->name);
  47.     oimage->colormap = iimage->colormap;
  48.     mask = (iimage->type & BPPMASK) == 1 ? 0x00ff : 0x0000;
  49.     for(z=0; z<iimage->zsize; z++)
  50.     for(y=0; y<iimage->ysize; y++) {
  51.         getrow(iimage,rowbuf,y,z);
  52.         for (x = 0; x < iimage->xsize; x++) rowbuf[x] &= mask;
  53.         putrow(oimage,rowbuf,y,z);
  54.     }
  55.     iclose(iimage);
  56.     iclose(oimage);
  57.     exit(0);
  58. }
  59.