home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 19 Printer
/
19-Printer.zip
/
PRPCX2.ZIP
/
PCX.H
< prev
next >
Wrap
Text File
|
1989-11-10
|
2KB
|
50 lines
/*+
Name: pcx.h
Author: Kent J. Quirk
Abstract: This file contains information required when handling
PCX files.
-*/
/********************
Need these to handle the PCX data below.
*********************/
typedef unsigned char BYTE;
typedef unsigned int WORD;
/********************
This is the definition of the PCX header.
*********************/
typedef struct {
BYTE pcx_id; /* Always 0x0A for PCX files */
BYTE version; /* Version of the PCX format */
BYTE encoding; /* 1 = RLE (RLL) compression */
BYTE bpp; /* Number of bits per pixel */
WORD upleftx, uplefty; /* position of upper left corner */
WORD lorightx, lorighty; /* lower right corner (inclusive) */
WORD display_xres, display_yres; /* resolution in dpi of display */
BYTE palette[48]; /* palette data if it fits */
BYTE reserved;
BYTE nplanes; /* number of bit planes of data */
WORD bytesperline; /* # bytes in an uncompressed line */
WORD palletteinfo;
BYTE reserved2[58];
} PCX_HDR;
/********************
These two definitions are used to decompress data in the PCX file.
(The compressed count byte has the top two bits set).
*********************/
#define PCX_COMPRESSED 0xC0
#define PCX_MASK 0x3F
/********************
These prototypes declare the PCX read subroutines.
*********************/
PCX_HDR *pcx_read_header(PCX_HDR *hdr, FILE *f);
BYTE *pcx_alloc_line(PCX_HDR *hdr);
BYTE *pcx_next_line(PCX_HDR *hdr, BYTE *line, FILE *f);
void pcx_print_header(PCX_HDR *hdr, FILE *f);