设为首页 加入收藏

TOP

24位位图格式解析
2014-10-28 13:30:09 来源: 作者: 【 】 浏览:92
Tags:24位 位图 格式 解析

  每一行的图素数等于该结构的bcWidth字段。每一行从最左边的图素开始,直到图像的右边。分别对应的B,G,R像素。每个像素占8位, 每列的宽度为bcWidth,必须为4的倍数,不足的用零填充。


  下面是读取二十四位位图的关键代码:


  代码


  1 BITMAPFILEHEADER * pbmfh ;


  2 BITMAPINFO * pbmi ;


  3 BYTE * pBits ;


  4 pbmfh = DibLoadImage (szFileName) ;


  5 pbmi = (BITMAPINFO *) (pbmfh + 1) ;


  6 pBits = (BYTE *) pbmfh + pbmfh->bfOffBits ;


  7 for( i=0; i < 1024; i++)


  8 {


  9 pPrintBlock[i] = (char*)malloc(216);


  10 memset(pPrintBlock[i], 0, 216);


  11 }


  12


  13 for(h = 0; h < pbmi->bmiHeader.biHeight; h++)


  14 {


  15 for(w = 0; w < pbmi->bmiHeader.biWidth; w++)


  16 {


  17 b1 = *pBits; //B


  18 b2 = *(pBits+1); //G


  19 b3 = *(pBits+2); //R


  20 if( (int)b1 != 255 && (int)b2 != 255 && (int)b3 != 255)


  21 {


  22 index = w / 8;


  23 index = 1 << (w%8);


  24 index = pPrintBlock[h][w / 8] | ( 1 << (w%8) );


  25 pPrintBlock[h][w / 8] = pPrintBlock[h][w / 8] | ( 1 << (w%8) );


  26 }


  27 pBits += 3;


  28


  29 }


  30 if(pbmi->bmiHeader.biWidth *3 % 4 != 0)


  31 {


  32 pBits += ( 4 - pbmi->bmiHeader.biWidth*3 % 4);


  33 }


  34 }


  编辑特别推荐:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇指针运算终于明白了 下一篇考试大网校2010年全国计算机二级C..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: