blob: 4eb6f8dac51105acb2596b28a9a860827938afb2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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");
}
|