⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcx.h

📁 这个版本修正了已知的Bug,同时添加了部分函数
💻 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 + -