我只在C#中使用DirectX(DirectX for托管代码)(不是slimdx)
我想获得哪种数据类型是位图的截图。
所以我想知道如何将表面转换为位图。
但是我找不到任何指南。
感谢您阅读!
到目前为止,我还附上了我的源代码
PresentParameters present_params = new PresentParameters();
present_params.Windowed = true;
present_params.SwapEffect = SwapEffect.Discard;
d = new Device(0, DeviceType.Hardware, this,
CreateFlags.SoftwareVertexProcessing, present_params);
Stopwatch sw = new Stopwatch();
sw.Start();
Surface s = CaptureScreen();
////////////////////////////
///need to do something/////
///////////////////////////
s.Dispose();
}
public Surface CaptureScreen()
{
Surface s = d.CreateOffscreenPlainSurface(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height, Format.A8R8G8B8, Pool.Scratch);
d.GetFrontBufferData(0, s);
return s;
}
答案 0 :(得分:0)
有一个静态辅助方法可以做到这一点:
Surface.ToFile(s, filename, ImageFileFormat.Png);