我正在进行的项目需要能够转换图像的任何四个角。由于GDI +不幸没有此功能,我们正在使用DirectX的3D图形。
虽然我有一个方形网格,其纹理在屏幕上成功显示,但我需要能够从此渲染生成图像,背景设置为透明。有没有办法有效地实现这个目标?
最好,我想在不使用Control初始化设备的情况下执行此操作。或者,我不介意创建一个自定义的,不可见的控件,它将为我生成一个图像。
修改
实际上,我刚刚意识到透明背景是非常必要的,但它会对我们项目的性能有所帮助。
无论如何,我有幸做过这样的事情,但速度太慢了。也许有更好的方法?
// 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);
答案 0 :(得分:0)
如果您使用D3D进行最终渲染到屏幕,那么您可以轻松地使用渲染到纹理来完成您正在谈论的事情。