MFC图像显示

COLORREF *m_Data;
   CBitmap bm;
   CDC *MemDc = new CDC;
   int m_iWidth = pDoc->m_iWidth, m_iHeight = pDoc->m_iHeight;
   pDC->SetBkMode(TRANSPARENT);//设置背景颜色为透明
   m_Data = new COLORREF[m_iHeight * m_iWidth];//为颜色数据分配空间
   //颜色空间赋值
   for (int i = 0;i < m_iHeight;i++)
   {
    for (int j = 0;j < m_iWidth;j++)
    {
     m_Data[i * m_iWidth + j] = RGB((pDoc->TheImage8U->imageData[i * m_iStep + j]),(pDoc->TheImage8U->imageData[i * m_iStep + j]),(pDoc->TheImage8U->imageData[i * m_iStep + j]));
    }
   }
   //创建bitmap
   bm.CreateBitmap(m_iWidth,m_iHeight,1,32,m_Data);
   //实现双缓冲,避免闪烁
   MemDc->CreateCompatibleDC(pDC);
   MemDc->SelectObject(&bm);
   pDC->SetStretchBltMode(COLORONCOLOR);
   pDC->StretchBlt(0,0,m_iWidth,m_iHeight,MemDc,0,0,m_iWidth,m_iHeight,SRCCOPY);
   //删除已经分配的内存空间
   ReleaseDC(MemDc);
   delete MemDc;
   bm.DeleteObject();
   delete[] m_Data;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值