|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
请教图形文件BMP的文件存储结构是什么? |
作者:imaway 栏目:技术交流 |
有哪位朋友知道图形文件BMP的文件存储结构是什么?能否介绍一下,谢谢! |
2楼: | >>参与讨论 |
作者: exito 于 2006/9/17 18:32:00 发布:
这几个部分。 BMP 是图象文件,不是图形文件(当然图形可以当图象来存放) BMP文件分几个部分 1。文件头信息 BITMAPFILEHEADER 大小 2。位图信息 BITMAPINFOHEADER 大小 3。调色板大小。(依图象不同每个可能不同。真彩色图象没有) 4。图象数据区。 |
3楼: | >>参与讨论 |
作者: tyw 于 2006/9/17 18:38:00 发布:
参考一下 http://bbs.21ic.com/upfiles/img/2006917183531579.rar 关于bmp的格式:在VC环境中 包含windows.h就可以使用定义好的头文件结构 BITMAPFILEHEADER 文件头 BITMAPINFOHEADER 信息头 RGBQUAD 调色盘(可选) 剩下部分为点阵数据 关于bmp数据格式: 24bit:3个BYTE表示一个像素 依存贮顺序为BBGGRR 256色(8bit) 每一个BYTE表示一个像素,存贮的是该像素点在调色盘中的索引值 16色(4bit)每一个BYTE表示二个像素,要注意这里高4位存贮前一个像素 低4位存贮第二个像素 存贮也是该像素点在调色盘里的索引值,既在内存里存贮格式为AAAABBBB AAAA是后一个像素点的数据,BBBB是前一个像素点的数据 按高位低位则为BBBBAAAA 单色 (1bit)每一个BYTE表示8个像素,同16色一样仍然是从高到低储存 1位白 0为黑 关于调色盘:每一个占4BYTE 分别为RGB和一个保留位, 调色盘的数量:低于24bit大于1bit的位图中在BITMAPINFOHEADER中有biClrUsed一项,项目若该项为0则调色盘数量为标准值,既为pow(2,biBitCount),若不为0则调色盘数量既为该值 关于4字节对齐:各种BMP文件都必须4字节对齐 既每行的BYTE的数必须为4的倍数 不够的部分用0补齐 比如一个50x50的24bit图原本一行的数据量为3*50=150BYTE为了对齐 所以要在后面补2个BYTE的0凑足152BYTE所以这样一幅图的数据量因该位152*50(BYTEs) 同样,其他位深的BMP文件也是这样,比如一个4x4的单色图,本来一行的数据只用半个BYTE就可以表示,但同样需要补到4个BYTE来满足对齐的要求 * - 本贴最后修改时间:2006-9-17 19:00:24 修改者:tyw |
4楼: | >>参与讨论 |
作者: xwj 于 2006/9/17 20:06:00 发布:
网上一搜一大把 |
5楼: | >>参与讨论 |
作者: conwh 于 2006/9/17 22:38:00 发布:
这一大把够看一阵的 |
6楼: | >>参与讨论 |
作者: imaway 于 2006/10/5 18:47:00 发布:
tyw我的朋友!我感觉是全材! |
7楼: | >>参与讨论 |
作者: iC921 于 2006/10/5 22:45:00 发布:
他的仓库怎么那么多货? 我去当秘书得了……收不收? |
8楼: | >>参与讨论 |
作者: 将军令 于 2006/10/7 11:28:00 发布:
去下载一个EASYBMP开放源码软件 不用理会bmp内部是怎么回事,就可以轻松搞定bmp文件 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |