Dieser Artikel stellt vor, wie man Screenshots mit Rust aufnimmt. Wir erfassen den gesamten Bildschirm und speichern Bilder in einem angegebenen Ordner.
Um Screenshots mit Rust aufzunehmen, ist es üblich, eine Crate namens screenshots - crates.io: Rust Package Registry zu verwenden.
Screenshots mit Rust aufnehmen
Fügen Sie zunächst Folgendes zu Cargo.toml hinzu.
Dadurch können Sie die screenshots-Crate verwenden.
screenshots = "0.8.6"
Der Gesamtcode sieht so aus.
Dies definiert eine Funktion namens screenshot(), die einen Screenshot aufnimmt.
use screenshots::Screen;
use std::time::Instant;
// screenshot(dest) -> void
fn screenshot(dest: &str) {
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!("{}", dest))
.unwrap();
}
println!("screenshot took {}ms", start.elapsed().as_millis());
}
Der Ausführungsablauf dieser Funktion ist wie folgt:
use screenshots::Screen;: Verwendung derScreen-Struktur aus derscreenshots-Crate ermöglichenuse std::time::Instant;: Verwendung derInstant-Struktur ausstdstimeermöglichenfn screenshot(dest: &str) {: Definieren Sie eine Funktion namensscreenshot. Das Argument ist ein String-Typ namensdestlet start = Instant::now();: Weisen Sie die aktuelle Zeit einer Variablen namensstartzulet screens = Screen::all().unwrap();: Weisen Sie alle Bildschirme einer Variablen namensscreenszufor screen in screens {: Weisen Sie den Inhalt vonscreenseiner Variablen namensscreenzu und durchlaufen Sie die Schleifelet mut image = screen.capture().unwrap();: Nehmen Sie einen Screenshot vonscreenauf und weisen Sie ihn einer Variablen namensimagezuimage.save(format!("{}", dest)).unwrap();: Speichern Sieimagemit dem Dateinamendestprintln!("screenshot took {}ms", start.elapsed().as_millis());: Zeigen Sie die Zeit an, die zum Aufnehmen des Screenshots benötigt wurde
Das ist alles.
Diese Funktion kann wie folgt aufgerufen werden:
screenshot("screenshot.png");
Oder sie kann auch wie folgt aufgerufen werden:
screenshot("./path/to/screenshot.png");
Zusammenfassung
Dieser Artikel stellte vor, wie man Screenshots mit Rust aufnimmt.