dxcapture
is a library for capturing a Direct3D 11 device on Windows.
toml
[dependencies]
dxcapture = "1.1"
```rs let device = dxcapture::Device::default(); let capture = dxcapture::Capture::new(&device).unwrap();
let raw = loop { match capture.getrawframe() { Ok(raw) => break raw, Err(e) => { if e == dxcapture::CaptureError::NoTexture { // async, so sometimes it's not there. continue; } panic!("{}", e); } } };
// taked primary monitor. // hoge raw ```
img
- Enable features that depend on the image
crate
toml
dxcapture = { version = "1.1", features = ["img"] }
```rs
let device = dxcapture::Device::default();
let capture = dxcapture::Capture::new(&device).unwrap();
let image = capture.waitimgframe().expect("Failed to capture"); let path = "image.png";
image.data.save(path).expect("Failed to save");
``
[Read more with image](
Capture::getimgframe`)
mat
- Enable features that depend on the opencv
crate
toml
dxcapture = { version = "1.1", features = ["mat"] }
```rs
use opencv::prelude::*;
use opencv::imgcodecs::{ imwrite, IMWRITEPNGSTRATEGY_DEFAULT };
let device = dxcapture::Device::default(); let capture = dxcapture::Capture::new(&device).unwrap();
let mat = capture.waitmatframe().expect("Failed to capture"); let path = "image.png";
imwrite(path, &mat.data, &vec![IMWRITEPNGSTRATEGYDEFAULT].into()).expect("Failed to save");
``
[Read more with opencv](
Capture::getmat_frame`)
This crate completed thanks to wgc-rust-demo