提高GDI+绘制效率的一些方法

GDI+因为其较好的代码封装使得程序员代码的编写更高效,但随之而来的是对其绘图效率低下的诟病,究竟它的绘图效率是不是低下我不好说(个人觉得就算低下其程度也十分有限,据说Visio就是用GDI+写的),但下面一些编程中的trick相信能较大程度上提高GDI+的绘图效率

1,Graphics.SetSmoothingMode(SmoothingModeHighSpeed); //高速、低画质

2,pDC->GetClipBox(&rcBox );

即只重画无效区,Graphics里有类似的函数

3,基本的方法是用双缓冲,首先算法要优化,然后对于没有落在屏幕区域的就不去画,还有能局部刷新的就不要全屏刷新,这些对于一般的东西都可以搞定,GDI每一个细节都有可能导致效率低下,要注意细节     比较高级的方法好像是用一个线程在后台绘图,绘在一个比较大的视频缓冲表面,第一次要比较长的时间,然后用ScrollDC就可以浏览了,这样不用经过system   bus,所以比较快

4, CbufferBitmap

 

其实我觉得方法3双缓冲对优化绘图是最有效、最直观,一般情况下用双缓冲足矣,其它的一些优化方法可以在方法3的基础上进一步实施如果你对双缓冲的效果还不满意的话

恩,附上一篇优化的试验

http://www.codeproject.com/KB/GDI-plus/gdiplusspeed.aspx

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值