From 1b6a04ca5504955c571d1c97504fb45ea0befee4 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Mon, 8 Jan 2024 01:21:28 +0400 Subject: Initial vendor packages Signed-off-by: Valentin Popov --- vendor/exr/examples/5a_write_multiple_layers.rs | 45 +++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 vendor/exr/examples/5a_write_multiple_layers.rs (limited to 'vendor/exr/examples/5a_write_multiple_layers.rs') diff --git a/vendor/exr/examples/5a_write_multiple_layers.rs b/vendor/exr/examples/5a_write_multiple_layers.rs new file mode 100644 index 0000000..51e2aed --- /dev/null +++ b/vendor/exr/examples/5a_write_multiple_layers.rs @@ -0,0 +1,45 @@ + +extern crate smallvec; +extern crate rand; +extern crate half; + + +// exr imports +extern crate exr; + +/// Writes multiple layers into one exr file +/// Note: this may not be supported by legacy software +fn main() { + use exr::prelude::*; + let size = Vec2(512, 512); + + + let layer1 = Layer::new( + size, + LayerAttributes::named("teal rgb"), + Encoding::FAST_LOSSLESS, + SpecificChannels::rgb(|_pos| (0_f32, 0.4_f32, 0.4_f32)), + ); + + let layer2 = Layer::new( + size, + LayerAttributes::named("orange rgba"), + Encoding::FAST_LOSSLESS, + SpecificChannels::rgba(|_pos| (0.8_f32, 0.5_f32, 0.1_f32, 1.0_f32)), + ); + + // define the visible area of the canvas + let attributes = ImageAttributes::new( + // the pixel section that should be shown + IntegerBounds::from_dimensions(size) + ); + + let image = Image::empty(attributes) + .with_layer(layer1) // add an rgb layer of type `SpecificChannels` + .with_layer(layer2); // add an rgba layer of different type, `SpecificChannels`, not possible with a vector + + println!("writing image..."); + image.write().to_file("layers.exr").unwrap(); + + println!("created file layers.exr"); +} \ No newline at end of file -- cgit v1.2.3