用C语言显示BMP图形.doc

用C语言显示BMP图形.doc

ID:51710352

大小:39.95 KB

页数:2页

时间:2020-03-15

用C语言显示BMP图形.doc_第1页
用C语言显示BMP图形.doc_第2页
资源描述:

《用C语言显示BMP图形.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用C语言显示BMP图形#include"stdio.h"#include"dir.h"#include"dos.h"#include"graphics.h" char*malloc();/*malloc转换*/ charbmp_to_dat(char*bmp,char*dat)/*将16色BMP文件转换为可以用putimage输出的格式,bmp为原BMP文件,dat为转化文件*/{   unsignedcharc[8],scan_times,scan_pixs;   unsignedcharworkpos;inti,j,k,n,nowpos,iw

2、,ih;   staticintcolor[16]={0,4,2,6,1,5,3,7,8,12,10,14,9,13,11,15};   unsignedcharworkline[640],scanline[640];   FILE*fp,*targetfp;   union   {      unsignedcharvalue;      struct      {         unsignedcl:4;         unsignedch:4;      }color;   }mycolor;       if((fp=fopen(bm

3、p,"rb"))==NULL)return(0);   targetfp=fopen(dat,"wb");       fseek(fp,18,SEEK_SET);   iw=0;ih=0;   fread(&iw,4,1,fp);      /*读图像宽度*/   fread(&ih,4,1,fp);      /*读图像高度*/   if(iw==0&&ih==0&&iw>640&&ih>480)   {fclose(fp);fclose(targetfp);return(0);}    iw--;ih--;         /*∵putim

4、age中的长宽比实际数值少1*/   scan_times=iw/8+1;      /*行处理单位数*/   scan_pixs=scan_times*4;      /*行像素字节数∵1单位=4字节*/       fputc(iw%256,targetfp);      /*填充信息头:长、宽部分*/   fputc(iw/256,targetfp);   fputc(ih%256,targetfp);   fputc(ih/256,targetfp);   fseek(fp,-scan_pixs,SEEK_END);       for(

5、j=0;j<=ih;j++)   {nowpos=0;   fread(scanline,scan_pixs,1,fp);   fseek(fp,-scan_pixs*2,SEEK_CUR);   for(n=3;n>=0;n--)      /*解码4个位面*/   {for(i=0;i

6、ycolor.color.ch];   c[k*2+1]=color[mycolor.color.cl];   }   for(k=0;k<8;k++)workpos+=(c[k]>>n&1)<<(7-k);   workline[nowpos]=workpos;nowpos++;   }}   fwrite(workline,scan_pixs,1,targetfp);   }   fclose(fp);fclose(targetfp);   return(1);} main(){   intgd=VGA,gm=VGAHI,n;   char*

7、buffer,bmpfile[13],_16file[13]={0};   FILE*fp;   structffblk*ff;   /*registerbgidriver(EGAVGA_driver);*/   initgraph(&gd,&gm,"C:\tc");   printf("Nowstarttodisplay16colorbmp.");   puts("Pleasechoice:");   printf("0.Quit1.BMPfilename");   while(1)   {      n=getch();  

8、    switch(n)      {      case0 :continue;      case'0':exit(0);    

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。