3 changed files with 76 additions and 76 deletions
@ -0,0 +1,65 @@
|
||||
|
||||
|
||||
pub enum Color { |
||||
Black, |
||||
White |
||||
} |
||||
|
||||
impl Color { |
||||
pub fn get_bit_value(&self) -> u8 { |
||||
match self { |
||||
Color::White => 1u8, |
||||
Color::Black => 0u8,
|
||||
} |
||||
} |
||||
|
||||
pub fn get_byte_value(&self) -> u8 { |
||||
match self { |
||||
Color::White => 0xff, |
||||
Color::Black => 0x00, |
||||
} |
||||
} |
||||
|
||||
//position counted from the left (highest value) from 0 to 7
|
||||
//remember: 1 is white, 0 is black
|
||||
pub(crate) fn get_color(input: u8, pos: u8, color: &Color) -> Color { |
||||
match Color::is_drawable_pixel(input, pos) { |
||||
true => Color::normal_color(color), |
||||
false => Color::inverse_color(color) |
||||
} |
||||
} |
||||
|
||||
fn inverse_color(color: &Color) -> Color { |
||||
match color { |
||||
Color::White => Color::Black, |
||||
Color::Black => Color::White, |
||||
} |
||||
} |
||||
|
||||
|
||||
fn normal_color(color: &Color) -> Color { |
||||
match color { |
||||
Color::White => Color::White, |
||||
Color::Black => Color::Black, |
||||
} |
||||
} |
||||
|
||||
//position counted from the left (highest value) from 0 to 7
|
||||
//remember: 1 is white, 0 is black
|
||||
pub(crate) fn is_drawable_pixel(input: u8, pos: u8) -> bool { |
||||
((input >> (7 - pos)) & 1u8) > 0u8 |
||||
} |
||||
|
||||
|
||||
pub(crate) fn convert_color(input: u8, pos: u8, foreground_color: &Color) -> Color { |
||||
//match color:
|
||||
// - white for "nothing to draw"/background drawing
|
||||
// - black for pixel to draw
|
||||
//
|
||||
//foreground color is the color you want to have in the foreground
|
||||
match Color::is_drawable_pixel(input, pos) { |
||||
true => Color::normal_color(foreground_color), |
||||
false => Color::inverse_color(foreground_color) |
||||
} |
||||
} |
||||
} |
||||
Loading…
Reference in new issue