use image::{GenericImageView, ImageReader, ImageResult};
use ndim::core::NdArray;
fn main() -> ImageResult<()> {
let img: image::DynamicImage = ImageReader::open("asset/scenery.png")?.decode()?;
let pixels: image::Pixels<image::DynamicImage> = img.pixels();
let shape: [usize; 2] = [img.height() as usize, img.width() as usize];
let mut pix_arr: NdArray<[u8; 4], 2> = NdArray::zeros(shape);
pixels.for_each(|px: (u32, u32, image::Rgba<u8>)| {
let idx: [usize; 2] = [px.1 as usize, px.0 as usize];
let rgba: [u8; 4] = px.2 .0;
pix_arr[idx] = rgba;
});
assert_eq!(pix_arr[[1, 12]], [170, 180, 192, 255]);
Ok(())
}