/****************************************************************************** ** Filename : imageSgi.h ** UNCLASSIFIED ** ** Description : Utility to read SGI image format files. This code was ** originally a SGI image loading utility provided with the ** Mesa 3D library @ http://www.mesa3d.org by Brain Paul. ** This has been extended to read all SGI image formats ** (e.g. INT, INTA, RGB, RGBA). ** ** Revision History: ** Date Name Description ** 06/08/99 BRC Initial Release ** ******************************************************************************/ #ifndef __IMAGESGI_H #define __IMAGESGI_H #define IMAGE_SGI_TYPE_VERBATIM 0 #define IMAGE_SGI_TYPE_RLE 1 struct sImageSgiHeader // 512 bytes { short magic; // IRIS image file magic number (474) char type; // Storage format (e.g. RLE or VERBATIM) char numBytesPerPixelChannel; // Number of bytes per pixel channel unsigned short dim; // Number of dimensions (1 to 3) unsigned short xsize; // Width (in pixels) unsigned short ysize; // Height (in pixels) unsigned short zsize; // Number of channels (1 to 4) int minimumPixelValue; // Minimum pixel value (0 to 255) int maximumPixelValue; // Maximum pixel value (0 to 255) char padding1[4]; // (ignored) char imageName[80]; // Image name int colormap; // colormap ID (0=normal, 0=dithered, // 2=screen, 3=colormap) char padding2[404]; // (ignored) }; struct sImageSgi { struct sImageSgiHeader header; unsigned char *data; }; #ifndef __IMAGESGI_CPP // RGB image load utility extern struct sImageSgi *ImageSgiOpen(char const * const fileName); extern void ImageSgiClose(struct sImageSgi *image); #endif #endif /* __IMAGESGI_H */