!!如何将DC中的内容与CImage合并,存入Jpeg文件。
我根据MSDN中实例已经可以打开mpeg\bmp,显示在视图,并可另存为一个文件。但我在视图中使用DC生成的图型、文字无法与打开的文件合成一张图。
请问如何将DC中的内容与CImage变量合并成一张图片?
是用微软的CImage类怎么做?
问题点数:100、回复次数:8Top
1 楼AntonlioX(做人要厚道)回复于 2005-08-03 18:03:32 得分 0
将所有要画的内容 都先画在兼容DC上Top
2 楼nannet(似的)回复于 2005-08-03 20:35:26 得分 0
兼容DC是什么?
能给个DC与CImage之间声名的例程吗?Top
3 楼nannet(似的)回复于 2005-08-04 09:27:50 得分 0
CImage image;
Image.Load( "test.gif" );
CBitmap* pBitmap = CBitmap::FromHandle( image.m_hBitmap );
网上找到的,但m_hBitap为私有变量,无法编译通过。Top
4 楼goodboyws(深夜不眠者(VCMVP))回复于 2005-08-04 09:35:36 得分 0
CBitmap* pBitmap = CBitmap::FromHandle((HBITMAP)m_hBitmap);
即可Top
5 楼goodboyws(深夜不眠者(VCMVP))回复于 2005-08-04 09:40:09 得分 0
你的意思是DC以CImage为背景么
用 GetCurrentObject(hdc, OBJ_BITMAP);
Top
6 楼nannet(似的)回复于 2005-08-04 10:52:34 得分 0
我是想将jpeg导入视图,再在上面画线、文本。再存将改过的存成jpeg。
现在用Cimage可以打开、显示、存储。但无法与DC画的东西合并存储。只能存图片。Top
7 楼goodboyws(深夜不眠者(VCMVP))回复于 2005-08-04 11:00:37 得分 100
画线、文本调用
GetCurrentObject(hdc, OBJ_BITMAP);
保存即可
HBITMAP hBmp = (HBITMAP)GetCurrentObject(hdc, OBJ_BITMAP);
CImage m_image;
m_image.Attach(hBitmap);
m_image.Save("a.jpg", ImageFormatJPEG);Top
8 楼nannet(似的)回复于 2005-08-04 12:02:23 得分 0
按照楼上兄所说,有一处不通过。应该还差一步了。
public:
CDC pDC2;
CImage m_image;
OnDraw(CDC* pDC){
..............
GetCurrentObject(pDC->m_hDC, OBJ_BITMAP);
pDC2=pDC;
}
save{
HBITMAP hBmp = (HBITMAP)GetCurrentObject(pDC2->m_hDC, OBJ_BITMAP);
m_Image.Attach(hBmp);//此处运行时不通过
HRESULT hResult =m_Image.Save("a.jpg", strFileName);
}
Top




