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 U+0000 - U+007F (basic latin)

BLOCK

Contains an 8x8 font map for unicode points U+2580 - U+259F (block elements)

BOX

Contains an 8x8 font map for unicode points U+2500 - U+257F (box drawing)

CONTROL

Contains an 8x8 font map for unicode points U+0080 - U+009F (C1/C2 control)

GREEK

Contains an 8x8 font map for unicode points U+0390 - U+03C9 (greek characters)

HIRAGANA

Contains an 8x8 font map for unicode points U+3040 - U+309F (Hiragana)

LATIN

Contains an 8x8 font map for unicode points U+00A0 - U+00FF (extended latin)

MISC

A miscellanous set of characters.

SGA

Special characters with private unicode points. U+E541 - U+E55A