diff options
author | Jacob Janzen <jacob.a.s.janzen@gmail.com> | 2022-08-23 11:31:41 -0500 |
---|---|---|
committer | Jacob Janzen <jacob.a.s.janzen@gmail.com> | 2022-08-23 11:31:41 -0500 |
commit | 0bfec05ee0a40af937ec4f8aa812245dcd90bf64 (patch) | |
tree | 42b6e04eed749e494b881c7c6559f8abad8f6d36 /src/main.rs |
created project
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..39c6117 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,32 @@ +use std::env; +use std::fs::File; +use std::process; + +use bubbles::Config; +use bubbles::Gif; + +fn main() { + let config = Config::build(env::args()).unwrap_or_else(|err| { + eprintln!("Error printing arguments: {err}"); + process::exit(1); + }); + + // create Gif data + let mut gif = Gif::create_from_config(&config, 100); + + // Create encoder + let mut image = File::create(config.out_file).unwrap(); + let mut encoder = gif::Encoder::new(&mut image, config.width, config.height, &[]).unwrap(); + + // Repeat infinitely + if let Err(_) = encoder.set_repeat(gif::Repeat::Infinite) { + process::exit(1); + } + + // Create pixel array + bubbles::fill_canvas(&mut gif); + let frame = gif::Frame::from_rgb(gif.width, gif.height, &mut gif.pixels); + + // Write frame to file + encoder.write_frame(&frame).unwrap(); +} |