GDI+ 绘图速度与 CImage 速度比较
2008-12-11 21:15
225 查看
GDI+:
//使用Gdiplus image
DWORD iStart=GetTickCount();
Gdiplus::Bitmap bmp(_T("G://和动力//选择界面效果序列图//DJSelectedOut//一号舞台.png"));
CPaintDC dc(this);
Gdiplus::Graphics gs(dc.m_hDC);
for (int i=0;i<100;i++)
{
gs.DrawImage(&bmp,0,0);
}
DWORD iEnd=GetTickCount();
TCHAR cc[30];
_stprintf(cc,_T("Bitmap:%d"),iEnd-iStart);
MessageBox(cc);
测试出费540上下;
CImage:
DWORD iStart=GetTickCount();
CImage img;img.Load(_T("G://和动力//选择界面效果序列图//DJSelectedOut//一号舞台.png"));
CPaintDC dc(this);
for (int i=0;i<100;i++)
{
img.Draw(dc.m_hDC ,0,0);
}
DWORD iEnd=GetTickCount();
TCHAR cc[30];
_stprintf(cc,_T("CImage:%d"),iEnd-iStart);
MessageBox(cc);
测试出:31,32。
将数量都增大到1000后,GDI+明显好几秒!而CImage几乎不变,再增大至10000,才达到103,104.
如此,GDI+绘图效率连CImage 1%都达不到!
//使用Gdiplus image
DWORD iStart=GetTickCount();
Gdiplus::Bitmap bmp(_T("G://和动力//选择界面效果序列图//DJSelectedOut//一号舞台.png"));
CPaintDC dc(this);
Gdiplus::Graphics gs(dc.m_hDC);
for (int i=0;i<100;i++)
{
gs.DrawImage(&bmp,0,0);
}
DWORD iEnd=GetTickCount();
TCHAR cc[30];
_stprintf(cc,_T("Bitmap:%d"),iEnd-iStart);
MessageBox(cc);
测试出费540上下;
CImage:
DWORD iStart=GetTickCount();
CImage img;img.Load(_T("G://和动力//选择界面效果序列图//DJSelectedOut//一号舞台.png"));
CPaintDC dc(this);
for (int i=0;i<100;i++)
{
img.Draw(dc.m_hDC ,0,0);
}
DWORD iEnd=GetTickCount();
TCHAR cc[30];
_stprintf(cc,_T("CImage:%d"),iEnd-iStart);
MessageBox(cc);
测试出:31,32。
将数量都增大到1000后,GDI+明显好几秒!而CImage几乎不变,再增大至10000,才达到103,104.
如此,GDI+绘图效率连CImage 1%都达不到!
相关文章推荐
- VB和API绘图的速度比较
- Directgraphics.drawImage 和Graphics.drawRegion在不旋转情况下绘图速度的比较
- c#GDI+绘图速度的一些差异不理解
- (C#)GDI+简单绘图画多边形
- 国内速度比较快的NTP Server
- mydumper与mydumper备份速度比较
- WPF优点之比较GDI,GDI+
- c# GDI+简单绘图
- malloc,new,VirtualAlloc,HeapAlloc性能(速度)比较
- 由制图线型符号的改进说起—GDI+的线型绘制和ArcObjects线型绘制比较
- 对java和c的io速度的进一步比较
- 利用GDI+的双缓冲技术来提高绘图效率(转)
- php环境中各种hash算法速度比较
- 数组指针速度比较以及VC++ 对for循环的优化
- std::vector与std::list的执行速度比较 (C/C++) (STL)
- C++/CLI C#调用dll速度比较和内存分配时间测试
- C#关于GDI+绘图(一)
- vc++加载透明png图片方法——GDI+和CImage两种 ,vs2005 vs2008 PNG背景
- 设置GDI+绘图清晰度
- Windows绘图和GDI+疑难