From 6bcbad7a9678516982dd3247ad717a9fa3038ccc Mon Sep 17 00:00:00 2001 From: fabolous005 Date: Mon, 27 Nov 2023 14:31:35 +0100 Subject: [PATCH] finish --- Cargo.toml | 3 +++ modraw.png | Bin 0 -> 30168 bytes src/main.rs | 42 ++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 modraw.png diff --git a/Cargo.toml b/Cargo.toml index 46e97e2..61e87d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,3 +6,6 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +image = "0.24.7" +clap = { version = "4.4.8", features = ["derive"] } +rand = "0.8.5" diff --git a/modraw.png b/modraw.png new file mode 100644 index 0000000000000000000000000000000000000000..4b6ae315281d405d1a9944cb31128f5dfec7dbab GIT binary patch literal 30168 zcmeI*v8t437zE%|8xaI+TU&1;;e>b^5wQ#y;dIu5Wk{C;>FiPjyny5)v`G`21k&YF zl4oG6Ws3g-2EN^ed8c}qet&xL{M&~Q9zQspP7kl2UA^>slh6ITzW@8-?!D9L-LKbI zU%h&N=gx0_2P(WdsNr zFIc1&UVxmjNYTOM%m@~>g%==aEJhBz0AYfKY~cmS84C~^Qj9cUv0Hcna>hb~i4G}h zu=EyQfCOvrpg^!p$)G42mo?ec!U_^B2TY8pA>*~Mf&>c?DP)*<=`E}v!J@;66fY%q z3oA&lFadHV1rFK53KA?vyfA5yqPDPt1Z(f0K(I{7pv=m+h#K0$3KA>_OpK@@~0dgh<4%xyA5-di%FlmsYwy=T(Yww^yuuRFI z%*wck8rs4N5-bNyjHn^wwXlK&3lJ$}n0Vtpg^!p$)L>2xQH6s!U_^B2TY8p zA>*~Mf&>c?DP)*<=`E}v!J@;66fY%q3oA&lFadHV1rFK53KA?vyfA5yqPDPt1Z(f0 zK(I{7pv=m+h#K0$3KA>_OpK@@~0dgh< z4%xyA5-di%FlmsYwy=T(Yww^yuuRFI%*wck8rs4N5-bNyjHn^wwXlK&3lJ$}n0Vtpg^!p$)L>2xQH6s!U_^B2TY8pA>*~Mf&>c?DP)*<=`E}v!J@;66fY%q3oA&l zFadHV1rFK53KA?vyfA5yqPDPt1Z(f0K(I{7pv=m+h#K0$3KA>_OpK@@~0dgh<4%xyA5-di%FlmsYwy=T(Yww^yuuRFI%*wck z8rs4N5-bNyjHn^wwXlK&3lJ$}n0Vtpg^!p$)L>2xQH6s!U_^B2TY8pA>*~M zf&>c?DP)*<=`E}v!J@;66fY%q3oA&lFadHV1rFK53KA?vyfA5yqPDPt1Z(f0K(I{7 jpv=m+h#K0$3i9ao&oB4>x_OcRX1)IA`PFY, Vec> = ImageBuffer::new(args.width, args.width); + let mut colors: Vec<[u8; 3]> = vec![]; + for x in 0..img.width() { + for y in 0..img.height() { + let result: usize = (x * y % args.modulo).try_into().unwrap(); + if colors.get(result).is_some() { + img.put_pixel(x, y, Rgb(colors[(x * y % args.modulo) as usize])); + } else { + colors.insert(result, [generate_random(0, 255), generate_random(0, 255), generate_random(0, 255)]); + } + } + } + img.save("modraw.png").expect("Failed to save image"); + println!("{colors:?}"); + println!("{:?}", colors.len()); +} + +fn generate_random(start: u8, end: u8) -> u8 { + let mut rng = rand::thread_rng(); + // rng.gen_range(std::char::from_u32(start).unwrap()..=std::char::from_u32(end).unwrap()) + rng.gen_range(start..=end) +} +