CPaintDC dc(this);
Graphics graphics(dc.m_hDC);
不知道为什么,在DrawImage的时候,第一个参数如果为Bitmap的指针,就画不出任何东西,要是Image的指针就能够画出来了。我测试过我画的时候Bitmap指针指向的对象是有东西的,我保存成文件出来是很完整的。
因此希望能有一个办法直接把Bitmap对象转为Image
Graphics graphics(dc.m_hDC);
不知道为什么,在DrawImage的时候,第一个参数如果为Bitmap的指针,就画不出任何东西,要是Image的指针就能够画出来了。我测试过我画的时候Bitmap指针指向的对象是有东西的,我保存成文件出来是很完整的。
因此希望能有一个办法直接把Bitmap对象转为Image
{
public:
friend class Image;
friend class CachedBitmap; Bitmap(
IN const WCHAR *filename,
IN BOOL useEmbeddedColorManagement = FALSE
);从源代码上可知 Bitmap 本来就是 Image仔细查查程序吧
Graphics graphics(dc.m_hDC);
graphics.DrawImage(m_pActBmp,0,0);
但是我这样什么都画不出来啊CLSID pngClsid;
GetEncoderClsid(L"image/png",&pngClsid);
m_pActBmp->Save(L"tmp.png",&pngClsid);
我这样保存成文件看完全正常啊
而且保存成文件后再读成Image类型的再画就也正常了!
直接这样画的啊,什么都没画出来
如果我用下面这样的话
Image *pImage = (Image *)m_pActbmp;
graphics.DrawImage(pImage,0,0);
仍然画不出来
再换下面这种
Image *pImage = ((Image *)m_pActBmp)->Clone();
graphics.DrawImage(pImage,0,0);
于是成功画出来了。。
但是Clone实在太耗资源了,我需要大量的绘制操作,这样CPU完全卡掉了