diff options
author | metamuffin <metamuffin@disroot.org> | 2022-11-21 16:59:50 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-11-21 16:59:50 +0100 |
commit | 5248831232fa22a1f3d6515f7f6c7bee8994faf2 (patch) | |
tree | fdbff884248948d124ab864e21d65fe49c6ca0e2 /dhwt-codec/src/bin/export.rs | |
download | video-codec-experiments-5248831232fa22a1f3d6515f7f6c7bee8994faf2.tar video-codec-experiments-5248831232fa22a1f3d6515f7f6c7bee8994faf2.tar.bz2 video-codec-experiments-5248831232fa22a1f3d6515f7f6c7bee8994faf2.tar.zst |
unify repos
Diffstat (limited to 'dhwt-codec/src/bin/export.rs')
-rw-r--r-- | dhwt-codec/src/bin/export.rs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/dhwt-codec/src/bin/export.rs b/dhwt-codec/src/bin/export.rs new file mode 100644 index 0000000..73f3067 --- /dev/null +++ b/dhwt-codec/src/bin/export.rs @@ -0,0 +1,42 @@ +use clap::Parser; +use dhwt_codec::io::{infile, read_videobuf}; +use std::io::{stdout, BufWriter, Write}; + +#[derive(Parser)] +#[clap(about)] +struct ExportArgs { + #[arg(short)] + x: usize, + #[arg(short)] + y: usize, + #[arg(short)] + z: usize, + + #[arg(short, long, default_value = "3")] + channels: usize, + + infile: String, +} + +fn main() { + let args = ExportArgs::parse(); + + let mut i = infile(&args.infile); + let mut writer = BufWriter::new(stdout()); + + let mut channels = vec![]; + for _ in 0..args.channels { + channels.push(read_videobuf(&mut i)) + } + + for z in 0..args.z { + for y in 0..args.y { + for x in 0..args.x { + for c in 0..args.channels { + writer.write_all(&[channels[c][x][y][z] as u8]).unwrap(); + } + } + } + } + writer.flush().unwrap(); +} |