一直对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));
}
}
}
阅读(2219) | 评论(0) | 转发(0) |