日志档案

发表于 2007-10-15 21:02:28

1

标签: BMP  位图  格式  4的倍数  

关于位图格式的理解

研究了下位图的格式,下面是从网上找到的一个说明文档(中文的,真好~~):

pdf

自己编了个生成位图文件的程序,只看这个文档还不能完全搞透位图,编程中就遇到了一些问题,现在总结一下,希望对大家有用:


1、位图中头的信息是按小字节序存储的,注意编译器如果是大字节序的需要字节顺序调整才可以。

2、位图中图象信息的第一个像素在图象中是左下角的像素,先最下一行从左往右,然后上面一行。

3、文档中有这样的说法:像素数据的长度(按字节计)要是4的倍数,这个4的倍数是怎么体现的呢?
    首先,这个规定并不是可遵守不可遵守的,一旦不遵守,图象水平方向上像素数是4的倍数还好,不然肯定会出错。
    这个4的倍数该怎么理解呢?我的像素怎么排?是不是每个像素占4个字节?
    经过实际用画图板制作各种尺寸的图象得到下面的结论:
    每个像素只占3个字节,水平方向上所有像素连续排列,
统计水平方向像素所占的字节数(像素数*3),如果得到的结果是4的倍数,就继续下一行数据,
    如果不是4的倍数,在最后一个像素数据后面补0,使这一行的总字节数等于4的倍数,然后开始下一行数据

    如:
    3*5的图象:
    水平方向有3个像素,像素占的字节数为9,不是4的倍数,在第三个像素数据后面补3个0,使这一行的总字节数为12,补完0,开始下一行数据。
    5*3的图象:
    水平方向有5个像素,像素占的字节数为15,不是4的倍数,在第五个像素后面补1个0,使此行的总字节数为16,继续下一行数据。

 

 

以下是写的程序(winTC编译)

rar

系统分类: 显示光电   |   用户分类: 图象   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(793)    回复(1)  

投一票您将和博主都有获奖机会!

最新评论

  • 唐小鸭

    2008-4-5 15:54:15

    谢谢!受益匪浅。。