毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

24位位图的显示出来的位图是黑白色

更新时间:2012-10-2:  来源:毕业论文

[code=C/C++][/code]
 HDC dc=::GetDC(NULL); //屏幕DC
 int height,wide,size;
  height=dib.GetHeight(); //24位位图高度(像素)
  wide=dib.GetWidth(); //长度
 
  BYTE *pData,*pData2;
  pData=dib.GetData(); //获得24位图的像素数据域

 BYTE b,g,r;
  int lwide=(wide*24+31)/32*4; //每行为4字节的倍数
  for(int i=0;i<wide;i++) //获取像素值
for(int j=0;j<height;j++)
  {
  pData2=pData+3*i+lwide*j;
  b=*pData2;
  g=*pData2+1;
  r=*pData2+2;
  ::SetPixel(dc,100+j,100+i,RGB(r,g,b)); 逐点显示
  }

以上是未压缩的24位位图的显示,但为什么这样显示出来的位图是黑白色?

=*pData2;
 g=*pData2+1;
 r=*pData2+2;
这个不对吧~每一点的值加1加2,所以出来黑白色(应该是偏向灰色的吧)
应该这么写吧~
 b=*pData2;
 g=*(pData2+1);
 r=*(pData2+2);

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。