aboutsummaryrefslogtreecommitdiff
path: root/vendor/exr/examples/5d_write_legacy_layers.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2024-07-19 15:37:58 +0300
committerValentin Popov <valentin@popov.link>2024-07-19 15:37:58 +0300
commita990de90fe41456a23e58bd087d2f107d321f3a1 (patch)
tree15afc392522a9e85dc3332235e311b7d39352ea9 /vendor/exr/examples/5d_write_legacy_layers.rs
parent3d48cd3f81164bbfc1a755dc1d4a9a02f98c8ddd (diff)
downloadfparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.tar.xz
fparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.zip
Deleted vendor folder
Diffstat (limited to 'vendor/exr/examples/5d_write_legacy_layers.rs')
-rw-r--r--vendor/exr/examples/5d_write_legacy_layers.rs73
1 files changed, 0 insertions, 73 deletions
diff --git a/vendor/exr/examples/5d_write_legacy_layers.rs b/vendor/exr/examples/5d_write_legacy_layers.rs
deleted file mode 100644
index 7276c7f..0000000
--- a/vendor/exr/examples/5d_write_legacy_layers.rs
+++ /dev/null
@@ -1,73 +0,0 @@
-
-#[macro_use]
-extern crate smallvec;
-extern crate rand;
-extern crate half;
-
-
-// exr imports
-extern crate exr;
-
-// TODO create a dedicated reader and writer for this scenario
-
-/// Generate an image with channel groups and write it to a file.
-/// Some legacy software may group layers that contain a `.` in the layer name.
-///
-/// Note: This is an OpenEXR legacy strategy. OpenEXR supports layers natively since 2013.
-/// Use the natively supported exrs `Layer` types instead, if possible.
-///
-fn main() {
- use exr::prelude::*;
- // TODO simplify handling these types of layers using read() and write()
-
- let size = Vec2(512, 512);
-
- let create_channel = |name: &str| -> AnyChannel<FlatSamples> {
- let color: f16 = f16::from_bits(rand::random::<u16>());
-
- AnyChannel::new(
- name,
- FlatSamples::F16(vec![color; size.area() ])
- )
- };
-
-
- // The channels have the following structure:
- //
- // - Object
- // - Red
- // - Green
- // - Blue
- // - Alpha
-
- // - Background
- // - Red
- // - Green
- // - Blue
-
- let foreground_r = create_channel("Object.R");
- let foreground_g = create_channel("Object.G");
- let foreground_b = create_channel("Object.B");
- let foreground_a = create_channel("Object.A");
-
- let background_r = create_channel("Background.R");
- let background_g = create_channel("Background.G");
- let background_b = create_channel("Background.B");
-
- let layer = Layer::new(
- size,
- LayerAttributes::named("test-image"),
- Encoding::FAST_LOSSLESS,
- AnyChannels::sort(smallvec![ // the order does not actually matter
- foreground_r, foreground_g, foreground_b, foreground_a,
- background_r, background_g, background_b
- ]),
- );
-
- let image = Image::from_layer(layer);
-
- println!("writing image {:#?}", image);
- image.write().to_file("groups.exr").unwrap();
-
- println!("created file groups.exr");
-} \ No newline at end of file