diff options
Diffstat (limited to 'vendor/exr/examples/4a_write_custom_fixed_channels.rs')
| -rw-r--r-- | vendor/exr/examples/4a_write_custom_fixed_channels.rs | 41 | 
1 files changed, 41 insertions, 0 deletions
diff --git a/vendor/exr/examples/4a_write_custom_fixed_channels.rs b/vendor/exr/examples/4a_write_custom_fixed_channels.rs new file mode 100644 index 0000000..4eb6f8d --- /dev/null +++ b/vendor/exr/examples/4a_write_custom_fixed_channels.rs @@ -0,0 +1,41 @@ + +// exr imports +extern crate exr; + +/// Create an image with strange channels and write it to a file. +fn main() { +    use exr::prelude::*; + +    let pixels = SpecificChannels::build() +        .with_channel("Kharthanasus Korthus") +        .with_channel("Y") +        .with_channel("11023") +        .with_channel("*?!") +        .with_channel("`--\"") +        .with_channel("\r\r\r\n\n") +        .with_pixel_fn(|position|{ +            if position.0 < 1000 { +                (f16::from_f32(0.2), 0.666_f32, 4_u32, 1532434.0213_f32, 0.99999_f32, 3.142594_f32/4.0) +            } +            else { +                (f16::from_f32(0.4), 0.777_f32, 8_u32, 102154.3_f32, 0.00001_f32, 3.142594_f32/4.0) +            } +        }); + +    let image = Image::from_channels((2000, 1400), pixels); + +    // print progress only if it advances more than 1% +    let mut current_progress_percentage = 0; + +    image.write() +        .on_progress(|progress| { +            let new_progress = (progress * 100.0) as usize; +            if new_progress != current_progress_percentage { +                current_progress_percentage = new_progress; +                println!("progress: {}%", current_progress_percentage) +            } +        }) +        .to_file("custom_channels.exr").unwrap(); + +    println!("created file custom_channels.exr"); +}
\ No newline at end of file  | 
