use image::{ImageBuffer, Rgba}; use imageproc::{map::map_pixels_mut, window::display_image}; const WIDTH: u32 = 500; const HEIGHT: u32 = 500; const NUM_PIXELS: u32 = WIDTH * HEIGHT; const PIXEL_SIZE: u32 = 4; const NUM_BYTES: u32 = NUM_PIXELS * PIXEL_SIZE; fn main() { // let mut data = [0u8; NUM_BYTES as usize]; // let buf = &mut data[..]; let buf = unsafe { let x = 1u8; let ptr = x as *mut _; std::slice::from_raw_parts_mut(ptr, NUM_BYTES as usize) }; let mut image: ImageBuffer, &mut [u8]> = ImageBuffer::from_raw(WIDTH, HEIGHT, buf).expect("No image"); map_pixels_mut(&mut image, |x, y, p| Rgba([100, p.0[1], p.0[2], 255])); display_image("", &image, WIDTH, HEIGHT); }