A collection of unicode characters in a 8x8 bitmap font.
Add this to your Cargo.toml
:
cargo
[dependencies]
font8x8 = "0.1"
You can use the constants provided in the legacy software.
```rust extern crate font8x8
use font8x8::legacy::BASICLEGACY; // U+0000 - U+007F use font8x8::legacy::CONTROLLEGACY; // U+0080 - U+009F use font8x8::legacy::LATIN_LEGACY; // U+00A0 - U+00FF
use font8x8::legacy::BOXLEGACY; // U+2500 - U+257F use font8x8::legacy::BLOCKLEGACY; // U+2580 - U+259F use font8x8::legacy::HIRAGANALEGACY; // U+3040 - U+309F use font8x8::legacy::GREEKLEGACY; // U+0390 - U+039C
use font8x8::legacy::MISC_LEGACY; // U+20A7, U+0192, U+00AA, U+00BA, // U+2310, U+2264, U+2265, U+0060, // U+1EF2, U+1EF3
use font8x8::legacy::SGA_LEGACY; // U+E541 - U+E55A
```
To generate the crate's documentation, you can use:
cargo doc -p font8x8 --no-deps --open
from the terminal.
It's highly recommended that you inspect the docs for each constant, as there is a listing of the included characters. Better yet, dive into the source, it's pretty straightforward.
Let's say we want to print out the first character belonging to the
greek subset. In this case, it corresponds to the unicode U+0390
described as iota with
tonos and diaeresis
, and we will retrieve it from the GREEK_LEGACY
constant provided by our library.
Specifically, we will be working with GREEK_LEGACY[0]
, which is an array of bytes with capacity for
eight separate bytes ([u8; 8]
).
Here's a program that will print the character to your terminal, by parsing each byte of the
array, inspecting it bit by bit, and printing an empty space " "
for 0
, and "█"
for 1
.
```rust extern crate font8x8;
use font8x8::legacy::GREEK_LEGACY;
fn main() { for x in &GREEK_LEGACY[0] { for bit in 0..8 { match *x & 1 << bit { 0 => print!(" "), _ => print!("█"), } } println!() } } ```
The generated output should mostly resemble this (it will depend on your terminal's font settings): ```text █ ██ █
██
██
██
██ █
██
```
and, it's meant to look like this: ΐ
.
We can also use UTF16-encoded text to render the font on stdout.
This time, instead of using the index of the GREEK_LEGACY constant, we can use the trait method Utf16Fonts::get
to retrieve the font rendering using the u16
as key.
```rust extern crate font8x8;
use font8x8::{GREEK_FONTS, Utf16Fonts};
fn main() { if let Some(fontrender) = GREEKFONTS.get('ΐ' as u16) { for x in &font_render { for bit in 0..8 { match *x & 1 << bit { 0 => print!(" "), _ => print!("█"), } } println!() } } } ```
The default features include 'unicode', which provides a wrapper for the font constants, tupled with their corresponding unicode point.
Summary: 8x8 monochrome bitmap fonts for rendering. Implemented in Rust.
Author: Joaquín Rosales globojorro@gmail.com
License: The Unlicense. http://unlicense.org.
These header files are directly derived from an assembler file fetched from:
http://dimensionalrift.homelinux.net/combuster/mos3/?p=viewsource&file=/modules/gfx/font8_8.asm
Original header:
; Summary: `font8_8.asm`
; 8x8 monochrome bitmap fonts for rendering
;
; Author:
; Marcel Sondaar
; International Business Machines (public domain VGA fonts)
;
; License:
; Public Domain
;
C header:
; Summary: `font8x8.h`
; 8x8 monochrome bitmap fonts for rendering
;
; https://github.com/dhepper/font8x8
;
; Author: Daniel Hepper <daniel@hepper.net>
; License: Public Domain