gphoto2 0.1.1

Rust bindings for libgphoto2
Documentation

GPhoto2-rs

Rust bindings to libgphoto2

Features

  • Camera
    • Capture images
    • Download images
    • Get port information
    • Get abilities (model, driver stability, permissions, ...)
    • Read configuration
    • Set configuration
    • Usb port information (TODO)
    • Interact with filesystem on camera (TODO)
  • Context
    • Autodetect camera
    • Get list of available cameras
    • Get camera by model and port

Gettings started

Installation

Run cargo add gphoto2 to add gphoto2 to your project or add this to your Cargo.toml:

[dependencies]
gphoto2 = "0.1"

Install libgphoto2

The libgphoto2 library must be installed on your system to use this library.

To install libgphoto2 on Debian based systems run:

sudo apt install libgphoto2-dev

On Arch systems run:

sudo pacman -S libgphoto2

On MacOs systems with Homebrew run:

homebrew install libgphoto2

Basic Usage

This example takes a picture and saves it to disk

use gphoto2::Context;
use std::path::Path;

fn main() {
  // Everything starts from a context
  let context = Context::new().expect("Failed to create context");
  // From the context you can detect cameras
  let camera = context.autodetect_camera().expect("Failed to autodetect camera");

  // And take pictures
  let file_path = camera.capture_image().expect("Could not capture image");
  file_path
    .download(&camera, Path::new(&file_path.name().to_string()))
    .expect("Failed to download image");

  // For more advanced examples take a look at the examples/ foldeer
}

You can find more examples here

License

Copyright © 2022 Maxicarlos08 maxicarlos08@gmail.com

This library uses the libgphoto2 library, which is licensed under the LGPL version 2.1.