读bmp 图片时,为什么每一行最后几位数据不对,请高手看一下:
      我只要求每个像素的b 值,在读数据时,每一行的最后几位数据()不对,百思不得其解?请高手,帮一下: 
     所有程序都在:
     [email protected]
        用户名: publishemail  密码: 123456
     收件箱中的 图片程序
      谢谢

解决方案 »

  1.   

    bmp位图数据是4字节对齐的。
    如果每行3个点,实际上占用了4个。
    试试看。
      

  2.   

    图象的每一扫描行由表示图象象素的连续的字节组成,每一行的字节数取决于图象的颜色数目和用象素表示的图象宽度。扫描行是由底向上存储的,这就是说,阵列中的第一个字节表示位图左下角的象素,而最后一个字节表示位图右上角的象素。(只针对与倒向DIB,如果是正向DIB,则扫描行是由顶向下存储的),倒向DIB的原点在图像的左下角,而正向DIB的原点在图像的左上角。同时,每一扫描行的字节数必需是4的整倍数,也就是DWORD对齐的。如果你想确保图像的扫描行DWORD对齐,可使用下面的代码:(((width*biBitCount)+31)>>5)<<2