在loadcepc.exe中设置bmp

int fp;
int width,length;
unsigned char * bmp_data;

char far *VideoBufferPtr=( char far *)0xa0000000;

void DrawPoint(int pos,unsigned char color);
void SelectPlane(int page);/*换页函数*/
void Set_640480_Video_Mode();
void put_bmp(char * bmpfile);


void Set_Video_Mode(int mode)

  union REGS inregs,outregs;
  inregs.h.ah=0;
  inregs.h.al=(unsigned char)mode;
  // BIOS 10H中断初使化视频模式
  int86(0x10,&inregs,&outregs);
}

void Set_640480_Video_Mode()
{
 __asm
 {
   mov AX, 4F02h
   mov BX, 101h   //显示模式 640 * 480 * 256色 ;101h 640 * 480 * 256;103h 800 * 600 * 256
   int 10h
 }

}
void SelectPlane(int page)
{
    __asm
    {
        mov AX, 4F05h
        mov BX, 0      //表示当前窗口
        mov DX, page   //在显示存储器中的位面号
        int 10h
    }
}

 

void DrawPoint(int x,int y,int len,unsigned char color)
{
     *(VideoBufferPtr+y*len+x)=color;
}


 

  void put_bmp(char * bmpfile)
  {
 
 int offset,d,c,i,j;
 unsigned char r,g,b;
 
 Set_640480_Video_Mode();

 if((fp=fopen(bmpfile,"rb"))==NULL)        //读取位图
      {
           printf("Can't open file: %s",bmpfile);
           return;
      }
 
     fseek(fp,28,SEEK_SET);
     fread(&d,2,1,fp);
     if(d!=8)
     {
          printf("%s Not a 256 color bitmap!/n",bmpfile);
          fclose(fp);
          return;
     }
 
     fseek(fp,18,SEEK_SET);           
     fread(&width,4,1,fp);            //读取图片宽度
     fseek(fp,22,SEEK_SET);
     fread(&length,4,1,fp);            //读取图片高度

     fseek(fp,54,SEEK_SET);
 
     for(c=0;c<256;c++)
     {
         b=fgetc(fp);
         g=fgetc(fp);
         r=fgetc(fp);
          _outp(0x3c8,c);
          _outp(0x3c9,r>>2); 
          _outp(0x3c9,g>>2);
          _outp(0x3c9,b>>2);
         fgetc(fp);
     }
 //getch();
    fseek(fp,10*sizeof(char),SEEK_SET);
    fread(&offset,4,1,fp);
    fseek(fp,offset*sizeof(char),SEEK_SET);

     
  SelectPlane(0);
 
 for(j=0;j<=101;j++)
  for(i=0;i<width;i++)
 {
  DrawPoint(i,j,width,fgetc(fp));
 }

 for(j=102;j<=102;j++)
  for(i=0;i<256;i++)
 {
  DrawPoint(i,j,width,fgetc(fp));
 }

 SelectPlane(1);
 
 for(j=102;j<=102;j++)
  for(i=256;i<640;i++)
 {
  DrawPoint(i,j,width,fgetc(fp));
 }

 for(j=103;j<=203;j++)
  for(i=0;i<width;i++)
 {
  DrawPoint(i,j,width,fgetc(fp));
 }

 for(j=204;j<=204;j++)
  for(i=0;i<512;i++)
 {
  DrawPoint(i,j,width,fgetc(fp));
 }
 
 

 SelectPlane(2);
 for(j=204;j<=204;j++)
  for(i=512;i<640;i++)
 {
  DrawPoint(i,j,width,fgetc(fp));
 }

 for(j=205;j<=306;j++)
  for(i=0;i<width;i++)
 {
  DrawPoint(i,j,width,fgetc(fp));
 }

 for(j=307;j<=307;j++)
  for(i=0;i<128;i++)
 {
  DrawPoint(i,j,width,fgetc(fp));
 }
 
 SelectPlane(3);
 for(j=307;j<=307;j++)
  for(i=128;i<640;i++)
 {
  DrawPoint(i,j,width,fgetc(fp));
 }
 
 for(j=308;j<=408;j++)
  for(i=0;i<width;i++)
 {
  DrawPoint(i,j,width,fgetc(fp));
 }
 for(j=409;j<=409;j++)
  for(i=0;i<384;i++)
 {
  DrawPoint(i,j,width,fgetc(fp));
 }
 
 SelectPlane(4);
 for(j=409;j<=409;j++)
  for(i=384;i<width;i++)
 {
  DrawPoint(i,j,width,fgetc(fp));
 }

 for(j=410;j<=479;j++)
  for(i=0;i<width;i++)
 {
  DrawPoint(i,j,width,fgetc(fp));
 }
 fclose(fp);

  }

 

最终在MAIN函数里面调用put_bmp("celogo.bmp");


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/e01620230/archive/2008/11/18/3324126.aspx

### 回答1: Bmp2mif.exe 是一款小型软件,主要用于把位图文件转化为 MIF(Memory Initialization File) 文件。MIF 文件可以用于 FPGA 等数字电路,将图形数据存储存储方便 FPGA 读取。 如果需要从 bmp 转换成 MIF,可以在网上搜索“bmp2mif.exe 下载”,可以找到很多相关的下载链接。一般来说,下载前最好先查询一下该软件的版本、来源、适用平台等信息,确保下载的软件适用于自己的系统。 下载并安装完毕后,打开软件,将需要转换的 bmp 图片导入,选择输出文件的相关参数,并点击“转换”按钮即可。功率过程可能需要等待数秒钟或数分钟,具体时间取决于原始图像的大小及电脑运行速度。 最后得到的 MIF 文件可以直接用于 FPGA 项目的开发。通过 bmp2mif.exe 的转换,可以把图像数据在 FPGA 等数字电路高效地进行存储和读取,实现多媒体和计算机视觉等复杂系统的开发。 ### 回答2: bmp2mif.exe是一种图像转换工具,也可称为位图转MIF文件工具。该工具将.bmp格式文件转换成.mif格式文件,使其在数字电路设计能够使用。 该工具的下载方式有很多种,可以通过搜索引擎搜索相关网站进行下载,也可以在某些数字电路设计软件直接下载该工具。下载完成后,用户可以将需要转换的.bmp文件拖入工具界面设置好相关参数,然后进行转换即可得到对应的.mif文件。 使用bmp2mif.exe有很多好处,对数字电路设计和模拟有很大的帮助。例如,可以提高数字电路设计的可读性和可维护性,同时还可以减少开发时间和成本的开销。 总的来说,bmp2mif.exe是一种非常有用的工具,它可以帮助设计者更快地完成数字电路的设计和模拟,提高开发效率和设计质量。因此,建议数字电路设计者在进行相关设计时使用该工具。 ### 回答3: bmp2mif.exe是一个将图像文件转换为MIF(Memory Initialization File)格式的工具,通常用于数字逻辑设计的仿真和实验。该工具可以将位图文件(如BMP,JPEG等)转换为MIF格式,进而被用作FPGA、ASIC和其他数字电路设计的数据初始化文件。它同样适用于数字视频处理的帧缓存数据初始化。 bmp2mif.exe的下载通常可以在设计软件的官方网站上找到。有时也可以在一些第三方网站上找到,但要注意确认文件来源和安全性。安装该工具通常很简单,只需要将下载的文件解压到指定文件夹即可启用。使用该工具时,需要注意对输入文件的格式、大小和位宽进行适当的处理,以确保转换过程和转换结果的正确性和有效性。 总之,bmp2mif.exe是一个方便易用、功能强大的工具,可以大大简化数字电路设计和实验的数据处理和转换过程。使用该工具可以帮助工程师更快捷、准确地实现数字电路的设计和仿真。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值