diff --git a/mark-bin/src/main.rs b/mark-bin/src/main.rs index 0b43601..1d98241 100644 --- a/mark-bin/src/main.rs +++ b/mark-bin/src/main.rs @@ -216,7 +216,7 @@ impl DitherCmd { .map(|c| c.0.into_format().into_color()) .collect::>(); let palette = Palette::::new(colors); - A::run(image, palette) + A::run(image, &palette) } } diff --git a/mark/src/dither.rs b/mark/src/dither.rs index 4e29e9f..bdec046 100644 --- a/mark/src/dither.rs +++ b/mark/src/dither.rs @@ -108,7 +108,7 @@ impl Palette { //////////////// pub trait Algorithm { - fn run(image: RgbaImage, palette: Palette) -> RgbaImage; + fn run(image: RgbaImage, palette: &Palette) -> RgbaImage; } pub struct AlgoThreshold; @@ -120,7 +120,7 @@ where C: IntoColor, D: Difference, { - fn run(mut image: RgbaImage, palette: Palette) -> RgbaImage { + fn run(mut image: RgbaImage, palette: &Palette) -> RgbaImage { for pixel in image.pixels_mut() { let color: C = util::pixel_to_color(*pixel); let color = palette.nearest::(color); @@ -151,7 +151,7 @@ where C: IntoColor, D: Difference, { - fn run(mut image: RgbaImage, palette: Palette) -> RgbaImage { + fn run(mut image: RgbaImage, palette: &Palette) -> RgbaImage { let mut rng = SmallRng::seed_from_u64(0); let range_radius = 1.0; @@ -223,7 +223,7 @@ where D: Difference, Srgb: IntoColor, { - fn run(mut image: RgbaImage, palette: Palette) -> RgbaImage { + fn run(mut image: RgbaImage, palette: &Palette) -> RgbaImage { for y in 0..image.height() { for x in 0..image.width() { let pixel = image.get_pixel(x, y); @@ -253,7 +253,7 @@ where D: Difference, Srgb: IntoColor, { - fn run(mut image: RgbaImage, palette: Palette) -> RgbaImage { + fn run(mut image: RgbaImage, palette: &Palette) -> RgbaImage { for y in 0..image.height() { for x in 0..image.width() { let pixel = image.get_pixel(x, y);