搜索
bottom↓
回复: 5

分析一张BMP图片数据格式遇到一点问题

[复制链接]

出0入0汤圆

发表于 2016-5-16 17:15:21 | 显示全部楼层 |阅读模式

第一块是bmp的文件头用于描述整个bmp文件的情况
typedef struct tagBITMAPFILEHEADER {
  WORD    bfType;   
  DWORD   bfSize;
  WORD    bfReserved1;
  WORD    bfReserved2;
  DWORD   bfOffBits;
} BITMAPFILEHEADER, *PBITMAPFILEHEADER;

第二块是位图信息头,即BITMAPINFOHEADER,用于描述整个位图文件的情况

typedef struct tagBITMAPINFOHEADER{
DWORD biSize; //表示本结构的大小
LONG biWidth; //位图的宽度
LONG biHeight; //位图的高度
WORD biPlanes; //Specifies the number of planes for the target device. This value must be set to 1.
WORD biBitCount;//位图的位数 分为1 4 8 16 24 32
DWORD biCompression; //本以为压缩类型,但是却另外有作用,稍候解释
DWORD biSizeImage; //表示位图数据区域的大小以字节为单位
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER, *PBITMAPINFOHEADER;


但是当我分析到
biWidth位图的宽度
biHeight 位图的高度
的时候,就出现问题了。
大部分图片都是占4个字节,而我的这张图片却只有两个字节。该怎样去区分呢?
通过hex查看分析得到第二块信息应该是这样

DWORD biSize; //表示本结构的大小
WORDbiWidth; //位图的宽度------------------只有2字节
WORDbiHeight; //位图的高度-----------------只有2字节
WORD biPlanes; //Specifies the number of planes for the target device. This value must be set to 1.
WORD biBitCount;//位图的位数 分为1 4 8 16 24 32
-----------------后面的信息都没了

图片大小是640*640的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出0入0汤圆

发表于 2016-5-16 18:40:26 | 显示全部楼层
28h - Windows 3.1x, 95, NT, …
0Ch - OS/2 1.x
F0h - OS/2 2.x

这里是0C, 一般windows下的都是28h,看看这里会不会在标准里面定义;

出0入0汤圆

发表于 2016-5-16 19:10:38 | 显示全部楼层
特殊格式,
不是常规的 28H windows bmp 格式

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-5-16 19:28:31 | 显示全部楼层
好复杂啊

出0入0汤圆

发表于 2016-5-16 19:36:24 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2016-5-17 09:03:56 | 显示全部楼层
本帖最后由 miaoguoqiang 于 2016-5-17 09:10 编辑
jm2011 发表于 2016-5-16 18:40
28h - Windows 3.1x, 95, NT, …
0Ch - OS/2 1.x
F0h - OS/2 2.x


3Q,  这样就好区分了。
对特定的格式分类解析。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-16 10:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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