我是 DirectX 的新手,并尝试使用 SharpDX 使用桌面复制 API 捕获屏幕截图。
我想知道是否有任何简单的方法可以创建可以在 CPU 中使用的位图(即保存在文件中等)
我正在使用以下代码获取桌面屏幕截图:
var factory = new SharpDX.DXGI.Factory1();
var adapter = factory.Adapters1[0];
var output = adapter.Outputs[0];
var device = new SharpDX.Direct3D11.Device(SharpDX.Direct3D.DriverType.Hardware,
DeviceCreationFlags.BgraSupport |
DeviceCreationFlags.Debug);
var dev1 = device.QueryInterface<SharpDX.DXGI.Device1>();
var output1 = output.QueryInterface<Output1>();
var duplication = output1.DuplicateOutput(dev1);
OutputDuplicateFrameInformation frameInfo;
SharpDX.DXGI.Resource desktopResource;
duplication.AcquireNextFrame(50, out frameInfo, out desktopResource);
var desktopSurface = desktopResource.QueryInterface<Surface>();
谁能给我一些关于如何从 desktopSurface(DXGI.Surface 实例)创建位图对象的想法?