Xref: news2.mv.net comp.os.msdos.djgpp:5319 rec.games.programmer:53528 From: Roland Exler Newsgroups: rec.games.programmer,comp.os.msdos.djgpp Subject: Re: Help -- Reading PCX Header Date: Mon, 24 Jun 1996 08:28:37 -0700 Organization: Institute for el. Measurement, University of Linz, Austria Lines: 39 Message-ID: <31CEB425.6BAE@jk.uni-linz.ac.at> References: <4ql5is$a37 AT maggie DOT ionsys DOT com> NNTP-Posting-Host: sensor4.emt.uni-linz.ac.at Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp MCheu wrote: > Sorry to bother everyone with this, but I've been getting some wierd > numbers from the following programme. It's supposed to read the > header from a pcx file and tell me about it. The first 4 values from > the header come through ok (ID, version, encoding, bitdepth), but the > next 4 (Xmin, Ymin, Xmax, Ymax) are way off. ... > typedef struct { > char ID; /* PCX id -- usually 10 */ > char ver; /* version */ > char encoding; > char bitdepth; /* 8 for 256 colour files */ > int Xmin, Ymin; > int Xmax, Ymax; > int Hres; > int Vres; > unsigned char palette[48]; > char reserved; > char ColourPlanes; > int bytesPerLine; > int paletteType; > char Stuff[58]; > } pcxHead; with gcc 'char' is 8 bits, 'short int' 16 bits, 'int' and 'long int' are 32 bits, so use short int where you want to read 16 bits. I prefere to define BYTE as unsigned char and WORD as unsigned short, so the programs are easier to be ported to another system. Roland +---------------------------------------+---------------------------+ I Roland Exler I EMAIL: I I Universitaet Linz I R DOT Exler AT jk DOT uni-linz DOT ac DOT at I I Institut fuer Elektrische Messtechnik I I I Altenbergerstr. 69 I Phone: I I A-4040 Linz, AUSTRIA I + 43 732 2468 9205 I +---------------------------------------+---------------------------+