rawloader 0.10.0

A library to extract the data from camera raw formats
Documentation
use decoders::Image;
use imageops::fcol;

pub fn level (img: &Image) -> Vec<f32> {
  let mut out: Vec<f32> = vec![0.0; (img.width*img.height) as usize];

  let mins = img.blacklevels.iter().map(|&x| x as f32).collect::<Vec<f32>>();
  let ranges = img.whitelevels.iter().enumerate().map(|(i, &x)| (x as f32) - mins[i]).collect::<Vec<f32>>();

  let mut pos = 0;
  for row in 0..img.height {
    for col in 0..img.width {
      let color = fcol(img, row, col);
      let pixel = img.data[pos] as f32;
      out[pos] = (pixel - mins[color]) / ranges[color];
      pos += 1;
    }
  }

  out
}