36 lines
1.0 KiB
Rust
36 lines
1.0 KiB
Rust
|
extern crate exr;
|
||
|
|
||
|
|
||
|
/// `exr` offers a few simplified functions for the most basic use cases.
|
||
|
/// `write_rgb_f32_file` is a such a function, which writes a plain rgba exr file.
|
||
|
///
|
||
|
/// To write your image data, you need to specify how to retrieve a single pixel from it.
|
||
|
/// The closure may capture variables or generate data on the fly.
|
||
|
fn main() {
|
||
|
use exr::prelude::*;
|
||
|
|
||
|
// write a file, with 32-bit float precision per channel
|
||
|
write_rgba_file(
|
||
|
|
||
|
// this accepts paths or &str
|
||
|
"minimal_rgba.exr",
|
||
|
|
||
|
// image resolution is 2k
|
||
|
2048, 2048,
|
||
|
|
||
|
// generate (or lookup in your own image)
|
||
|
// an f32 rgb color for each of the 2048x2048 pixels
|
||
|
// (you could also create f16 values here to save disk space)
|
||
|
|x,y| {
|
||
|
(
|
||
|
x as f32 / 2048.0, // red
|
||
|
y as f32 / 2048.0, // green
|
||
|
1.0 - (y as f32 / 2048.0), // blue
|
||
|
1.0 // alpha
|
||
|
)
|
||
|
}
|
||
|
|
||
|
).unwrap();
|
||
|
|
||
|
println!("created file minimal_rgb.exr");
|
||
|
}
|