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