7个版本
0.1.7 | 2024年2月18日 |
---|---|
0.1.6 | 2023年2月13日 |
0.1.5 | 2022年11月16日 |
0.1.3 | 2021年3月4日 |
#223 在 图像
每月73次下载
76KB
2K SLoC
rxscreen
libx11的一个简单包装库,用于截取屏幕截图。
依赖
- libx11
- libxext(带有
shm
特性) - libxrandr(带有
xrandr
特性)
特性
- save(直接保存截图到文件)
- MIT-SHM(使用MIT-SHM扩展快速截取屏幕截图,用于屏幕录制等)
- Xrandr(使用Xrandr查询连接到X11服务器的显示器)
- 鼠标(查询鼠标位置)
计划中的特性
- 图形,允许创建自己的显示并在其上绘制。
- 扩展Xrandr支持以更改显示配置
类似的项目
lib.rs
:
rxscreen
设计成一个简单、易于使用的库,围绕x11服务器及其扩展的各种功能。实现的功能
- X11
- Xrandr(通过
xrandr
特性) - MIT-SHM(通过
shm
特性)
示例
捕获整个X11显示的截图
if let Ok(display) = Display::new(":0.0") {
let capture = display.capture()
.unwrap();
// `capture` is now an `Image` containing Bgr8 data of the image.
// You can now save it to a file, or do whatever you want with it.
}
捕获特定显示器的截图(需要“xrandr”特性)
#[cfg(feature = "xrandr")]
#[cfg(feature = "xrandr")]
if let Ok(display) = Display::new(":0.0") {
if let Some(monitor) = display.monitors()
.iter()
.find(|monitor| monitor.primary()) {
let capture = display.capture_area(
(monitor.x as u32, monitor.y as u32),
(monitor.width as u32, monitor.height as u32)
).unwrap();
// `capture` is now an `Image` containing the screenshot of the primary monitor as Bgr8 data.
// You can now save it to a file, or do whatever you want with it.
}
}
依赖
~0–2.9MB
~12K SLoC