在Windows.Forms中绘制图像的最快方法是什么?

时间:2009-05-22 20:40:10

标签: .net winforms paint

我过去曾使用过许多技术在Windows.Forms中绘制图像,现在我正在重新审视一些处理我们产品渲染皮肤图像的核心库。我特别感兴趣的是多次渲染相同的图像(平铺)来表示背景控件的字段。假设图像尺寸正确(不需要缩放)并且仅包含要平铺的部分,那么将该图像绘制到屏幕的最快方法是什么?

我使用的优化之一是将图像转换为PixelFormat.Format32bpp P Argb,它预先计算了一些alpha通道。

DrawImage和DrawImageUnscaled之间是否存在性能差异?

寻找真实世界的经验,而不是记录在案的期望。

更新:在挖掘框架类之后,我看到Control类使用TextureBrush使用要平铺的图像。这看起来很有希望。

1 个答案:

答案 0 :(得分:1)

如果你愿意p / invoke,BitBlt。如果没有,DrawImageUnscaled就好了。