我有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