From a23b117752f71e38170db931c792770071a180bf Mon Sep 17 00:00:00 2001 From: conglinyizhi Date: Sat, 7 Dec 2024 13:52:25 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(main):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=E5=83=8F=E6=8D=95=E8=8E=B7=E5=92=8C=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E6=8F=90=E5=8D=87=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=8F=AF=E8=AF=BB=E6=80=A7=E5=92=8C=E7=BB=B4=E6=8A=A4=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.rs | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/src/main.rs b/src/main.rs index 7f9afc8..4f788a3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -51,19 +51,20 @@ fn main() { let mut w = 0; let mut h = 0; if camera_open { - loop { - // 捕获一帧图像 - match camera.capture() { - Ok(data) => { - let start = Instant::now(); - let img = image::load_from_memory(&data).unwrap(); - let l_data = img.to_luma8(); - let mut rgb_data = img.to_rgb8(); - if w == 0 { - w = l_data.width() as i32; - h = l_data.height() as i32; - } - crossbeam::scope(|_| { + crossbeam::scope(|_| { + loop { + // 捕获一帧图像 + match camera.capture() { + Ok(data) => { + let start = Instant::now(); + let img = image::load_from_memory(&data).unwrap(); + let l_data = img.to_luma8(); + let mut rgb_data = img.to_rgb8(); + if w == 0 { + w = l_data.width() as i32; + h = l_data.height() as i32; + } + for tmp_x in 0..30 { for tmp_y in 0..60 { rgb_data.put_pixel(tmp_x, tmp_y, Rgb([102, 204, 255])); @@ -77,9 +78,7 @@ fn main() { color_frame.redraw(); let duration = start.elapsed(); println!("L8 Frame Draw use time: {:?}", duration); - }) - .unwrap(); - crossbeam::scope(|_| { + let fltk_l_image = RgbImage::new(l_data.as_raw(), w, h, ColorDepth::L8).unwrap(); camera_frame.set_image(Some(fltk_l_image)); @@ -87,16 +86,16 @@ fn main() { camera_frame.redraw(); let duration = start.elapsed(); println!("RGB8 Frame Draw use time: {:?}", duration); - }) - .unwrap(); - } - Err(e) => { - eprintln!("捕获错误: {}", e); - continue; + } + Err(e) => { + eprintln!("捕获错误: {}", e); + continue; + } } + app.wait(); } - app.wait(); - } + }) + .unwrap(); } }