【发布时间】:2009-11-07 22:51:17
【问题描述】:
我有一个项目,在这些项目中我从某个图层绘制了一些形状。例如,我在圆形图层中有两个圆圈,在矩形图层中有三个矩形,依此类推。我通过调用 Layer.Draw 绘制结果,并使用 Graphics 对象对图层结果进行标记。 我可以在图片框中选择一个形状并在图层上指定它。我可以通过重绘图层来拖动它并用图形重新标记所有内容。它可以工作!但是太慢了!!
我该如何优化呢?
【问题讨论】:
标签: c# gdi+ system.drawing
我有一个项目,在这些项目中我从某个图层绘制了一些形状。例如,我在圆形图层中有两个圆圈,在矩形图层中有三个矩形,依此类推。我通过调用 Layer.Draw 绘制结果,并使用 Graphics 对象对图层结果进行标记。 我可以在图片框中选择一个形状并在图层上指定它。我可以通过重绘图层来拖动它并用图形重新标记所有内容。它可以工作!但是太慢了!!
我该如何优化呢?
【问题讨论】:
标签: c# gdi+ system.drawing
在旧解决方案中,我将形状绘制到 layer.image 中,并在 Paint 事件中将它们与 e.Graphic 结合起来。 我通过将图形对象传递到图层并用它绘制形状来解决这个问题。我的程序运行得很好!
【讨论】:
曾几何时,我有一个项目需要绘制图像时的速度。我使用解锁方法直接访问这些位(http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.unlockbits.aspx)。但是这种方法很不安全,也很复杂,所以你应该尽可能避免这种情况。
尝试优化您的程序并删除不必要的抽奖。对 GUI 的主要绘制非常慢,因此尽量不要永久更新图片框,而仅在必要时更新。
【讨论】: