神秘的两个字节!

nickHu 2002-12-14 01:57:11
书上说256色bmp文件的头1078字节是文件信息,那么再加上640*480=307200,一共应该是308278字节呀,为什么我看到的都是308280字节?(在画图中看属性得到)
那两个字节哪里来的?
谢谢,急!
...全文
46 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
caitou123 2002-12-19
  • 打赏
  • 举报
回复
zzwu(未名):
多谢指点
zzwu 2002-12-19
  • 打赏
  • 举报
回复
caitou123(自向红尘取烦恼) :

1. 为什么bmp文件的头是1078字节?
bmp文件的头由2部分组成,一部分是用来描述图像的长,宽,色彩位数,是否压缩,等等图像属性的信息,共用了54个字节;另外的1024(=256*4)个字节用来存放CLUT(色彩查找表,即调色板)的信息,所以总共是1078字节.
这是指256色bmp图像文件的文件头的组成情况,其他颜色数的图像文件不是这样.

2. "1078字节输出是14"?
你理解错了,1078是图像数据在bmp图像文件中的起始位置(所谓偏移,offset),这个offset值存放在bmp文件的11-14四个字节处. 而不是1078字节的输出是14。
chenm001 2002-12-18
  • 打赏
  • 举报
回复
BMP的图象数据必须是按4字节对齐的,所以会多出2字节(不对齐时你可以试一下,就会发现:有兼容性的问题!)
caitou123 2002-12-18
  • 打赏
  • 举报
回复
HANDLE handle = CreateFile("d:\\wode.bmp,GENERIC_READ, FILE_SHARE_READ,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

if ( handle == INVALID_HANDLE_VALUE )
AfxMessageBox("handle false");

BITMAPFILEHEADER bmFH;

DWORD dwRead = 0;
ReadFile(handle, & bmFH, sizeof(bmFH), & dwRead, NULL);
TRACE("======%d======%d=====",dwRead,bmFH.bfSize);

---------------------------------------------------------
输出:14======308278======
为什么bmp文件的头是1078字节?输出是14啊。
zzwu 2002-12-18
  • 打赏
  • 举报
回复
BldStu(lyd),chenm001(CM):
假如8位的bmp图像大小为0*0,问文件的大小是1078,还是1080?
duwenyong 2002-12-17
  • 打赏
  • 举报
回复
我试了好几个怎么都是308278呀?你发一个给我看看,swenyong@etang.com
zzwu 2002-12-16
  • 打赏
  • 举报
回复
字节数取4的整数倍是对的,但通常是说扫描线的长度是4的整数倍.而不是文件长为4的整数倍.
我看到的是,在1078个字节后,紧根的就是图像数据了.因1078非4的整数倍,所以,1078+4n也不需要是4的整数倍.
zzwu 2002-12-16
  • 打赏
  • 举报
回复
问题问的好!
zzwu 2002-12-16
  • 打赏
  • 举报
回复
BldStu(lyd) :
为什么308280=int((308278+3)/4)中要加一个 3 ?

我原来猜想是文件结尾标志26(ctrl-z),但用debug看了一下,结尾不是26,而是00 00.



xiepengtao 2002-12-15
  • 打赏
  • 举报
回复
BldStu(lyd) ,是否是想当然。。
随便一个文件,一个字节,两个字节,都可以准确识别,不会取4的倍数。
具体的图象文件中,很多都是最后单字节的。。
BldStu 2002-12-15
  • 打赏
  • 举报
回复
308280=int((308278+3)/4)
因为32位带宽,所以字节数取4的整数倍
otuotu 2002-12-15
  • 打赏
  • 举报
回复
恩就是这样地,看看sizeof(BITMAOINFOHEADER)是多少吧,好像我用纯C++写的就会比实际应该的大2字节,数据结构定义是一样的。

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧