1
我正在處理的項目需要能夠轉換圖像的任意四個角。由於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構造函數需要一個位圖。如果我在內存中構造了一個帶有位圖的曲面,那麼渲染到這個曲面還會更新所保存的位圖嗎? – Japtar 2010-12-09 18:46:05
我想知道是否用相同的流信息構建表面和位圖也會起作用... – Japtar 2010-12-09 19:55:04