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 渲染
6,653 每月下载
在 21 个crate(7 个直接)中使用
285KB
2K SLoC
8x8 单色位图字体,用于渲染。用 Rust 实现。
一组 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!()
}
}
}
功能
默认
默认功能包括 unicode
和 std
。
有关使用某些或全部功能的信息,请参阅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