易码技术论坛

 找回密码
 加入易码
搜索
12
返回列表 发新帖
楼主: 随缘

[求助]谁能告诉我单色位图的结构

[复制链接]
发表于 2005-1-7 19:00:00 | 显示全部楼层
单色部分需要注意的东西

0000h   0000d   文件标识               2 bytes 两字节的内容用来识别位图的类型: ‘BM’ : Windows 3.1x, 95, NT, …
0002h   0002d   File Size              4 Bytes 用字节表示的整个文件的大小
000Ah   0010d   Bitmap Data Offset       4 Bytes 从文件开始到位图数据开始之间的数据(bitmap data)之间的偏移量
000Eh   0014d   Bitmap Header Size       4 Bytes 位图信息头(Bitmap Info Header)的长度,用来描述位图的颜色、压缩方法等。下面的长度表示:
28h - Windows 3.1x, 95, NT, …

0Ch - OS/2 1.x

F0h - OS/2 2.x

注:在Windows95、98、2000等操作系统中,位图信息头的长度并不一定是28h,因为微软已经制定出了新的BMP文件格式,其中的信息头结构变化比较大,长度加长。所以最好不要直接使用常数28h,而是应该从具体的文件中读取这个值。这样才能确保程序的兼容性。

0012h  0018d   Width                    4 Bytes 位图的宽度,以象素为单位
0016h   0022d   Height                   4 Bytes 位图的高度,以象素为单位
001Ah   0026d   Planes                   2 Bytes 位图的位面数(注:该值将总是1)
001Ch   0028d   Bits Per Pixel       2 Bytes 每个象素的位数
1 - 单色位图(实际上可有两种颜色,缺省情况下是黑色和白色。你可以自己定义这两种颜色)

0022h   0034d   Bitmap Data Size         4 Bytes 用字节数表示的位图数据的大小。该数必须是4的倍数 (后面的00就是系统的补位)


[此贴子已经被作者于2005-1-7 19:03:33编辑过]

发表于 2005-2-5 09:06:00 | 显示全部楼层
好像有一个问题没有留意,就是说如果你的图片时48*X,那么每行还是要用八个字节保存数据,多出两个无用的字节,行象素小于64时按64保存,(小于32时按32 算,这个不记得是不是了,自己看看就知道)
 楼主| 发表于 2004-10-4 22:51:02 | 显示全部楼层 |阅读模式
如题
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-25 14:13 , Processed in 0.010485 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表