私が取り組んでいるプロジェクトでは、画像の4隅のいずれかを変換する必要があります。残念ながら、GDI +にはこの機能がないため、DirectXの3Dグラフィックスを使用しています。DirectX 3Dグラフィックスを画像に直接レンダリングするC#
私はテクスチャを使って正方形のメッシュを画面上に表示していますが、背景を透明に設定してこのレンダリングからイメージを生成できる必要があります。効率的にこれを達成する方法はありますか?
好ましくは、デバイスを初期化するためにコントロールを使用しないでこれを行うことを望みます。また、私のためにイメージを生成するカスタムの、目に見えないコントロールを作成するオプションは気にしません。
編集:
は実は、私は透明な背景が厳密には必要ではないが、それは我々のプロジェクトビットのパフォーマンスを実現役立つだろう。
とにかく、私はこのようなことをする運があったが、それは遅すぎる。おそらくもっと良い方法がありますか?
// Create a surface to render an image to
Surface mSurface = mDevice.GetRenderTarget(0);
// Render the visualization
mDevice.Clear(ClearFlags.Target, Color.Transparent, 1.0f, 0);
mDevice.BeginScene();
/* Do some amazing stuff */
// Exit rendering
mDevice.EndScene();
mDevice.Present();
// Render the bitmap images
GraphicsStream mGraphics = SurfaceLoader.SaveToStream(
ImageFileFormat.Bmp, mSurface);
Image mImage = new Bitmap(mGraphics, false);
Surfaceコンストラクタがビットマップを取り込むことに気付きました。メモリにBitmapを持つSurfaceを作成した場合、このSurfaceにレンダリングすると保持されているBitmapも更新されますか? – Japtar
サーフェスを構築し、同じストリーム情報を持つビットマップがうまくいくかどうかは不思議だった... – Japtar