Pi66

walrs
pywal but if its Fast-Minimal-Simple
git clone https://git.pi66.xyz/walrs

← back to log

feat: add method to lighten color toward white

author: pixel2175
date: 2025-06-24 01:26
hash: 37538e6d9e75a6189911989301d32878c1bb3a19

Diffstat:

M

src/get_colors.rs
21 ++++++++++++++++++++----------
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
diff --git a/src/get_colors.rs b/src/get_colors.rs
index 6243a3b..481b4ed 100644
--- a/src/get_colors.rs
+++ b/src/get_colors.rs
@@ -24,11 +24,12 @@ fn remove_duplicates(colors: Vec<(u8, u8, u8)>) -> Vec<(u8, u8, u8)> {
     let set: HashSet<_> = colors.into_iter().collect();
     set.into_iter().collect()
 }
-
-fn to_gray(r: u8, g: u8, b: u8, v: u8) -> (u8, u8, u8) {
-    let mut gray = (0.3 * r as f32 + 0.59 * g as f32 + 0.11 * b as f32).round() as u8;
-    gray = gray.saturating_add(v);
-    (gray, gray, gray)
+fn to_gray(r: u8, g: u8, b: u8, v: f32) -> (u8, u8, u8) {
+    (
+        (r as f32 + (255.0 - r as f32) * v) as u8,
+        (g as f32 + (255.0 - g as f32) * v) as u8,
+        (b as f32 + (255.0 - b as f32) * v) as u8,
+    )
 }

 fn generate_variation(color: (u8, u8, u8), offset: i8) -> (u8, u8, u8) {
@@ -148,9 +149,15 @@ pub fn get_colors(

     let (mut r, mut g, mut b) = collect_rgb[20];
     (r, g, b) = adjust_rgb(r, g, b, 40, 60);
-    (r, g, b) = to_gray(r, g, b, 15);
+    println!("before: #{:02x}{:02x}{:02x}", r, g, b);
+    (r, g, b) = to_gray(r, g, b, 0.4);
+    println!("after : #{:02x}{:02x}{:02x}", r, g, b);
     done[7] = (r, g, b);
     done[15] = (r, g, b);
-
+    //
+    // for color in &done {
+    //     println!("#{:02x}{:02x}{:02x}", color.0, color.1, color.2,)
+    // }
+    //
     (done, *alpha)
 }