# LibRaw The `libraw` crate provides a safe wrapper around the native `libraw` library. * [Documentation](http://dcuddeback.github.io/libraw-rs/libraw/) ## Dependencies In order to use the `libraw` crate, you must have the `libraw_r` library installed where it can be found by `pkg-config`. `libraw_r` is the reentrant version of LibRaw. Linking against the non reentrant `libraw` is not supported. On Debian-based Linux distributions, install the `libraw-dev` package: ``` sudo apt-get install libraw-dev ``` On OS X, install `libraw` with Homebrew: ``` brew install libraw ``` On FreeBSD, install the `libraw` package: ``` sudo pkg install libraw ``` ## Usage Add `libraw` as a dependency in `Cargo.toml`: ```toml [dependencies] libraw = "0.1" ``` Import the `libraw` crate. Open an image with `Image::open()` and then use the methods on `Image` to operate on and inspect the raw image data. ```rust extern crate libraw; use std::path::Path; fn main() { let mut image = libraw::Image::open(Path::new("image.nef")).unwrap(); image.unpack().unwrap(); let raw = image.raw_pixmap().unwrap(); let sum = raw.pixels().fold(0, |accum, pixel| { accum + pixel.value() as usize }); println!("average pixel brightness = {:.3}", sum as f64 / raw.len() as f64); } ``` ## License Copyright © 2015 David Cuddeback Distributed under the [MIT License](LICENSE). *Note:* By using this crate, your executable will link to the `libraw` C library, which is available under the [LGPL version 2.1, CDDL version 1.0, or LibRaw Software License](https://github.com/LibRaw/LibRaw/blob/master/COPYRIGHT).