PictureBox的速度更快?许多小的重绘或完全重绘

时间:2010-05-12 06:01:22

标签: c# performance graphics windows-mobile bitmap

我有一个PictureBox(WinMobile 6 WinForm),我在上面绘制一些图像。背景中有一个背景图像,它不会改变。但是,在图片框上绘制的对象在应用程序期间正在移动,因此我需要刷新背景。

由于重新绘制的项目填充表面的50%到80%,问题是两者中的哪一个更快:

1)仅重绘已更改的背景图像部分(移动对象的上一个+下一个位置)。

2)重绘完整背景,然后在当前位置绘制所有对象。

现在,问的原因是因为我不确定单个drawImage操作需要多少处理器能力以及耗时的因素是什么。

我知道如果几乎完全覆盖背景,重绘它的部分是愚蠢的,因为通过绘制部分我将绘制完整的图片。但是,由于有时只有一半的图像发生了变化(一些物体保留在原来的位置),所以(也许)重绘这些区域可能是有益的。但我需要你对此有所了解......

感谢。

1 个答案:

答案 0 :(得分:0)

DrawImage的数量越少越好,因为它使用GDI +进行渲染并且速度非常慢。 我建议使用旧GDI的BitBlt而不是DrawImage。

使用此功能,您可以将所有必要部分放入临时画布(Graphics obj),然后立即将所有内容放入PictureBox中。如果你在循环中忽略了可见屏幕之外的所有部分,这应该会很快。