diff --git a/src/main.rs b/src/main.rs index d389105..02d9ee0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,10 +14,14 @@ use rscam::{Camera, Config}; fn main() { let mut camera_open = false; let app = App::default(); - let mut wind = Window::new(100, 100, 400, 300, "Hello from rust"); - let mut frame = Frame::default_fill(); - wind.end(); - wind.show(); + let mut camera_window = Window::new(100, 100, 400, 300, "Camera Video Output Window"); + let mut camera_frame = Frame::default_fill(); + camera_window.end(); + camera_window.show(); + let mut color_window = Window::new(100, 600, 400, 300, "Video Output Window"); + let mut color_frame = Frame::default_fill(); + color_window.end(); + color_window.show(); // app.run().unwrap(); // 打开摄像头设备 let mut camera = Camera::new("/dev/video0").unwrap(); @@ -44,15 +48,20 @@ fn main() { Ok(data) => { let start = Instant::now(); let img = image::load_from_memory(&data).unwrap(); - let rgb_data = img.to_luma8(); + let l_data = img.to_luma8(); + let rgb_data = img.to_rgb8(); if w == 0 { - w = rgb_data.width() as i32; - h = rgb_data.height() as i32; + w = l_data.width() as i32; + h = l_data.height() as i32; } - let fltk_image = - RgbImage::new(&rgb_data.as_raw(), w, h, ColorDepth::L8).unwrap(); - frame.set_image(Some(fltk_image)); - frame.redraw(); + let fltk_l_image = + RgbImage::new(&l_data.as_raw(), w, h, ColorDepth::L8).unwrap(); + let fltk_rgb_image = + RgbImage::new(&rgb_data.as_raw(), w, h, ColorDepth::Rgb8).unwrap(); + camera_frame.set_image(Some(fltk_l_image)); + color_frame.set_image(Some(fltk_rgb_image)); + camera_frame.redraw(); + color_frame.redraw(); let duration = start.elapsed(); println!("Time elapsed in DrawImage is: {:?}", duration); }