我有3位图点。什么是在另一幅图像上绘制图像的最快方式?
Bitmap* totalCanvas = new Bitmap(400, 300, PixelFormat32bppARGB); // final canvas
Bitmap* bottomLayer = new Bitmap(400, 300,PixelFormat32bppARGB); // background
Bitmap* topLayer = new Bitmap(XXX); // always changed.
我会在bottomLayer上绘制复杂的背景。我不想一次又一次地在totalCanvas上重绘复杂背景,所以我将它存储在bottomLayer中。
TopLayer频繁更改。 我想绘制bottomLayer到totalCanvas。哪种方法最快?
Graphics canvas(totalCanvas);
canvas.DrawImage(bottomLayer, 0, 0); step1
canvas.DrawImage(topLayer ,XXXXX); step2
我希望step1尽可能快。任何人都可以给我一些样品吗? 非常感谢!
感谢unwind的回答。我写了下面的代码:
Graphics canvas(totalCanvas);
for (int i = 0; i < 100; ++i)
{
canvas.DrawImage(bottomLayer, 0,0);
}
这部分需要968ms ......实在是太慢了......
是bottoLayer尺寸总是一样的totalCanvas尺寸? 如果是这样,为什么创建两个位图? – user88637 2009-04-15 07:28:13
谢谢,我在问题中添加了原因。 – user25749 2009-04-15 08:15:15