Eye
Eye is a cross platform camera capture and control library written in native Rust. It features multiple platform backends, such as v4l2 for Linux. Buffers are captured by accessing 'streams'. The stream concept is used to facilitate additional features such as colorspace conversion.
Eye is a very young library and its API is subject to change (as denoted by the 0.x.x version number). We follow the semver approach, meaning each new feature will bump the minor version by one.
Goals
Eye strives to provide a common feature set on all platforms. Some devices, mostly more expensive ones, will always offer more features than others though. Eye shall expose a dynamic featureset API which can be queried at runtime so device parameters can be configured accordingly.
Common Features
- Transparent pixel format conversion
OS Feature Matrix
Feature | Linux | Windows | macOS |
---|---|---|---|
Zero-copy capture | ✓ | ⤬ | ⤬ |
Device enumeration | ✓ | ⤬ | ⤬ |
Device parameters (Focus, White Balance, ...) | (✓) | ⤬ | ⤬ |
Usage
Below you can find a quick example usage of this crate. It introduces the basics necessary for image capturing.
use *;
Have a look at the provided examples
for more sample applications.