您的当前位置:首页>全部百科>百科问答详情
注:文章内容来源于网络,真实性有待确认,请自行甄别。

下载的东西里有bmp文件那是什么意思

发表于:2024-10-24 00:00:00浏览:6次 分类: 电脑/网络-互联网
问题描述:下载的东西里有bmp文件那是什么意思
BMP文件是一种常用的图像文件格式前言BMP文件的读取及显示是一个难度不大而又相当重要的工作。对BMP文件格式已都有详细介绍,本文主要致力于非压缩BMP读取及显示的实践工作,实现了8位及24位BMP文件的读取,并列出解析过程中所遇到的难点。bmp文件格式简介:1、8位的bmp文件主要有以下三部分依次组成:头部.调色板信息.(按b,g,r,reversed的顺序存放各调色板的颜色信息,共256个)主数据区(存放各个像素对应的调色板的序号)2、24位的bmp文件主要有以下两部分依次组成.头部信息.主数据区(按b,g,r的顺序存放各像素的信息)3、相关的结构体:3.1头部信息结构体:a)位图文件头typedefstructtagBITMAPFILEHEADER{//bmfhWORDbfType;DWORDbfSize;WORDbfReserved1;WORDbfReserved2;DWORDbfOffBits;}BITMAPFILEHEADER;其中的bfType值应该是“BM”(0x4d42),标志该文件是位图文件。bfSize的值是位图文件的大小b)位图信息头typedefstructtagBITMAPINFOHEADER{//bmihDWORDbiSize;LONGbiWidth;//以像素为单位的图像宽度LONGbiHeight;//以像素为单位的图像长度WORDbiPlanes;WORDbiBitCount;//每个像素的位数DWORDbiCompression;DWORDbiSizeImage;LONGbiXPelsPerMeter;LONGbiYPelsPerMeter;DWORDbiClrUsed;DWORDbiClrImportant;}BITMAPINFOHEADER;3.2、调色板数据结构体:(8位中使用)typedefstruct{BYTEb;BYTEg;BYTEr;BYTEreserved;}paletteRGB;3.3、主数据区BGR颜色结构:(24位中使用)typedefstruct{BYTEb;BYTEg;BYTEr;}structRGB;解析工作:1、SetPixel函数在windowsvc编译环境下,使用sdk编程方式,画像素点的函数为:COLORREFSetPixel(intx,inty,COLORREFcrColor);其中,COLORREF类型的颜色值是这样定义的:crColor=b<<16+g<<8+r;或等价于crColor=b*65536+g*256+r;2、Windows环境下扫描行的字节数:Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充.这一点相当重要,忽视这点将导致错误发生.我的解决方案如下:externWidth=( Width* BitCount)/8;//计算每行实际的字节宽度if(externWidth%4!=0)//计算应补足的字节数.externWidth=4-externWidth%4;elseexternWidth=0;核心代码:这里只列出核以的代码段,详细代码请参阅源码://头部解析voidBMParse::showHeadInfo(){assertF(mInputFile!=NULL,"inshowHeadInfo,mInputFileisnull\n");fread(&mBMFileStr,sizeof(BMPFileStr),1,mInputFile);fread(&mBMFileInfo,sizeof(BMPFileInfo),1,mInputFile);// Type= Type; Size= Size1+ Size2*65536; served1= served1; served2= served2; Offset= Offset1+ Offset2*65536;return;}//颜色区(8位的带调色板)解析:voidBMParse::parseBMPMatrix(){if( Type!=19778){cout<<"Thisisnotabmpfile"<=0;j--){for(i=0;i< Width;i++){fread(&tmpData,sizeof(BYTE),1,mInputFile);bmpMatrix[j][i]=((unsignedlong)paletteArr[tmpData].b)*65536+((unsignedlong)paletteArr[tmpData].g)*256+(unsignedlong)paletteArr[tmpData].r;}/*补齐位调整*/for(i=0;i=0;j--){for(i=0;i< Width;i++){fread(&tmpRGB,sizeof(structRGB),1,mInputFile);bmpMatrix[j][i]=((unsignedlong)tmpRGB.b)*65536+((unsignedlong)tmpRGB.g)*256+(unsignedlong)tmpRGB.r;}/*补齐位调整*/for(i=0;i

猜你喜欢

拍拖的由来
拍拖的由来
发表于:2024-10-24 00:00:00 浏览:99 分类: 电脑/网络-互联网
男朋友生日送什么礼物好呢
男朋友生日送什么礼物好呢
发表于:2024-10-24 00:00:00 浏览:58 分类: 电脑/网络-互联网
新浪网免费邮箱如何申请
新浪网免费邮箱如何申请
发表于:2024-10-24 00:00:00 浏览:57 分类: 电脑/网络-互联网
我只在乎你(歌词)我要歌词
我要词
发表于:2024-10-24 00:00:00 浏览:54 分类: 电脑/网络-互联网
动态ip是什么意思
动态ip是什么意思
发表于:2024-10-24 00:00:00 浏览:50 分类: 电脑/网络-互联网
国家信访局网上投诉受理后查询码在哪里获取
信访局网上投诉 受理后查询码在哪里获取
发表于:2024-10-24 00:00:00 浏览:50 分类: 电脑/网络-互联网
读秀下载方法能详细描述一下读秀下载的方法吗?读秀登录是不是需要帐
能详细描述一下读秀的方法吗?读秀登录是不是需要帐号呀,还是有另的方法 ??
发表于:2024-10-24 00:00:00 浏览:50 分类: 电脑/网络-互联网
百度吧
吧----我的动态里面的记录怎样删除
发表于:2024-10-24 00:00:00 浏览:47 分类: 电脑/网络-互联网
谁知道skype下载为什么打不开啊?
谁知道ype下载为什么打不开啊?
发表于:2024-10-24 00:00:00 浏览:43 分类: 电脑/网络-互联网
EXCEL图表里如何设置标准线,就是在图表上有一条标准线,用来明?
EXCEL图表里如何设置标准线,就是在图表上有一条标准线,用来明?
发表于:2024-10-24 00:00:00 浏览:41 分类: 电脑/网络-互联网