A cross-platform screenshots library for MacOS、Windows、Linux(X11、wayland).
```rust use screenshots::Screen; use std::{fs, time::Instant};
fn main() { let start = Instant::now(); let screens = Screen::all();
for screen in screens { println!("capturer {:?}", screen); let image = screen.capture().unwrap(); let buffer = image.buffer(); fs::write(format!("{}.png", screen.id.to_string()), &buffer).unwrap(); }
let screen = Screen::from_point(100, 100).unwrap(); println!("capturer {:?}", screen);
let image = screen.capture().unwrap(); let buffer = image.buffer(); fs::write("capturedisplaywith_point.png", &buffer).unwrap();
println!("运行耗时: {:?}", start.elapsed()); }
```
Screen
: Screen capturerScreen::new(display_info)
: Get screen from display info, return Option<Screen>
.Screen::all()
: Get all screen, return Vec<Screen>
.Screen::from_point(x, y)
: Get screen from point, return Option<Screen>
.screen.capture()
: capture screen screenshot image, return Option<Image>
.Image
: Screen screenshot imageImage::new(width, height, buffer)
: Get image from width、height and rgba buffer, return Image
.Image::from_bgra(width, height, buffer)
: Get image from width、height and bgra buffer, return Result<Image, EncodingError>
.image.width()
: Get image width, return u32
.image.height()
: Get image height, return u32
.image.buffer()
: Get image buffer, return Vec<u8>
.