Crates.io | screenshots |
lib.rs | screenshots |
version | 0.8.10 |
source | src |
created_at | 2022-03-07 07:32:21.256535 |
updated_at | 2024-03-01 01:57:14.796989 |
description | Move to [XCap](https://crates.io/crates/xcap) |
homepage | https://github.com/nashaofu/screenshots-rs |
repository | https://github.com/nashaofu/screenshots-rs.git |
max_upload_size | |
id | 544878 |
size | 72,412 |
Screenshots is a cross-platform screenshots library for MacOS, Windows, Linux (X11, Wayland) written in Rust. It provides a simple API for capturing screenshots of a screen or a specific area of a screen.
The following example shows how to capture screenshots of all screens and a specific area of a screen.
use screenshots::Screen;
use std::time::Instant;
fn main() {
let start = Instant::now();
let screens = Screen::all().unwrap();
for screen in screens {
println!("capturer {screen:?}");
let mut image = screen.capture().unwrap();
image
.save(format!("target/{}.png", screen.display_info.id))
.unwrap();
image = screen.capture_area(300, 300, 300, 300).unwrap();
image
.save(format!("target/{}-2.png", screen.display_info.id))
.unwrap();
}
let screen = Screen::from_point(100, 100).unwrap();
println!("capturer {screen:?}");
let image = screen.capture_area(300, 300, 300, 300).unwrap();
image.save("target/capture_display_with_point.png").unwrap();
println!("运行耗时: {:?}", start.elapsed());
}
On Linux, you need to install libxcb
, libxrandr
, and dbus
.
Debian/Ubuntu:
apt-get install libxcb1 libxrandr2 libdbus-1-3
Alpine:
apk add libxcb libxrandr dbus
ArchLinux:
pacman -S libxcb libxrandr dbus
This project is licensed under the Apache License. See the LICENSE file for details.