BMP图像格式的补充-扫描行

BMP格式还有个非常重要的规定:要求每一扫描行的字节数据必须能被4整除,也就是Dword对齐(Dword是一种数据类型,长度为4个字节)。如果图像的一行字节数不能被4整除,就需要在每行的未尾补齐0以达到规定。

  设图像位数为N,图像宽为W(以像素数表示),高为H(以像素数表示),扫描行字节数为L,现在我们来看一下图像的一些情况。
  1、图像的颜色数=2的N次方。图像位数指像素用二进制数表示时的位数。16位图像的颜色数为2的16次方=65536,这就是我们常说的6万色了。
  2、一个字节是8位,这样每个像素所需字节数=N/8。
  3、图像每行的字节数=W*N/8
  4、图像每一扫描行的字节数L要求必须能被4整除。
  当W*N/8能被4整除时,L=W*N/8;
  当W*N/8不能被4整除时,需要在每行数据补零字节数为4-(W*N/8) Mod 4(Mod是求余运算,X mod Y指X除以Y的余数),这样L=W*N/8+4-(W*N/8) Mod 4。即为
(biWidth* biBitCount+31)/8
  5、图像数据阵列的字节大小=L*H
  6、图像文件的大小,如果是用Photoshop保存的图像,除了文件头及数据阵列之外,还要加上未尾两个字节的0。文件头的大小,24位图为36h=54,16位r5g6b5图为46h=70,8位为436h=1078。

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

做牛作码

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值