在Microsoft.DirectX中,将表面转换为位图

时间:2013-05-08 11:56:21

标签: c# bitmap directx

我只在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;
    }

1 个答案:

答案 0 :(得分:0)

有一个静态辅助方法可以做到这一点:

Surface.ToFile(s, filename, ImageFileFormat.Png);