关于IImage.Draw的速度

xyuanzhi 2007-01-11 12:20:28
在PPC2005上调用Imaging API
IImagingFactory *fac = .........(创建com)
IImage *image;
fac.CreateImageFromFile ("filename", &image)
image->Draw (hdc, &dstRect, NULL);
结果一张480*160的png图片居然用了140多tickcount来draw.
(同时调用多次draw,每次都要100毫秒)

有什么好的解决方法阿
...全文
230 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qwqwqw408 2009-09-22
  • 打赏
  • 举报
回复
分要给我喔
qwqwqw408 2009-09-22
  • 打赏
  • 举报
回复
现在内存中创建DC,draw到内存DC,然后bitblt到目标DC,不仅速度快,还可以实现很多效果。我的数码相框就是这样做的
HDC m_hdc = GetDc(NULL);
HDC hMenDc = CreateCompatibleDC(NULL);
HBITMAP hBmp = CreateCompatibleBitmap(hMenDc,800,600);
HGDIOBJ hOldBmp = SelectObject(hMenDc,hbmp);
RECT rc;
rc.left = 0;
rc.top = 0;
rc.bottom = 800;
rc.right = 600;
pImage->Draw(m_hdc,&rc,NULL);
BitBlt(m_hdc,rc.left,rc.top,800,600,hMenDc,0,0,SRCCOPY);
SAFERELEASE(pImage)
SelectObject(hMenDc,hOldBmp );
DeleteObject(hBmp );
DeleteDC(hMenDc);

以上是代码,至于效果,就不发了

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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