已有像素点矩阵在内存中,CDC如何得到

dzgcxy 2012-08-06 02:19:40
rt,CDC如何能得到并处理内存中已存在的像素点矩阵
...全文
142 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ndy_w 2012-08-07
  • 打赏
  • 举报
回复
SetDIBitsToDevice
dzgcxy 2012-08-07
  • 打赏
  • 举报
回复
怎么bitblt到memdc啊,能说的详细点吗
schlafenhamster 2012-08-06
  • 打赏
  • 举报
回复
// get mem
unsigned fsize;
fsize =if_hnd.GetLength();//
BYTE *ScreenPtr1=0;
ScreenPtr1=(BYTE *)new char[fsize]; //
// read all in
if_hnd.Read(ScreenPtr1,fsize);// 数据在这里
// image data are in buffer
if(if_hnd) if_hnd.Close();
// make bitmap info
LPBITMAPINFO pBMPinfo;
pBMPinfo=(LPBITMAPINFO)new BYTE[sizeof(BITMAPINFOHEADER)+16*sizeof(RGBQUAD)];
ZeroMemory(&pBMPinfo->bmiHeader,sizeof(BITMAPINFOHEADER));
pBMPinfo->bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
pBMPinfo->bmiHeader.biBitCount=4;
pBMPinfo->bmiHeader.biWidth=648;
pBMPinfo->bmiHeader.biHeight=508;
pBMPinfo->bmiHeader.biPlanes=1;
pBMPinfo->bmiHeader.biSizeImage=648*508/2;
// copy colors
for(int jj=0; jj<16; jj++)
{// reversed !
pBMPinfo->bmiColors[jj].rgbReserved=0;
pBMPinfo->bmiColors[jj].rgbRed=(BYTE)(color_table[jj] & 0x0000FF);
pBMPinfo->bmiColors[jj].rgbGreen=(BYTE)((color_table[jj] & 0x00FF00) >> 8);
pBMPinfo->bmiColors[jj].rgbBlue=(BYTE)((color_table[jj] & 0xFF0000) >> 16);
}
// draw bmp
pDC->SetStretchBltMode(COLORONCOLOR);
StretchDIBits(pDC->GetSafeHdc(),0,0,wid,hei,0,0,wid,hei,
ScreenPtr1,
pBMPinfo,
DIB_RGB_COLORS,SRCCOPY);
// free
delete pBMPinfo;
delete [] ScreenPtr1;
return;
Lactoferrin 2012-08-06
  • 打赏
  • 举报
回复
BitBlt到memdc
dzgcxy 2012-08-06
  • 打赏
  • 举报
回复
我需要用CDC得到像素矩阵,然后再用StretchBlt画图
罗平 2012-08-06
  • 打赏
  • 举报
回复
循环画上去吧
pDC->SetPixel(point.x,point.y,RGB(0,0,0));

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧