From: MegaBrutal Date: Fri, 15 Jul 2022 00:40:40 +0000 (+0200) Subject: Cycle through pixels X-Git-Url: http://git.megabrutal.com/?p=litoprism.git;a=commitdiff_plain;h=9bc260b356ac960de4d7533cbd6afe05b316d8db Cycle through pixels --- diff --git a/src/main.rs b/src/main.rs index 68a4034..a391e44 100644 --- a/src/main.rs +++ b/src/main.rs @@ -119,6 +119,7 @@ impl Canvas { fn advance_pen(mut self, offset: usize) -> Canvas { //Canvas { pen: self.pen + offset, img: self.img } self.pen += offset; + self.pen %= self.img.width() as usize * self.img.height() as usize; self } } @@ -134,7 +135,13 @@ fn rgb_encode_to_canvas(mut canvas: Canvas, data: &mut dyn Iterator) let mut counter = 0; for sp in ToRgbIter::new(data) { - let mut dp = pixels.next().ok_or(ImageError::dimension_error())?; + let mut dp = match pixels.next() { + Some(pixel) => pixel, + None => { + pixels = canvas.img.pixels_mut().skip(0); + pixels.next().ok_or(ImageError::dimension_error())? + } + }; println!("{:?}", sp); dp.0 = sp.0; counter += 1;