From: "Gautam N. Lad" Newsgroups: comp.os.msdos.djgpp Subject: Help with this PCX displaying source (in DJGPP & GRX) Date: 7 Feb 1997 02:25:21 GMT Organization: InterLog Internet Services Lines: 134 Message-ID: <5de3qh$egn@news.interlog.com> NNTP-Posting-Host: ip220-205.cc.interlog.com To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Hi, Can someome please help me with this PCX displaying source. It works for one image, a friend sent, but others don't work. WHY? It seems right to me. I've been looking for a PCX displaying source in DJGPP & GRX and now that I have it, it doesn't work. NOTE: I won't be using 320x200 images only. I might be using a smaller size. Here's the source. PLEASE HELP! //******************************************************************* // // PCX.C // PCX Displaying source in DJGPP v2.0 and GRX v2.0 // Author: Gautam N. Lad // E-Mail: gautam AT interlog DOT com // //******************************************************************* #include #include #include #include #include #include #include #include #include #include /////////////////// DEFINES /////////////////////// #define BYTE unsigned char #define MAX_COLORS 256 #define COMPRESSED_CODE 0xC0 int IMAGE_WIDTH = 320; int IMAGE_HEIGHT = 200; typedef struct { BYTE red; BYTE green; BYTE blue; } COLOR; typedef COLOR PALETTE[MAX_COLORS]; void GetPalette(char* strFileName, PALETTE Palette); char buf[20]; GrMouseEvent evt; void main() { PALETTE Palette; GrSetMode(GR_width_height_color_graphics,640,480,65536); GrClearScreen(GrWhite()); GetPalette("BALL.PCX",Palette); } void GetPalette(char* strFileName, PALETTE Palette) { int a; BYTE color,count; int File,color_index,x,y; int color_map[MAX_COLORS]; File=open(strFileName,O_RDONLY); if(File == -1) return; lseek(File,-768,SEEK_END); for(color_index=0;color_index < MAX_COLORS; color_index++) { read(File,&Palette[color_index].red,1); read(File,&Palette[color_index].green,1); read(File,&Palette[color_index].blue,1); color_map[color_index] = GrAllocColor(Palette[color_index].red, Palette[color_index].green, Palette[color_index].blue); } lseek(File,128,SEEK_SET); x=y=0; do { read(File,&color,1); if (color > COMPRESSED_CODE) { count = color-COMPRESSED_CODE; read(File,&color,1); } else { count = 1; } while(count-- > 0) { GrPlot(x++,y,color_map[color]); if(x >= IMAGE_WIDTH) { x=0; y++; } } } while(y < IMAGE_HEIGHT); close(File); } //*****************E N D O F F I L E***************************** **************************************************** * Gautam N. Lad * *--------------------------------------------------* * * * E-Mail : gautam AT interlog DOT com * * Website : http://www.interlog.com/~gautam * * * * OS/2, DOS/Windows, Graphics Gallery, Software, * * Links, Rayzor Editor/2, POV-Ray, and more. * ****************************************************