一幅是256色灰度图,一幅是256色彩色图,用StretchDIBits的方式叠加后,如何将叠加后的结果保存
char* path="D:\\新建文件夹\\5.bmp";//灰度图
CDib dib3;
dib3.Load(path);
CClientDC dc3(this);
dib3.SetPalette(&dc3);
dib3.Draw(&dc3); //读取伪彩色编码处理过的彩色图
char* path2="D:\\新建文件夹\\2.bmp";
CDib dib12;
dib12.Load(path2);
CClientDC dc12(this);
dib12.SetPalette(&dc12);
dib12.Draw(&dc12,0,0,-1,-1,SRCAND);//BOOL Draw( CDC *, int nX = 0, int nY = 0, int nWidth = -1, int nHeight = -1, int mode = SRCCOPY);
两幅图叠加后的结果在屏幕中显示,达到了预期效果,我想把结果保存在bmp中,但不知道该怎么实现。
char* path="D:\\新建文件夹\\5.bmp";//灰度图
CDib dib3;
dib3.Load(path);
CClientDC dc3(this);
dib3.SetPalette(&dc3);
dib3.Draw(&dc3); //读取伪彩色编码处理过的彩色图
char* path2="D:\\新建文件夹\\2.bmp";
CDib dib12;
dib12.Load(path2);
CClientDC dc12(this);
dib12.SetPalette(&dc12);
dib12.Draw(&dc12,0,0,-1,-1,SRCAND);//BOOL Draw( CDC *, int nX = 0, int nY = 0, int nWidth = -1, int nHeight = -1, int mode = SRCCOPY);
两幅图叠加后的结果在屏幕中显示,达到了预期效果,我想把结果保存在bmp中,但不知道该怎么实现。
CDC memDC;
memDC.CreateCompatibleDC(pDC) ;
CRect rt;
GetWindowRect(&rt);
CBitmap Bmp;
Bmp.CreateCompatibleBitmap(pDC,rt.Width(), rt.Height()) ;
CBitmap *pBmpPrev = (CBitmap*)memDC.SelectObject(&Bmp) ;
memDC.BitBlt(0, 0, rt.Width(), rt.Height(), pDC, 0, 0, SRCCOPY);
CImage image;
image.Attach((HBITMAP)Bmp.m_hObject);
image.Save(L"c:\\1.bmp");
类似参考
我用的是Vc6.0 其中CImage的头文件atlimage.h用不了,
我在同学VS2010试了下,没有得到结果,不知道为什么
可否详细一点
http://file.ddvip.com/2007_03/1174124530_ddvip_2476.rar