Crates.io | openpnp_capture |
lib.rs | openpnp_capture |
version | 0.2.4 |
source | src |
created_at | 2020-09-01 17:21:23.023835 |
updated_at | 2022-09-25 19:40:00.88851 |
description | OpenPnP capture safe bindings |
homepage | |
repository | https://github.com/raymanfx/openpnp-capture |
max_upload_size | |
id | 283480 |
size | 27,015 |
This crate provides safe bindings to the openpnp-capture library for cross-platform camera capture.
The sys
subdir contains the openpnp_capture_sys
crate which holds the actual FFI bindings wrapping the C API.
openpnp_capture = "0.1"
use openpnp_capture::{Device, Format, Stream};
fn main() {
// Fetch some generic device information
let devices = Device::enumerate();
println!("Found {} devices.", devices.len());
// Choose the first device we see
let dev = Device::new(devices[0]).expect("Failed to open device");
// Create the stream
let format = Format::default().width(1280).height(720).fps(30);
let mut stream = Stream::new(&dev, &format).expect("Failed to create stream");
// Print some format information
println!(
"[0] {} ({}x{}@{})",
stream.format().fourcc,
stream.format().width,
stream.format().height,
stream.format().fps
);
// Prepare a buffer to hold camera frames
let mut rgb_buffer = Vec::new();
// Capture some frames
stream.advance();
stream.read(&mut rgb_buffer);
}
Have a look at the provided examples
for more sample applications.