关闭

GDI创建BMP图

244人阅读 评论(0) 收藏 举报
分类:

  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);

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:81962次
    • 积分:1748
    • 等级:
    • 排名:千里之外
    • 原创:70篇
    • 转载:175篇
    • 译文:0篇
    • 评论:1条
    最新评论