#screen #info #display #cross-platform #display-info

screen-info

跨平台获取屏幕信息

1 个不稳定版本

0.0.1 2024年1月3日

#135#screen

自定义许可

20KB
415

display-info

跨平台获取 MacOS、Windows、Linux 的显示信息。类似于 electron Display 对象

示例

use display_info::DisplayInfo;
use std::time::Instant;

fn main() {
  let start = Instant::now();

  let display_infos = DisplayInfo::all().unwrap();
  for display_info in display_infos {
    println!("display_info {display_info:?}");
  }
  let display_info = DisplayInfo::from_point(100, 100).unwrap();
  println!("display_info {display_info:?}");
  println!("运行耗时: {:?}", start.elapsed());
}

DisplayInfo 结构体

  • id u32 - 与显示关联的唯一标识符。
  • x i32 - 显示的 X 坐标。
  • y i32 - 显示的 Y 坐标。
  • width u32 - 显示的像素宽度。
  • height u32 - 显示的像素高度。
  • rotation f32 - 可以为 0, 90, 180, 270,代表顺时针旋转的角度。
  • scale_factor f32 - 输出设备的像素缩放因子。
  • frequency f32 - 显示刷新率。
  • is_primary bool - 是否是主屏幕。

Linux 要求

在 Linux 上,您需要安装 libxcblibxrandr

Debian/Ubuntu

apt-get install libxcb1 libxrandr2

Alpine

apk add libxcb libxrandr

ArchLinux

pacman -S libxcb libxrandr

依赖

~0.1–36MB
~533K SLoC