Bitmap:bmWidthBytes

转载:https://blog.csdn.net/augusdi/article/details/6402377

typedef    struct    tagBITMAP    {     
           LONG    bmType;                //必需为0   
           LONG    bmWidth;              //位图的宽度(以像素为单位)   
           LONG    bmHeight;            //位图的高度(以像素为单位)   
           /*指定每条光栅所占字节数。此值必须取偶数,   
              因为图形设备接口(GDI)默认为一个位图的位值组成一个2字节的整数数组。*/   
           LONG    bmWidthBytes;     
           WORD    bmPlanes;            //    位图调色板颜色数   
           WORD    bmBitsPixel;      //    一个点在每个调色板上接近的颜色位数   
           LPVOID    bmBits;            //   指向存储像素阵列的数组   
   }    BITMAP;

bmWidthBytes:BitMap结构中的bmWidthBytes总算搞懂了,其实很简单:一行像素所占的字节数,一行像素的存储必须按word对齐,所以该值必须为2的倍数。所以计算方式中应体现出向字对齐来,即以16位为一划分。bmWidthBytes=((bitsPerLine+15)/16)*2,其中bitsPerLine=bmWidth*bmBitsPixel。一切搞定。

posted @ 2020-05-12 17:19  _KikyoBK  Views(273)  Comments(0Edit  收藏  举报