GDI创建BMP图

  BITMAPINFO m_bmphdr={0}; 
  DWORD dwBmpHdr = sizeof(BITMAPINFO); 
  m_bmphdr.bmiHeader.biBitCount = 24; 
  m_bmphdr.bmiHeader.biClrImportant = 0; 
  m_bmphdr.bmiHeader.biSize = dwBmpHdr; 
  m_bmphdr.bmiHeader.biSizeImage = 0; 
  m_bmphdr.bmiHeader.biWidth = nWidth; 
  
  m_bmphdr.bmiHeader.biHeight = nHeight; 
  m_bmphdr.bmiHeader.biXPelsPerMeter = 0; 
  m_bmphdr.bmiHeader.biYPelsPerMeter = 0; 
  m_bmphdr.bmiHeader.biClrUsed = 0; 
  m_bmphdr.bmiHeader.biPlanes = 1; 
  m_bmphdr.bmiHeader.biCompression = BI_RGB; 

  HDC hdc=GetDC(cdlg->m_hWnd); 
  CRect rect;
  cdlg->GetClientRect(&rect); 

  //CHANGE_ENDIAN_PIC(g_pchRgbBuf,nWidth, nHeight, 24);

  /*DrawDibDraw(mDrawDib,hdc,0,
   0,
   rect.Width(),
   rect.Height(),
   &m_bmphdr.bmiHeader, g_pchRgbBuf,0,0,nWidth,nHeight,0);*/

  SetStretchBltMode(hdc, HALFTONE);

  int nResult = StretchDIBits(hdc, 
   0,0, 
   rect.Width(),rect.Height(), 
   0, 0, 
   nWidth, nHeight, 
   g_pchRgbBuf, 
   &m_bmphdr, 
   DIB_RGB_COLORS, 
   SRCCOPY); 

  /*int nResult = SetDIBitsToDevice(hdc, 
   0,0, 
   rect.Width(),rect.Height(), 
   0, 0, 
   nWidth, nHeight, 
   g_pchRgbBuf, 
   &m_bmphdr, 
   DIB_RGB_COLORS 
   );  */
  ReleaseDC(cdlg->m_hWnd,hdc);

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/du_bingbing/article/details/49949983
个人分类: VC++
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

GDI创建BMP图

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭