私は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を可能な限り速くします。誰か私にいくつかのサンプルを与えることができますか? ありがとうございました!
お返事ありがとうございます。私は、次のコードを記述します。
Graphics canvas(totalCanvas);
for (int i = 0; i < 100; ++i)
{
canvas.DrawImage(bottomLayer, 0,0);
}
この部分は968msかかります...それは遅すぎる...
は、bottanLayerのディメンションは、totalCanvas Dimentionsと常に同じですか? その場合、なぜ2つのビットマップを作成するのですか? – user88637
ありがとう、私は質問に理由を追加しました。 – user25749