Expand description
Library to extract the raw data and some metadata from digital camera images. Given an image in a supported format and camera you will be able to get everything needed to process the image
§Example
use std::env;
use std::fs::File;
use std::io::prelude::*;
use std::io::BufWriter;
fn main() {
let args: Vec<_> = env::args().collect();
if args.len() != 2 {
println!("Usage: {} <file>", args[0]);
std::process::exit(2);
}
let file = &args[1];
let image = rawloader::decode_file(file).unwrap();
// Write out the image as a grayscale PPM
let mut f = BufWriter::new(File::create(format!("{}.ppm",file)).unwrap());
let preamble = format!("P6 {} {} {}\n", image.width, image.height, 65535).into_bytes();
f.write_all(&preamble).unwrap();
if let rawloader::RawImageData::Integer(data) = image.data {
for pix in data {
// Do an extremely crude "demosaic" by setting R=G=B
let pixhigh = (pix>>8) as u8;
let pixlow = (pix&0x0f) as u8;
f.write_all(&[pixhigh, pixlow, pixhigh, pixlow, pixhigh, pixlow]).unwrap()
}
} else {
eprintln!("Don't know how to process non-integer raw files");
}
}
Structs§
- CFA
- Representation of the color filter array pattern in raw cameras
- RawImage
- All the data needed to process this raw image, including the image data itself as well as all the needed metadata
- RawLoader
Error - Error type for any reason for the decode to fail
Enums§
- Orientation
- Possible orientations of an image
- RawImage
Data - The actual image data, after decoding
Functions§
- decode
- Take a readable source and return a decoded image or an error
- decode_
file - Take a path to a raw file and return a decoded image or an error