diff options
author | Michal Nazarewicz <mina86@mina86.com> | 2018-08-18 19:40:16 +0100 |
---|---|---|
committer | David Peter <sharkdp@users.noreply.github.com> | 2018-08-18 20:58:03 +0200 |
commit | 5c95b8803b7c6b831f16df85e5775e33b1e5f7ea (patch) | |
tree | b8f1e961ba88cf899b51418b46121b735540e532 | |
parent | 5b421b455d2df28e21f3b49b86ede3a738d12b4a (diff) |
Avoid floating point arithmetic in RGB→8-bit ANSI approximation
-rw-r--r-- | src/terminal.rs | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/terminal.rs b/src/terminal.rs index 4ebf9478..3b0f82ae 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -13,14 +13,10 @@ fn rgb2ansi(r: u8, g: u8, b: u8) -> u8 { } else if r > 248 { WHITE } else { - let fr = f32::from(r); - (((fr - 8.) / 247.) * 24.) as u8 + 232 + ((r - 8) as u16 * 24 / 247) as u8 + 232 } } else { - let fr = f32::from(r); - let fg = f32::from(g); - let fb = f32::from(b); - 16 + (36 * (fr / 255. * 5.) as u8) + (6 * (fg / 255. * 5.) as u8) + (fb / 255. * 5.) as u8 + 36 * (r / 51) + 6 * (g / 51) + (b / 51) + 16 } } |