63 lines
1.9 KiB
C
63 lines
1.9 KiB
C
|
//
|
||
|
// mxToolKit (c) 1999 by Mete Ciragan
|
||
|
//
|
||
|
// file: mxPcx.h
|
||
|
// implementation: all
|
||
|
// last modified: Apr 15 1999, Mete Ciragan
|
||
|
// copyright: The programs and associated files contained in this
|
||
|
// distribution were developed by Mete Ciragan. The programs
|
||
|
// are not in the public domain, but they are freely
|
||
|
// distributable without licensing fees. These programs are
|
||
|
// provided without guarantee or warrantee expressed or
|
||
|
// implied.
|
||
|
//
|
||
|
#ifndef INCLUDED_MXPCX
|
||
|
#define INCLUDED_MXPCX
|
||
|
|
||
|
|
||
|
|
||
|
#ifndef INCLUDED_MXIMAGE
|
||
|
#include "mxtk/mxImage.h"
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
byte manufacturer; /* 10 = ZSoft .pcx */
|
||
|
byte version; /* 0 = Version 2.5 of PC Paintbrush
|
||
|
2 = Version 2.8 w/palette information
|
||
|
3 = Version 2.8 w/o palette information
|
||
|
4 = PC Paintbrush for Windows(Plus for
|
||
|
Windows uses Ver 5)
|
||
|
5 = Version 3.0 and > of PC Paintbrush
|
||
|
and PC Paintbrush +, includes
|
||
|
Publisher's Paintbrush . Includes
|
||
|
24-bit .PCX files */
|
||
|
byte encoding; /* 1 = .pcx rle encoding */
|
||
|
byte bitsPerPixel; /* 1, 2, 4, 8 per plane */
|
||
|
word xmin;
|
||
|
word ymin;
|
||
|
word xmax;
|
||
|
word ymax;
|
||
|
word hDpi;
|
||
|
word vDpi;
|
||
|
byte colorMap[48];
|
||
|
byte reserved; /* should be set to 0 */
|
||
|
byte numPlanes; /* number of color planes */
|
||
|
word bytesPerLine; /* MUST be EVEN number */
|
||
|
word paletteInfo; /* 1 = color, 2 = grayscale */
|
||
|
word hScreenSize;
|
||
|
word vScreenSize;
|
||
|
byte filler[54]; /* set all to 0 */
|
||
|
} mxPcxHeader;
|
||
|
|
||
|
|
||
|
|
||
|
mxImage *mxPcxRead (const char *filename);
|
||
|
bool mxPcxWrite (const char *filename, mxImage *image);
|
||
|
|
||
|
|
||
|
|
||
|
#endif // INCLUDED_MXPCX
|