社区导航

 

搜索
查看: 1702|回复: 2

关于IImage.Draw的速度

[复制链接]

103

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2007-1-11 12:20 | 显示全部楼层 |阅读模式
在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毫秒)

有什么好的解决方法阿

113

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-9-22 15:18 | 显示全部楼层
   现在内存中创建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);

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

回复

使用道具 举报

99

TA的帖子

0

TA的资源

禁止访问

发表于 2009-9-22 15:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-2-17 07:01 , Processed in 0.132873 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表