#bitmap-font #font #unicode #monochrome #pixel #bitmap #embedded

unifont

提供单色Unicode位图字体。半角字符宽度为8x16像素,全角字符宽度为16x16像素。

3个版本 (稳定)

1.1.0+data-15.1.052024年4月24日
1.0.0+data-15.1.052024年4月1日
0.1.0 2018年6月1日

#370 in 编码


用于 ectoplasm

MIT 协议

1MB
276

unifont-rs

Unifont for Rust

提供覆盖整个Unicode基本多语言平面的单色位图字体。半角字符宽度为8x16像素,全角字符宽度为16x16像素。

功能

  • 易于使用
  • 访问原始二进制数据
  • #[no_std] 用于嵌入式使用
  • 内存占用小
  • 基本的i18n支持

API

fn get_glyph(c: char) -> Option<&'static Glyph>;
fn enumerate_glyphs() -> impl Iterator<Item = (char, &'static Glyph)>;

enum Glyph {
    Halfwidth([u8; 16]),
    Fullwidth([u16; 16]),
}

impl Glyph {
    fn get_pixel(&self, x: usize, y: usize) -> bool;
    fn get_width(&self) -> usize;
    fn is_fullwidth(&self) -> bool;
}

/// Preprocess text so that it may be rendered via Unifont.
pub fn preprocess_text(text: &str) -> String;

示例代码

示例代码位于 examples/banner.rs

使用以下命令运行二进制文件

cargo run --example banner UniFont

它将产生以下输出

                                                        
                                                        
                                                        
                    #                                   
 #    #             #    ######                    #    
 #    #                  #                         #    
 #    #  # ###     ##    #        ####   # ###     #    
 #    #  ##   #     #    #       #    #  ##   #  #####  
 #    #  #    #     #    #####   #    #  #    #    #    
 #    #  #    #     #    #       #    #  #    #    #    
 #    #  #    #     #    #       #    #  #    #    #    
 #    #  #    #     #    #       #    #  #    #    #    
 #    #  #    #     #    #       #    #  #    #    #    
  ####   #    #   #####  #        ####   #    #     ##  
                                                        
                                                        

i18n (国际化)

提供基本预处理以显示非拉丁语脚本中的文本,例如阿拉伯语。

尝试按以下方式运行示例

cargo run --example banner "أبجد"

它将产生以下输出

                           ##   
                          #     
                           ##   
                          #     
                            #   
                            #   
    #                       #   
     #              #       #   
      #   ###        #      #   
 #    #      ##      #      #   
 #####################      #   
                                
           #                    
                   #            
                                
                                

工作原理

在编译时,build.rs 脚本解析 data/unifont-*.hex 文件并生成Rust代码。

无运行时依赖