ゲーム画面全体のスクリーンショットを非常に高速にするにはどうすればよいですか? 毎秒20~30くらい?(動画に変換したい)
[[1]] WMEncoder を試してみました。その結果、WMEncoder は、事前に構成された一連のコーデックを使用して、ビデオ形式 (wma) でのみ画面と画面の領域をキャプチャできることがわかりました。(29 fps の最良のエンコード結果)。WMEncoder はスクリーンショットを作成できません。
[[2]] DirectX を試してみました:
Surface s = device.CreateOffscreenPlainSurface(
Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height,
Format.A8R8G8B8, Pool.SystemMemory);
device.GetFrontBufferData(0, s);
SurfaceLoader.Save("c:\\Screenshot"+i.ToString()+".bmp", ImageFileFormat.Bmp, s);
これは gdi のように動作します..非常に遅いです....また、SurfaceLoader が directX 2.0 に存在しないため、DirectX 1.0 でのみ動作します。
私がいくつかの投稿で読んだ別の方法は、次を使用することです:
s = device.GetBackBuffer(0, 0, Microsoft.DirectX.Direct3D.BackBufferType.Mono);
、しかし、これはスクリーンショットを現在のウィンドウにのみ作成します。
[[3]] (sourceforge.net で) Taksi を使用しようとしましたが、C# で使用して動作させる方法がわかりません。
私を助けてください...