diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..a6c9e61 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "incfunc" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +image = "0.24.7" +footile = "0.7.0" +pix = "0.13.3" +imageproc = "0.23.0" diff --git a/grid_image.png b/grid_image.png new file mode 100644 index 0000000..ef48f15 Binary files /dev/null and b/grid_image.png differ diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..2c8516f --- /dev/null +++ b/src/main.rs @@ -0,0 +1,56 @@ +use image::{RgbImage, Rgb}; +use pix::{matte::Matte8, Raster}; +use footile::{FillRule, Path2D, Plotter}; +use image::{ImageBuffer}; +use imageproc::drawing::draw_line_segment_mut; + + +fn main() { + let mut img = RgbImage::new(2000, 2000); + + for x in 15..=17 { + for y in 8..24 { + img.put_pixel(x, y, Rgb([255, 0, 0])); + img.put_pixel(y, x, Rgb([255, 0, 0])); + } + } + + let fish = Path2D::default() + .relative() + .pen_width(3.0) + .move_to(112.0, 24.0) + .line_to(-32.0, 24.0) + .cubic_to(-96.0, -48.0, -96.0, 80.0, 0.0, 32.0) + .line_to(32.0, 24.0) + .line_to(-16.0, -40.0) + .close() + .finish(); + let raster = Raster::with_clear(128, 128); + let mut p = Plotter::new(raster); + p.fill(FillRule::NonZero, &fish, Matte8::new(255)); + + + + let width = 2000; + let height = 2000; + let mut img: ImageBuffer, Vec> = ImageBuffer::new(width, height); + + // Define grid parameters + let grid_spacing = 50; + let grid_color = Rgb([0, 0, 0]); // Black color + + // Draw vertical grid lines + for x in (0..width).step_by(grid_spacing) { + draw_line_segment_mut(&mut img, (x as f32, 0.0), (x as f32, height as f32), grid_color); + } + + // Draw horizontal grid lines + for y in (0..height).step_by(grid_spacing) { + draw_line_segment_mut(&mut img, (0.0, y as f32), (width as f32, y as f32), grid_color); + } + + // Save the image + // img.save_with_format("grid_image.png", image::ImageFormat::Jpeg).expect("Failed to save image"); + img.save("grid_image.png").expect("Failed to save image"); +} +