class DrawImageObject
{
BYTE * m_pImageBuffer;
BYTE * m_pColorArray;
int m_xSize;
int m_ySize;
int m_nColors;
int m_curx;
int m_cury;
private:
int GIFNextPixel();
void compress(int init_bits, int fd);
public:
DrawImageObject(int xsize, int ysiz, int ncolors);
~DrawImageObject();
void PutPixel(int x, int y, BYTE color);
BYTE GetPixel(int x, int y);
void SetColor(BYTE index, BYTE red,BYTE green, BYTE blue);
void Line(int x1, int y1, int x2, int y2, BYTE colorindex);
void Box(int x1, int y1, int x2, int y2, BYTE colorindex);
void FilledBox(int x1, int y1, int x2, int y2, BYTE fillc,
BYTE outlinec);
void Text(const char * pText,int x1, int x2, const char *
fontrecord, BYTE color);
int TextXsize(const char * pText,const char * fontrecord);
int TextYsize(const char * pText,const char * fontrecord);
void WriteGIF(int fd); /* Writes GIF to file descriptor */
};
Listing 6Here is the interface for
the GIF-generation class. This class encapsulates a small subset of the public-domain
GD graphics library.