#image #capturing #macos #cli #📷 #🖼️ #📸

bin+lib imagesnap

用于捕获图像的 CLI 工具 📷 📸 🖼️

1 个不稳定版本

0.0.1 2021 年 5 月 13 日

#24#capturing

MIT/Apache

18KB
291

imagesnap

macOS 上捕获图像的 CLI 工具 📷 📸 🖼️

该软件包同时也是一个 Rust 库。🦀

安装

通过 Homebrew

brew install smudge/smudge/imagesnap

通过 Cargo

设置 Rust/Cargo 并运行以下命令从 crates.io 安装

cargo install imagesnap

用法

命令行界面

不带任何参数运行命令,将输出从默认相机捕获的 snapshot.jpg

$ imagesnap
Capturing image from device "iSight"..................snapshot.jpg

可以通过指定参数更改文件名。目前仅支持 JPG 文件

$ imagesnap shot1.jpg
Capturing image from device "iSight"..................shot1.jpg

使用 -l 标志列出所有可用的图像捕获设备

$ imagesnap -l
iSight
DV

使用 -d 标志使用特定设备

$ imagesnap -d DV
Capturing image from device "DV"..................snapshot.jpg

使用 -w 标志指定预热时间(默认为 0.5),允许相机在拍摄前进行光线平衡和/或对焦

$ imagesnap -w 2.5
Capturing image from device "iSight"...........................snapshot.jpg

使用 -q 标志静默状态和进度输出。

最后,使用 -h/--help 运行命令以查看用法说明。

Rust API

除了 CLI,imagesnap 还可以作为一个依赖项被其他 Rust 软件包引入

imagesnap = "0.0.1"

要使用默认相机捕获图像,请使用 Camera::default

let camera = Camera::default();
camera.snap("snapshot.jpg").await;

请注意,snap 是一个 async 函数。

如果连接了多个相机,请使用 Camera::new 并指定一个设备

let camera = Camera::new(Device::find("FaceTime"), None);

要发现所有设备,请使用 Device::all()

也可以指定一个可选的预热时间(以秒为单位)

let camera = Camera::new(Device::default(), 1.5);

如果未指定,则默认为 0.5 秒。

待办事项

  • 基本功能正常工作(将图像捕获到文件)
  • 添加额外的选项,如 'quiet' 和 'warmup'
  • 使设备选择功能正常工作
  • 清理代码,工作于通用库接口
  • 更新 README 以包含库用法
  • 支持其他文件类型吗?(png、tif 等?)
  • 增加Linux支持(通过 rscam
  • 增加Windows支持(通过 escapi
  • 使STDOUT和管道检测在macOS/Linux上工作

鸣谢

贡献

  • 检查问题跟踪器并考虑创建新的问题。
  • 对该项目进行Fork并创建一个新分支以贡献。
  • 在您的分支上编写、提交和推送您的贡献。
  • 确保项目可以构建(cargo build)并且功能仍然按预期工作。
  • 提交一个pull请求。

许可证

根据您的要求,许可以下任一项

除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交的包含在作品中的任何贡献,都应如上所述双重许可,不得附加任何额外条款或条件。

依赖

~1–1.7MB
~29K SLoC