Chinaunix首页 | 论坛 | 博客
  • 博客访问: 274299
  • 博文数量: 47
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 648
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-01 17:20
文章存档

2011年(1)

2009年(46)

我的朋友

分类:

2009-04-11 10:39:06

一直对bmp图片的格式不清楚,看了这篇文章总算明白了。

http://www.vckbase.com/document/viewdoc/?id=1786

补充:

 关于bmp的信息头结构中成员变量biHeight有两种取值:
正值:位图是一个自下而上的DIB,它的起点在左下角。
负值:位图是一个自顶向下的DIB,它的起点在左上角。
 
所以有以下代码:
 
if(height>0)
{
   //height>0 表示图片颠倒
   for(int i=0;i   {
    int realPitch=i*pitch;
    for(int j=0;j    {
     UCHAR b=buffer[(i*width+j)*3+realPitch];
     UCHAR g=buffer[(i*width+j)*3+1+realPitch];
     UCHAR r=buffer[(i*width+j)*3+2+realPitch];
     pDC->SetPixel(j,height-i,RGB(r,g,b));
    }
   }
  }
  else
  {
   for(int i=0;i<0-height;i++)
   {
    int realPitch=i*pitch;
    for(int j=0;j    {
     UCHAR b=buffer[(i*width+j)*3+realPitch];
     UCHAR g=buffer[(i*width+j)*3+1+realPitch];
     UCHAR r=buffer[(i*width+j)*3+2+realPitch];
     pDC->SetPixel(j,i,RGB(r,g,b));
    }
   }
  }
 
 
阅读(2211) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~