为行空板换个字体

2022-05-198716
AI 快速预览详细 收起
本文介绍了如何在行空板上更换触摸彩屏的字体。通过阅读unihiker库的GUI类模块,我们发现程序已经自带了安装字体的功能。用户只需将想要安装的字体文件复制到代码根目录,并使用gui.load_font('字体文件名')加载字体即可。这样就可以在行空板上展示个性化的字体效果。项目展示了具体的代码示例和效果图,非常适合STEM教育场景中的编程启蒙。

一、 项目起源

电子创客的"Hello World" 一般是点灯。但行空板有一块方便的触摸彩屏,那当然是 字体秀 了!

二、问题分析

通过阅读unihiker库的GUI类模块,我们发现,程序已经自带了安装字体的功能,这样我们就不需要手动在系统下安装了。安装字体函数如下(大概在 96 行):

    def load_font(self, path):
        import os
        from contextlib import redirect_stderr
        from fontTools import ttLib

        def font_name(font_path):
            font = ttLib.TTFont(font_path, ignoreDecompileErrors=True)
            ...
            def install_font(src_path):
                # copy the font to the Windows Fonts folder
                dst_path = os.path.join(
                                                                ...

当找不到字体时,代码会自动安装字体。

三、功能实现

那么我们只要将想要安装的字体复制到代码根目录,然后写入字体名即可,文件目录如下:

主要代码如下,

font_name = gui.load_font('fzxz.ttf')
gui.draw_text(x=20, y=88, color="#fc8c23", text="创客智造", font_size=36, font_family=font_name)

gui.draw_text(x=15, y=150, color='#5DAC81', text="Hello,UNIHIKER!", font_size=20)

四、效果展示

以下是效果图:

五、一些说明

  1. 因为第一次已经安装了字体,下次使用的时候,这句代码就可以去掉了。
    
    # font_name = gui.load_font('fzxz.ttf')
    ```然后代码可以改为:
    ```python
    gui = GUI()
    gui.draw_text(x=20, y=88, color="#fc8c23", text="创客智造", font=('方正小篆体',36))
    gui.draw_text(x=15, y=150, color='#5DAC81', text="Hello,UNIHIKER!", font_size=20)

2. 因为我们使用root账号登录系统的,所以字体是安装在 `/root/.fonts/` 目录。



创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
Forgotten
Forgotten
古风满满,楼主可以分享一下字体文件是怎么搞到的
- 没有更多了 -