Crate font8x8 [−] [src]
8x8 monochrome bitmap fonts for rendering
This crate contains a Rust implementation of a public domain 8-bit by 8-bit font.
Usage
To use this crate, add to your Cargo.toml
:
[dependencies]
font8x8 = "0.1"
Then, in your code:
extern crate font8x8; use font8x8;
Example
Working directly with constants
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
constant provided by our library.
Specifically, we will be working with GREEK[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
.
extern crate font8x8; use font8x8::GREEK; fn main() { for x in &GREEK[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):
█ ██ █
██
██
██
██ █
██
and, it's meant to look like this: ΐ
.
On the miscellanous characters included
These characters are provided as-is, and some don't have a proper unicode point.
They are provided in the MISC
and SGA
contants. For a description, please
read the constant documentation.
Credits
Initially extracted from an asm
file, fetched from a now broken link:
http://dimensionalrift.homelinux.net/combuster/mos3/?p=viewsource&file=/modules/gfx/font8_8.asm
It was then ported to a C header file, also in the Public Domain, https://github.com/dhepper/font8x8.
This crate is an extension of that work.
Constants
BASIC |
Contains an 8x8 font map for unicode points |
BLOCK |
Contains an 8x8 font map for unicode points |
BOX |
Contains an 8x8 font map for unicode points |
CONTROL |
Contains an 8x8 font map for unicode points |
GREEK |
Contains an 8x8 font map for unicode points |
HIRAGANA |
Contains an 8x8 font map for unicode points |
LATIN |
Contains an 8x8 font map for unicode points |
MISC |
A miscellanous set of characters. |
SGA |
Special characters with private unicode points. |