24位bmp图片文件头、信息头的二进制数据
来源:互联网 发布:2016海关进出口数据 编辑:程序博客网 时间:2024/05/01 07:27
不知道第几次看这个了,今天再次看的时候 发现又回到了晕晕乎乎的感觉
用PS新建了10*10像素的24位bmp图片,用UE打开仔细瞧瞧
-------------------------------------------------------------以下文件头
42 4D BM一直不变
78 01 00 00 图片大小
00 00 保留为0
00 00 保留为0
36 00 00 00 偏移 非索引图是54 、索引图不固定
位图文件头 共14个字节(从0计数)
WORD bfType(第0、1字节):
42 4d代表BM(42-B,4d-M)
存储顺序是424d,用双字节单位读取的时候,先读取42放在低字节,再读取4d放在高字节,程序中应该判断双字节单元中存储的是否是0x4d42
if(header.bfType == 0x4d42) {}
DWORD bfSize(第2、3、4、5字节):
78 01 00 00 即0x178(十进制376)字节,右键属性中显示的整个图片文件的大小
WORD bfReserved1(第6、7字节):
00 00 保留字节 为0
WORD bfReserved2(第8、9字节):
00 00 保留字节 为0
DWORD bfOffBits(第10、11、12、13字节):
36 00 00 00 即0x36(十进制54),位图数据的起始位置是第54字节
(24位图,位图文件头(BITMAPFILEHEADER14字节)和位图信息头(BITMAPINFOHEADER40字节)之后就是位图数据,没有调色板)
-----------------------------------------------------------以下信息头
28 00 00 00 一直不变
0A 00 00 00 宽
0A 00 00 00 长
01 00 一直不变
18 00 多少位图
00 00 00 00 无压缩 一直不变
42 01 00 00 像素数据大小
20 2E 00 00 水平分辨率
20 2E 00 00 垂直分辨率
00 00 00 00 后两个双字用在索引图
00 00 00 00
位图信息头,共40个字节
DWORD biSize(第14、15、16、17字节)
28 00 00 00 即0x28(十进制40),位图信息头占40字节
LONG biWidth(第18、19、20、21字节)
0a 00 00 00 即0x0a(十进制10),位图的宽度是10像素
LONG biHeight(第22、23、24、25字节)
0a 00 00 00 即0x0a(十进制10),位图的高度是10像素
WORD biPlanes(第26、27字节)
01 00 即0x01(十进制1),目标设备级别,为1
WORD biBitCount(第28、29字节)
18 00 即0x18(十进制24) 图标是24位图
DWORD biCompression(第30,31,32,33字节)
00 00 00 00 即十进制0 ,表示图片未压缩
DWORD biSizeImage(第34、35、36、37字节)
42 01 00 00 即0x00000142(十进制322) 图片中像素数据的大小(整个图片的大小减去位图
文件头和位图信息头的大小,376-14-40=322)
LONG biXPelsPerMeter(第38、39、40、41字节)
20 2E 00 00 即0x00002E20(十进制11808) 位图水平分辨率,每米11808像素
LONG biYPelsPerMeter(第42、43、44、45字节)
20 2E 00 00 即0x00002E20(十进制11808) 位图垂直分辨率,每米11808像素
DWORD biClrUsed(第46、47、48、49字节)
00 00 00 00 即0,位图使用颜色表中的颜色数是0,
DWORD biClrImportant(第50、51、52、53字节)
00 00 00 00 即 0 位图显示过程中重要的颜色数是0
-----------------------------------------------------------------------------------------------------补一个16位10*10的bmp文件头、信息头
----------------------------------以下文件头
42 4D
00 01 00 00
00 00
00 00
36 00 00 00
位图文件头 共14个字节(从0计数)
WORD bfType(第0、1字节):
42 4d代表BM(42-B,4d-M)
存储顺序是424d,存储的是低字节在前,高字节在后,所以程序中判断是否为BM需要反着写
if(header.bfType == 0x4d42) {}
DWORD bfSize(第2、3、4、5字节):
00 01 00 00 即0x100(十进制256)字节,右键属性中显示的整个图片文件的大小
WORD bfReserved1(第6、7字节):
00 00 保留字节 为0
WORD bfReserved2(第8、9字节):
00 00 保留字节 为0
DWORD bfOffBits(第10、11、12、13字节):
36 00 00 00 即0x36(十进制54),位图数据的起始位置是第54字节
(16位图,文件信息头(14字节)和位图信息头(40字节)之后就是位图数据,没有调色板)
-----------------------------------------------------------以下信息头
28 00 00 00
0A 00 00 00
0A 00 00 00
01 00
10 00
00 00 00 00
CA 00 00 00
20 2E 00 00
20 2E 00 00
00 00 00 00
00 00 00 00
位图信息头,共40个字节
DWORD biSize(第14、15、16、17字节)
28 00 00 00 即0x28(十进制40),位图信息头占40字节
LONG biWidth(第18、19、20、21字节)
0A 00 00 00 即0x0a(十进制10),位图的宽度是10像素
LONG biHeight(第22、23、24、25字节)
0A 00 00 00 即0x0a(十进制10),位图的高度是10像素
WORD biPlanes(第26、27字节)
01 00 即0x01(十进制1),目标设备级别,为1
WORD biBitCount(第28、29字节)
10 00 即0x0010(十进制16) 图标是16位图
DWORD biCompression(第30,31,32,33字节)
00 00 00 00 即十进制0 ,表示图片未压缩
DWORD biSizeImage(第34、35、36、37字节)
CA 00 00 00 即0x000000CA(十进制202) 图片中像素数据的大小(整个图片的大小减去位图
文件头和位图信息头的大小,256-14-40=202)
LONG biXPelsPerMeter(第38、39、40、41字节)
20 2E 00 00 即0x00002E20(十进制11808) 位图水平分辨率,每米11808像素
LONG biYPelsPerMeter(第42、43、44、45字节)
20 2E 00 00 即0x00002E20(十进制11808) 位图垂直分辨率,每米11808像素
DWORD biClrUsed(第46、47、48、49字节)
00 00 00 00 即0,位图使用颜色表中的颜色数是0,
DWORD biClrImportant(第50、51、52、53字节)
00 00 00 00 即 0 位图显示过程中重要的颜色数是0
------------------------------------------------------------------------------------------------再补一个8位的10*10像素的bmp图文件头、信息头二进制
-------------------------------------文件头
42 4D
D8 00 00 00
00 00
00 00
5E 00 00 00
位图文件头 共14个字节(从0计数)
WORD bfType(第0、1字节):
42 4d代表BM(42-B,4d-M)
存储顺序是424d,存储的是低字节在前,高字节在后,所以程序中判断是否为BM需要反着写
if(header.bfType == 0x4d42) {}
DWORD bfSize(第2、3、4、5字节):
D8 00 00 00 即0xD8(十进制216)字节,右键属性中显示的整个图片文件的大小
WORD bfReserved1(第6、7字节):
00 00 保留字节 为0
WORD bfReserved2(第8、9字节):
00 00 保留字节 为0
DWORD bfOffBits(第10、11、12、13字节):
5E 00 00 00 即0x5E(十进制94),位图数据的起始位置是第94字节
(8位图,文件信息头(14字节)和位图信息头(40字节)之后就是调色板(40字节))
(后面知道使用颜色表的颜色数是10,每个4字节,10*4=40=调色板大小)
----------------------------------------------------------- 以下信息头
28 00 00 00
0A 00 00 00
0A 00 00 00
01 00
08 00
00 00 00 00
7A 00 00 00
20 2E 00 00
20 2E 00 00
0A 00 00 00
0A 00 00 00
位图信息头,共40个字节
DWORD biSize(第14、15、16、17字节)
28 00 00 00 即0x28(十进制40),位图信息头占40字节
LONG biWidth(第18、19、20、21字节)
0A 00 00 00 即0x0a(十进制10),位图的宽度是10像素
LONG biHeight(第22、23、24、25字节)
0A 00 00 00 即0x0a(十进制10),位图的高度是10像素
WORD biPlanes(第26、27字节)
01 00 即0x01(十进制1),目标设备级别,为1
WORD biBitCount(第28、29字节)
08 00 即0x0008(十进制8) 图标是8位图
DWORD biCompression(第30,31,32,33字节)
00 00 00 00 即十进制0 ,表示图片未压缩
DWORD biSizeImage(第34、35、36、37字节)
7A 00 00 00 即0x0000007A(十进制122) 图片中像素数据的大小(整个图片的大小减去位图
文件头和位图信息头和调色板(10*4)的大小,216-14-40-40=122)
LONG biXPelsPerMeter(第38、39、40、41字节)
20 2E 00 00 即0x00002E20(十进制11808) 位图水平分辨率,每米11808像素
LONG biYPelsPerMeter(第42、43、44、45字节)
20 2E 00 00 即0x00002E20(十进制11808) 位图垂直分辨率,每米11808像素
DWORD biClrUsed(第46、47、48、49字节)
0A 00 00 00 即0x0A(十进制10),位图使用颜色表中的颜色数是10,
DWORD biClrImportant(第50、51、52、53字节)
0A 00 00 00 即0x0A(十进制10), 位图显示过程中重要的颜色数是10
---------------------------------------之后是40字节调色板
- 24位bmp图片文件头、信息头的二进制数据
- 24/16/8位bmp图片文件头、信息头的二进制数据
- 24/16/8位bmp图片文件头、信息头的二进制数据
- 24/16/8位bmp图片文件头、信息头的二进制数据
- 读取bmp图片的文件头,与位图信息头
- bmp图片的头相关信息
- BMP文件头格式 bmp文件二进制解析
- 遍历文件目录及bmp位图信息头的读取
- BMP文件头格式 bmp文件二进制解析,bmp文件解析,bmp存储格式
- linux下读取bmp图片文件头
- VC根据位图的宽、高、位数来建立BMP文件头和信息头
- 为拍摄的RGB数据加上BMP文件头
- 读取 bmp 文件头信息, read bmp infomation
- 图片头文件信息解析
- 给图像数据加上BMP文件头
- 256色的BMP文件分为 BMP文件头,BMP信息头,彩色表和位图信息矩阵4部分。【个人收藏】
- ASP adodb.stream 取 Win32 .bmp 图片完整文件头信息 By shawl.qiu
- BMP文件头
- 停止编程
- java中循环HashMap的两种方法
- header中的Cache-control参数说明
- C#实例详细解析URL含义
- oracle_SQL中ROWID与ROWNUM的使用
- 24位bmp图片文件头、信息头的二进制数据
- qt 去掉标题栏 保留系统菜单
- 静态连接3-file_a.o
- Myeclipse配置SVN插件操作步骤
- dojo 常用方法
- ajax方式提交带文件上传的表单
- DropDownList设置选定项
- ORACLE数据库表和数据分开导出导入的方法
- Android 挂断电话流程