wshini7316 发表于 2012-5-25 18:05:16

bmp文件中宽高有什么限制吗?为什么我做成170*75的bmp图显.....

问题如题。我现在想生存一副170*75的bmp图,查看头文件正确,没有问题,但是就是不能显示,数据长度也没有问题,但是我将170*75改为172*75就可以正常显示图像。是什么问题?

wshini7316 发表于 2012-5-25 18:08:34

对了我用的8位灰度图显示的。

first_blood 发表于 2012-5-25 18:29:18

172/4=43 每行要四字节对齐,多出的不显示但得填0补全

yanglong5918 发表于 2012-5-25 18:43:52

LS正解!

Name_006 发表于 2012-5-25 19:15:49

3L 说的对 如果你没有补齐每行错几个字节   图像就扭曲了    ~~~~~~~~~~~

wshini7316 发表于 2012-5-25 22:26:52

为什么要用4字节对齐啊?   

wshini7316 发表于 2012-5-28 09:36:05

找到有关的解释了如下:
像素的数据量并不一定完全等于图象的高度乘以宽度乘以每一像素的字节数,而是可能略大于这个值。原因是BMP文件采用了一种“对齐”的机制,每一行像素数据的长度若不是4的倍数,则填充一些数据使它是4的倍数。这样一来,一个17*15的24位BMP大小就应该是834字节(每行17个像素,有51字节,补充为52字节,乘以15得到像素数据总长度780,再加上文件开始的54字节,得到834字节)。分配内存时,一定要小心,不能直接使用“图象的高度乘以宽度乘以每一像素的字节数”来计算分配空间的长度,否则有可能导致分配的内存空间长度不足,造成越界访问,带来各种严重后果。

xuchess 发表于 2012-6-12 09:23:50

bmp文档规定每行按4字节对齐,不足补齐的,不要自以为是写数据。
页: [1]
查看完整版本: bmp文件中宽高有什么限制吗?为什么我做成170*75的bmp图显.....