24/16/8位bmp图片文件头、信息头的二进制数据
来源:互联网 发布:.ren域名收录好吗 编辑:程序博客网 时间:2024/05/01 10:18
转自:http://www.cnblogs.com/ezhong/archive/2011/08/04/2171455.html
不知道第几次看这个了,今天再次看的时候 发现又回到了晕晕乎乎的感觉
用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,存储的是低字节在前,高字节在后,所以程序中判断是否为BM需要反着写
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位图,文件信息头(14字节)和位图信息头(40字节)之后就是位图数据,没有调色板)
-----------------------------------------------------------以下信息头
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/16/8位bmp图片文件头、信息头的二进制数据
- 24/16/8位bmp图片文件头、信息头的二进制数据
- 24/16/8位bmp图片文件头、信息头的二进制数据
- 24位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文件头
- 【总结备用】 Android中通过GPS或NetWork获取当前位置的经纬度
- 什么时候使用jquery框架?
- 福昕pdf套件注册码激活
- orcale数据库资料收集
- 域安全策略和域控制器安全策略的区别
- 24/16/8位bmp图片文件头、信息头的二进制数据
- qtopia-2.2.0问题
- mysql error 1030
- #define、const和enum
- 基于S3C2440的嵌入式Linux驱动——SPI子系统解读(三)
- linux spi驱动分析整理
- ArcGIS Viewer for Flex(主要配置文件) .(转帖)
- 三星、华为、盛大、小米……
- Reporting Services 在WIN7和2008下出现“授予的权限不足,无法执行此操作。 (rsAccessDenied)”的解决