use crate::image::Image;
use crate::error::ImgProcResult;
use crate::error;
pub fn scale_channels(input: &Image<f64>, current_max: f64, scaled_max: f64) -> ImgProcResult<Image<f64>> {
error::check_non_neg(current_max, "current_max")?;
error::check_non_neg(scaled_max, "scaled_max")?;
Ok(input.map_channels(|channel| (channel / current_max * scaled_max)))
}
pub fn f64_to_u8_scale(input: &Image<f64>, scale: u32) -> Image<u8> {
input.map_channels(|channel| (channel / scale as f64 * 255.0).round() as u8)
}
pub fn u8_to_f64_scale(input: &Image<u8>, scale: u32) -> Image<f64> {
input.map_channels(|channel| ((channel as f64 / 255.0) * scale as f64))
}