feat: 灯光跟随屏幕内容。

feat: 灯光跟随屏幕内容。
This commit is contained in:
2022-11-24 23:21:46 +08:00
parent 1b10c6bea9
commit 56edd8ac77
7 changed files with 139 additions and 84 deletions

View File

@@ -1,5 +1,4 @@
use color_space::{Hsv, Rgb};
use paris::info;
use serde::Serialize;
#[derive(Clone, Copy)]
@@ -18,28 +17,6 @@ impl LedColor {
pub fn from_hsv(h: f64, s: f64, v: f64) -> Self {
let rgb = Rgb::from(Hsv::new(h, s, v));
// let h = h % 360;
// let rgb_max = v * 255.0;
// let rgb_min = rgb_max * (1.0 - s as f32);
// let i = h / 60;
// let diff = h % 60;
// let rgb_adj = (rgb_max - rgb_min) * diff as f32 / 60.0;
// let bits: [u8; 3] = if i == 0 {
// [rgb_max as u8, (rgb_min + rgb_adj) as u8, rgb_min as u8]
// } else if i == 1 {
// [(rgb_max - rgb_adj) as u8, rgb_max as u8, rgb_min as u8]
// } else if i == 2 {
// [rgb_min as u8, rgb_max as u8, (rgb_min + rgb_adj) as u8]
// } else if i == 3 {
// [rgb_min as u8, (rgb_max - rgb_adj) as u8, rgb_max as u8]
// } else if i == 4 {
// [(rgb_min + rgb_adj) as u8, rgb_min as u8, rgb_max as u8]
// } else {
// [rgb_max as u8, rgb_min as u8, (rgb_max - rgb_adj) as u8]
// };
Self { bits: [rgb.r as u8, rgb.g as u8, rgb.b as u8] }
}

View File

@@ -81,12 +81,11 @@ impl Screenshot {
b / cell_size as f64,
);
let hsv = Hsv::from(rgb);
info!("HSV: {:?}", [hsv.h, hsv.s, hsv.v]);
let color = LedColor::from_hsv(hsv.h, hsv.s * 10.0, hsv.v / 2.0);
info!("color: {:?}", color.get_rgb());
// info!("HSV: {:?}", [hsv.h, hsv.s, hsv.v]);
let color = LedColor::from_hsv(hsv.h, hsv.s, hsv.v);
// info!("color: {:?}", color.get_rgb());
colors.push(color);
}
colors.reverse();
return Ok(colors);
}
None => Ok(vec![]),