turbo c位图和bmp位图格式分极及应用论文

turbo c位图和bmp位图格式分极及应用论文

ID:25340809

大小:62.00 KB

页数:6页

时间:2018-11-19

turbo c位图和bmp位图格式分极及应用论文_第1页
turbo c位图和bmp位图格式分极及应用论文_第2页
turbo c位图和bmp位图格式分极及应用论文_第3页
turbo c位图和bmp位图格式分极及应用论文_第4页
turbo c位图和bmp位图格式分极及应用论文_第5页
资源描述:

《turbo c位图和bmp位图格式分极及应用论文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、TurboC位图和BMP位图格式分极及应用论文.freelage()函数用于将屏幕内的某矩形区域复制到内存缓冲区,putimage()函数将内存缓冲区中的内容再复制到屏幕上。但由于图像事先还没有出现在屏幕上,所以,.freelage()函数填写供putimage()函数显示的内存图像数据。不过可以把图像数据按getimage()函数产生的格式填于内存缓冲区中,然后调用putimage()函数,显示内存缓冲区图像,下面分析getimage()函数产生的格式:getimage(intletf,inttop,intnight,intb

2、ottm,*buf)其中,left,top——矩形区域左上角坐标(x,y)。right,bottom——矩形区域右上角坐标(x,y)。*buf——指向存储屏幕数据的内存指针。在内存中,图像数据是按行存放的。头两个字节为图像的宽度,接下去两个字节为图像的高度(均为低字节在前,高字节在后)。后面是真正的图像数据,它以图像的宽度为单位,先是图像的第一行第三位面的内容,然后是第一行第二位面的内容;第一行第一位面的内容;第一行第零位面的内容。第一行完后,接第二行的四个位面,第三行的四个位面等等。当屏幕状态为16色时,则需4个彩色页面。这时

3、,如果图像的宽度为8的整数倍时,则每行所需的字节数为:number=(right-left+8)18*4如果图像的宽度不为8的倍数据时,则number=(ceil((right-left)/8)*4)其中,ceil(righ-left)8为取大于(right-left)/8的最小整数则图像数据所需字节总数为:number*(bottom-top+1)则所需内存缓冲区字节总数为:6+number*(bottom-top+1)这是因为头四个字节存放图像的宽和高,而缓冲区最后2个字节无意义,可以填零。T5S04700.GIF;图1这样

4、,每行每页面的字节数为:p=number/4如图1所示(设宽、高为16×16)其中,图像的真正数据在每个页面的前m列,即:当宽度为8的倍数据时,m=P-1,此时每页面的最后一列可为零。而当宽度不为8的倍数时,m=P。结合图1m=2,即数据在每页面的前2列。二、BMP位图格式MSain(){int1,i,j,k,q,h;intdriver=VGA,mode=VGAHI;intlenth,high,number,p,m;unsignedsize;unsignedcharch,a8,b4,e48;FILE*fp;char*s;fp=f

5、open(“party.bmp”,“rb”);fseek(fp,18,0);lenth=getber=(lenth+8)/8*4#/*bytesofeachline*/#elsenumber=4*(ceil((double)1enth/8));up=number/4;mif((lenth%8)!=0)m=p;{/*bytesofeachline/4*/elsem=p-1;size=6+number*(high+1)/*needmemorybytesofgraphics*/if((s=char*)malloc(size))==NU

6、LL){printf(“mallocerror!\n”);exit(0);}s0=lenth0x00ff;s1=(lenth0xff00)8;s2=high0x00ff;s3=(high0xff00)8;for(i=4;isize;i++)si=0;fseek(fp,118,0);#for(l=high-1;11--)#for(q=0;qq++){#for(k=0;kk++){#ch=getc(fp);uch=convert(ch);ma0=ch0x1;a1=(ch0x2)1;{a2=(ch0x4)2;a3=(ch0x8)3;a

7、4=(ch0x10)4;a5=(chx20)5;a6=(ch0x40)6;a7=(ch0x80)7;h=7;for(j=0;ji++)for(j=0;ji++){eji+2*k=ah;h--;}}#for(i=0;ii++){#bi=(ei07)+(ei16)+(ei25)+#(ei34)+(ei43)+(ei52)+#(ei61)+(ei7);us4+number*1+q=b0;s4+number*1+q+p=b1;ms4+number*1+q+2*p=b2;s4+number*1+q+3*p=b3;{}fclose(fp);

8、initgraph(driver,mode,“d:\\tc”);putimage(0,0,s,0);getch();free(s):closegraph();}unsignedcharconvert(unsignedcharch)/*bmpcolorconver

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

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

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