43 个版本

0.8.10 2024年3月1日
0.8.8 2024年2月1日
0.8.6 2023年12月16日
0.8.5 2023年11月1日
0.0.3 2022年3月29日

152图像

Download history 576/week @ 2024-04-26 991/week @ 2024-05-03 649/week @ 2024-05-10 671/week @ 2024-05-17 435/week @ 2024-05-24 644/week @ 2024-05-31 642/week @ 2024-06-07 530/week @ 2024-06-14 855/week @ 2024-06-21 1593/week @ 2024-06-28 997/week @ 2024-07-05 618/week @ 2024-07-12 758/week @ 2024-07-19 615/week @ 2024-07-26 2077/week @ 2024-08-02 1006/week @ 2024-08-09

4,547 每月下载
少于 12 crate 中使用

Apache-2.0

31KB
743

📷 屏幕截图

移动到 XCap

Screenshots 是一个针对 MacOS、Windows、Linux (X11、Wayland) 的跨平台屏幕截图库,用 Rust 编写。它提供了一个简单的 API 来捕获屏幕或屏幕特定区域的截图。

示例

以下示例展示了如何捕获所有屏幕和屏幕特定区域的截图。

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());
}

Linux 需求

在 Linux 上,您需要安装 libxcblibxrandrdbus

Debian/Ubuntu

apt-get install libxcb1 libxrandr2 libdbus-1-3

Alpine

apk add libxcb libxrandr dbus

ArchLinux

pacman -S libxcb libxrandr dbus

许可证

本项目采用 Apache 许可证。有关详细信息,请参阅 LICENSE 文件。

依赖关系

~5–42MB
~623K SLoC