1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/walkline-fontmaker-client

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

FontMaker Client

项目介绍

主要功能代码来自于 FontMaker 项目

以命令行方式生成适合 MicroPython New FontLib 项目使用的字库

字库说明

使用v1.0.0之后版本生成的字库与之前版本的字库不兼容

本项目生成的字库与其它字库的区别如下:

  • 文件头,包含字库文件相关信息
  • 字符尺寸固定,例如选择字体大小为 16 像素,那么字符点阵的宽和高都为 16 像素
  • 扫描方式为水平扫描(垂直扫描方式获取的数据有问题,所以暂不支持)
  • 字节顺序支持MSBLSB(但垂直扫描方式不支持MSB
  • 包含GB2312索引表,暂不支持外部索引表文件
  • 支持使用文本文件生成自定义字库

获取可执行文件

可以自行编译代码,或者从 binary 分支下载

要查看版本号可使用如下命令:

$ FontMaker_Cli.exe --version

如何生成字库

最简单的方法是只指定字体名称,其它参数使用默认值

$ FontMaker_Cli.exe -f "幼圆"

这样得到的字库文件属性如下:

  • 文件名:combined.bin
  • 字体名称:幼圆
  • 字体大小:16 像素
  • 字体字重:普通
  • 水平偏移:0 像素
  • 垂直偏移:0 像素
  • 点阵宽度:16 像素
  • 点阵高度:16 像素
  • 字符宽度:固定宽度
  • 字节顺序:低字节在前
  • 扫描方式:垂直扫描
  • 包含GB2312 索引表

如果要生成微软雅黑大小 24垂直扫描字节高位在前文件名 yahei_24_hmsb.bin的字库文件,则使用如下命令:

$ FontMaker_Cli.exe -f "微软雅黑" -s 24 -sh -m -o yahei_24_hmsb.bin

如果要生成自定义字库,则使用如下命令:

$ FontMaker_Cli.exe -f "微软雅黑" --input filename.txt -o customized.bin

还可以使用 FontMaker Client GUI 这个简易窗口程序生成字库

如何使用字库

具体使用方法参考 fontlib.py 相关代码

命令行参数

-的为短命令,带--的为长命令,二选一使用

参数出现冲突时,如同时选择-l-m,则以后出现者为准

  • 必选参数

    • -f, --face FONTFACE:指定字体名称
  • 可选参数:字形相关

    • -s, --size FONTSIZE:字体大小,默认值:16
    • -n, --normal:字体字重为普通默认选择
    • -b, --bold:字体字重为加粗
    • -i, --italic:字体为斜体
  • 可选参数:字符点阵相关

    • -w, --width CHARWIDTH:字符点阵宽度,默认值:FONT_SIZE
    • -x, --offset-x OFFSETX:水平偏移量,默认值:0
    • -y, --offset-y OFFSETY:垂直偏移量,默认值:0
    • -sv, --scan-vertical:垂直方式扫描,默认选择
    • -sh, --scan-horizontal:水平方式扫描
    • -l, --lsb:字节低位在前,默认选择
    • -m, --msb:字节高位在前
    • -rd, --reverse-display:字符反显
  • 可选参数:文件相关

    • --charset FILENAME:指定字符集文件,生成自定义字库
    • --input FILENAME:使用文本文件生成自定义字库文件
    • -o, --output FILENAME:生成字库文件的文件名,默认值:combined.bin
  • 不可选参数

    • -h, --height CHAR_HEIGHT:字符点阵高度,默认值:FONT_SIZE
    • -d, --fixed-width:字符点阵宽度固定,默认选择
    • -v, --variable-width:字符点阵宽度可变
    • -t, --include-table:包含GB2312索引表,默认选择

附录:字库结构

字库结构分为 4 个部分:

  • 文件头
  • GB2312索引表
  • ASCII字符数据
  • GB2312字符数据

文件头

typedef struct tagFontLibHeader {
    BYTE magic[4];
    DWORD file_size;
    BYTE font_width;
    BYTE font_height;
    WORD char_count;
    BYTE has_index_table;
    BYTE scan_mode;
    BYTE byte_order;
    DWORD ascii_start;
    DWORD gb2312_start;
    char reserved[2];
} FL_Header, * PFL_Header;
  • [4] magic:文件识别代码,默认为FMUX,自定义字库为FMUY
  • [4] file_size:字库文件大小
  • [1] font_width:字体宽度
  • [1] font_height:字体高度
  • [2] char_count:包含字符总数
  • [1] has_index_table:是否包含GB2312索引表
  • [1] scan_mode:扫描方式
  • [1] byte_order:字节顺序
  • [4] ascii_startASCII字符数据起始地址
  • [4] gb2312_startGB2312自定义字符起始地址
  • [2] reserved:保留内容

GB2312索引表

因为MicroPython仅支持Unicode编码,且UnicodeGB2312无直接转换关系,所以必须使用一个索引表进行转换查询

ASCIIGB2312 字符数据

根据索引表顺序排列的字符点阵数据,每个字符都为固定尺寸,字符数据大小计算公式为:

((font_width - 1) // 8 + 1) * font_height

资源版权声明

/fonts/emoticons21.fon 文件来自于 u8g2 项目 /fonts/open-iconic.ttf 文件来自于 Open Iconic 项目

合作及交流

走线物联扇贝物联

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления (1)

все
4 месяцев назад

Участники (2)

все

Недавние действия

Загружен новый тег v0.1.3 4 месяца назад
Загружен новый тег v1.0.3 4 месяца назад
Загружен новый тег v0.1.5 4 месяца назад
Загружен новый тег v0.1.4 4 месяца назад
Загружен новый тег v0.1.2 4 месяца назад
Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/walkline-fontmaker-client.git
git@gitlife.ru:oschina-mirror/walkline-fontmaker-client.git
oschina-mirror
walkline-fontmaker-client
walkline-fontmaker-client
master