[C#] 画像を矩形で切り取る (Bitmap.Clone)

以前にも同じ処理について書いたけど、MSDNを眺めていたら別の方法を見つけたので試してみる。

Bitmap.Clone メソッド (Rectangle, PixelFormat) (System.Drawing)
http://msdn.microsoft.com/ja-jp/library/ms141944(v=vs.110).aspx

コードはたった2行。ちなみに以前に書いたGraphicsオブジェクトを使う処理だと

コードは6行になる。単純計算でコーディング量は3倍。まあ、2行でも6行でも大した量じゃないけど。

処理速度の比較 – Bitmap.Cloneメソッド vs Graphicsオブジェクト

パフォーマンスが同じならコーディング量は少ないほうがいい。処理速度を検証しよう。

特定ディレクトリ中の70個のJPEGファイルをスキャンして、1つずつ読み込んで固定サイズに切り取り、別フォルダに保存し直すだけのプログラムを書いた。それぞれの方法で10回ずつ処理して所要時間を計測してみる。

テスト結果 (処理時間)

結果はBitmap.Cloneを使った切り取り処理のほうが倍近く遅かった。

Bitmap.Cloneメソッドは簡単だけど処理は遅いという結論。