demo-font.rs
985 B · rust · 31 lines
1use mrlycore::errors::Result;2use mrlyfig::{ink, save, Board};34const WORDMARK: &str = "MRLYPROD";56fn main() -> Result<()> {7 let mut board = Board::square();8 let area = board.frame(0.08);9 let grid = mrlyfont::raster(WORDMARK);10 let rows = grid.len();11 let cols = grid[0].len();12 assert_eq!((rows, cols), (5, 47));13 let scale = (area.w / cols as f64).floor().max(1.0);14 let ox = ((board.width as f64 - cols as f64 * scale) / 2.0).round();15 let oy = ((board.height as f64 - rows as f64 * scale) / 2.0).round();16 let mut lit = 0;17 for (row, line) in grid.iter().enumerate() {18 for (col, &cell) in line.iter().enumerate() {19 if cell != 1 {20 continue;21 }22 lit += 1;23 let x = ox + col as f64 * scale;24 let y = oy + row as f64 * scale;25 board.rect(x, y, scale, scale, ink::fg());26 }27 }28 assert_eq!(lit, 103);29 save("demo-font", &board)?;30 Ok(())31}