📄 pcx.h
字号:
BITMAP *load_pcx(char *file,char bloot)
{ FILE *fp;PCXHEAD pcx;RGB rgb[256];char Index[256];
register short x,y,count,total,height;
unsigned char data;
BITMAP *bitmap;
if((fp=fopen(file,"rb"))==NULL)
{
sprintf(grp_err,"Can't Open Pcx File %s",file);
return FALSE;
}
if(bloot)
{
fseek(fp,-768L,SEEK_END);
fread(&rgb,1,768,fp);
fseek(fp,0L,SEEK_SET);
for(short i=0;i<255;i++)
Index[i]=get_color(rgb[i].r>>2,rgb[i].g>>2,rgb[i].b>>2);
}
fread(&pcx,1,sizeof(PCXHEAD),fp);
height=pcx.ymax-pcx.ymin+1;
bitmap=create_bitmap(pcx.width-1,height);
fseek(fp,128L,SEEK_SET);
for(y=0;y<height;y++)
{total=0;
while(total<pcx.width)
{count=1;
data=fgetc(fp);
if(0xc0==(0xc0&data))
{count=0x3f&data;
data=fgetc(fp);
}
if(bloot)
for(x=0;x<count;x++)
bitmap->line[y][x+total]=Index[data];
else
for(x=0;x<count;x++)
bitmap->line[y][x+total]=data;
total+=count;
}
}
bitmap->MskCol=*(bitmap->dat);
fclose(fp);
return bitmap;
}
//读PCX图像的width and height
char ReadPcx(char *file,BITMAP *bitmap)
{ FILE *fp;PCXHEAD pcx;
short height;
if((fp=fopen(file,"rb"))==NULL){
sprintf(grp_err,"Can't Open Pcx File %s",file);
return FALSE;}
fread(&pcx,1,sizeof(PCXHEAD),fp);
height=pcx.ymax-pcx.ymin+1;
bitmap->w=pcx.width;
bitmap->h=height;
fclose(fp);
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -