Я пытаюсь получить доступ к данным других пикселей во время зацикливания этих пикселей.
extern crate image; // 0.19.0
const IMG_H: u32 = 10;
const IMG_W: u32 = 10;
fn foo(imgbuf: &mut image::ImageBuffer<image::Luma<u8>, Vec<u8>>, points: &Vec<u16>) {
for (_x, _y, pixel) in imgbuf.enumerate_pixels_mut() {
for p in points {
let x2 = *p as u32 / IMG_H;
let y2 = *p as u32 % IMG_W;
let i = imgbuf.get_pixel(x2, y2)[0];
*pixel = image::Luma([i]);
}
}
}
Я получаю эту ошибку:
error[E0502]: cannot borrow `*imgbuf` as immutable because it is also borrowed as mutable
--> src/lib.rs:11:21
|
7 | for (_x, _y, pixel) in imgbuf.enumerate_pixels_mut() {
| ------ - mutable borrow ends here
| |
| mutable borrow occurs here
...
11 | let i = imgbuf.get_pixel(x2, y2)[0];
| ^^^^^^ immutable borrow occurs here
Есть ли другое решение, кроме дублированиябуфер изображения для получения доступа к определенным значениям?