遅い→起動時

http://d.hatena.ne.jp/pmint/

DrawImage()ではなくLockBits()でイメージのコピー

Drawing.Graphics.DrawImage()の代わりにDrawing.Bitmap.LockBits()を使って、BitmapからBitmapへイメージをコピーする例。
DrawImage()より少し早い。

LockBitsCopy.zip


LCopy2()が同じサイズのBitmap間でコピーする例。


LCopy()は異なるサイズのBitmap間でコピーする例。

ただし…

  • スケーリングはしない。コピー元領域とコピー先領域のサイズは等しくすること。
  • Bitmapからはみ出すような領域指定はできない。


LCopy3()はLCopy()のバッファーを小さくしたもの。
横1ラインぶんのバッファーだけ用意して、1ラインずつコピーする例。




LCopy3()が一番早い。コピーよりもバッファーの確保に時間がかかっているということ?