17 个版本

使用旧的 Rust 2015

0.3.1 2021 年 4 月 5 日
0.2.7 2020 年 11 月 26 日
0.2.5 2019 年 6 月 8 日
0.2.4 2018 年 8 月 1 日
0.1.1 2018 年 3 月 28 日

#16 in 渲染

Download history 1380/week @ 2024-03-14 1672/week @ 2024-03-21 1174/week @ 2024-03-28 1037/week @ 2024-04-04 1884/week @ 2024-04-11 1685/week @ 2024-04-18 1575/week @ 2024-04-25 1699/week @ 2024-05-02 1824/week @ 2024-05-09 1769/week @ 2024-05-16 1966/week @ 2024-05-23 2237/week @ 2024-05-30 1344/week @ 2024-06-06 1755/week @ 2024-06-13 1449/week @ 2024-06-20 1777/week @ 2024-06-27

6,653 每月下载
21 个crate(7 个直接)中使用

MIT 许可证

285KB
2K SLoC

8x8 单色位图字体,用于渲染。用 Rust 实现。

crates.io docs Build Status

一组 8x8 位图字体中的 Unicode 字符。

此 crate 与 no-std 兼容。

使用方法

使用旧的 C-Header 常量

将以下内容添加到您的 Cargo.toml

[dependencies]
font8x8 = { version = "0.3", default-features = false }
extern crate font8x8

use font8x8::legacy::BASIC_LEGACY;    // U+0000 - U+007F
use font8x8::legacy::CONTROL_LEGACY;  // U+0080 - U+009F
use font8x8::legacy::LATIN_LEGACY;    // U+00A0 - U+00FF

use font8x8::legacy::BOX_LEGACY;      // U+2500 - U+257F
use font8x8::legacy::BLOCK_LEGACY;    // U+2580 - U+259F
use font8x8::legacy::HIRAGANA_LEGACY; // U+3040 - U+309F
use font8x8::legacy::GREEK_LEGACY;    // 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

使用 Unicode 字符

将以下内容添加到您的 Cargo.toml

[dependencies]
font8x8 = "0.3"
extern crate font8x8

use font8x8::BASIC_FONTS;
use font8x8::CONTROL_FONTS;
use font8x8::LATIN_FONTS;

use font8x8::BOX_FONTS;
use font8x8::BLOCK_FONTS;
use font8x8::HIRAGANA_FONTS;
use font8x8::GREEK_FONTS;

use font8x8::MISC_FONTS;
use font8x8::SGA_FONTS;

文档

要生成 crate 的文档,您可以使用

cargodoc -pfont8x8 --no-deps --open

从终端。

强烈建议您检查每个常量的 在线文档,其中包含包含的字符列表以及 ASCII 艺术渲染。

我们鼓励您深入了解 源代码,它相当简单。

示例

直接使用旧常量

假设我们想要打印出属于希腊子集的第一个字符。在这种情况下,它对应于 unicode U+0390,描述为 iota with tonos and diaeresis,我们将从库提供的 GREEK_LEGACY 常量中检索它。

具体来说,我们将处理 GREEK_LEGACY[0],这是一个具有八个单独字节容量的字节数组 ([u8; 8])。

这是一个程序,它将通过解析数组的每个字节,逐位检查,并在终端中打印字符。对于 0 打印一个空格 " ",对于 1 打印 ""

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!()
    }
}

生成的输出应该大致如下(这取决于您的终端字体设置)

 █ ██ █  

   ██    
   ██    
   ██    
   ██ █  
    ██   

并且,它应该看起来像这样:ΐ

以Unicode字符形式处理字体

我们还可以将Rust字符串和字符转换为符号。

这次,我们不是使用GREEK_LEGACY常量的索引,而是使用特例方法 UnicodeFonts::get,通过一个 char 作为键来检索符号渲染。

extern crate font8x8;

use font8x8::{GREEK_FONTS, UnicodeFonts};

fn main() {
    if let Some(glyph) = GREEK_FONTS.get('ΐ') {
        for x in &glyph {
            for bit in 0..8 {
                match *x & 1 << bit {
                    0 => print!(" "),
                    _ => print!(""),
                }
            }
            println!()
        }
    }
}

功能

默认

默认功能包括 unicodestd

有关使用某些或全部功能的信息,请参阅Cargo Manifest格式的功能部分

unicode

提供了一个字体常量的包装器,与相应的Unicode点配对。

有关更多信息,请参阅unicode模块文档

std

启用使用 std Rust库。禁用此功能以运行 no_std 程序。

致谢

摘要:用于渲染的8x8单色位图字体。使用Rust实现。

作者

  • 请阅读 Cargo.toml 清单以获取作者列表。

许可证:MIT许可证。

这些头文件直接来源于从以下地址获取的汇编器文件: http://dimensionalrift.homelinux.net/combuster/mos3/?p=viewsource&file=/modules/gfx/font8_8.asm

原始头文件

; Summary: `font8_8.asm`
; 8x8 monochrome bitmap fonts for rendering
;
; Author:
;     Marcel Sondaar
;     International Business Machines (public domain VGA fonts)
;
; License:
;     Public Domain
;

C头文件

; Summary: `font8x8.h`
; 8x8 monochrome bitmap fonts for rendering
;
; https://github.com/dhepper/font8x8
;
; Author: Daniel Hepper <daniel@hepper.net>
; License: Public Domain

无运行时依赖

功能