u8g2自定义字体

通过u8g2的FAQ文档中发现u8g2中定义字体需要三个步骤,第一创建字体bdf文件,第二把字体bdf文件转换为c 代码,第三个步骤就是在u8g2中使用自定义的字体,我们分别说明一下:

一创建字体bdf

字体必须是bdf文件格式 只有bdf的字体文件才能使用u8g2提供的转换工具转化为C代码,在Windows中使用Fony 创建字体bdf文件。Fony 的下载地址为: http://hukka.ncn.fi/?fony

1、打开字体

把你要使用的字体先安装到电脑上,然后打开软件,导入 -》已安装的字体,即可打开字体文件

您也可以继续编辑字体,字体都是一些点阵的表达

2、导出bdf

点击文件-导出 可以把编辑好的字体导出bdf格式

二 bdf 转为c 代码

u8g2 提供了一个把bdf 转换为c 代码的工具bdfconv 下载地址为: https://github.com/olikraus/u8g2/tree/master/tools/font/bdfconv

注意该工具只能在windows下运行

将第一步创建的bdf文件和bdfconv放到一个目录中,然后运行

bdfconv -f 1 -m "32-255" -n fontname -0 myfont.c myfont.bdf

即可生成myfont.c文件 一下是参数的解释: -f 1 创建u8g2 字体 -m "32-255" 选择Unicode32到255 (具体的编码可通过Fony软件查看) -n fontname 字体的名字 -o myfont.c 创建的字体C文件 myfont.bdf 输入的bdf字体文件

创建myfont.c文件后就可以在u8g2中使用了,内容如下:

/*
  Fontname: LEDSled
  Copyright: 
  Glyphs: 95/256
  BBX Build Mode: 0
*/
const uint8_t ledsled[1890] U8G2_FONT_SECTION("ledsled") = 
  "_\0\4\3\5\5\3\5\6\24\27\0\370\16\370\16\377\2n\5g\7E \6\0\20\236\0!\14\303"
  "\371\231\241\213z\30\11\11\0\42\11f|\247\60q\60\61#\42\354\371\275$\42&\61&\61&\61\65"
  "!&\42sP}\60qA#\42&\61&\61&\61\65!\4$\42\352\371\265r\20!(\42$\42"
  "$\61$\61\63\61t\20%\42$\42$\61$\61$\61'q \1%(\362\371\325r\20)&("
  "U&%!&U&E\66\65x\20q\20)\42!G%G%V%V%(&y\20\1&\25"
  "\352\371\265r\20,\70\250\331A\204X\25UW\22\7\22\0'\10c|\233p\20\1(\20\347\371\245"
  "R!\245\243Y\251!)\255,\0)\20\347\371\245Q&%\264\221\260\224F+J\0*\24h\71\256"
  "!AqRS\64r\20#Ecb!A\1+\16h\71\256$&\265\311A\214\230n\0,\6b"
  "\330\231`-\7(\330\256p\20.\6B\370\231@/\17g\71\252\245hH=\210\224\220\224\24\0\60"
  "#\353\371\265r\20\42&!D!\64\42C\42C\61\42!,&Q#A\63A\63\61\64!%r"
  " \2\61\13\243\31\226\241\213\232\12]\0\62\25\353\371\265r\20*\70(\251\311A\210\344\240\244\226\7"
  "\42\0\63\23\352\371\261q\20)(\267\235\310\245\240\356&\16B\0\64\31\253\31\266!&!\65!%"
  "\42%\42%\61%r\20*)\270\241\10\0\65\21\351\371\261q\20\21(\247CC\71\235\35P\0\66"
  "\25\352\371\265r\20!\250\273\301\203\10\261*\252\256$\16$\0\67\32\313\31\266r\20\42&!\65!"
  "%\42%\42%\61%\17%)\270\241\10\0\70$\353\371\265r\20\42&!\65!%\42%\42%\61"
  "%r\20\42&\61%!\65!\65!\65!%r \2\71\35\353\371\265r\20\42&!\65!%\42"
  "%\42%\61%r\20*)\270\241\310\201\10\0:\12\3\371\231\60!,!\1;\13#\331\231\60!"
  ",\241\2\0<\17d\71\232\42\61\241DTDdD\2\0=\11\250\230\256q\17y\20>\13c\71"
  "\232\241w\22\24\22\0\77\22\353\371\265r\20*\70(\251\311A<\306\222\222\0@,\353\371\265r\20"
  "\42&!\42\61!\42!\42\61!\42\61!\261B\344 D\213\11\21\11\21\211\11\21\211\11\21\211\11"
  ")\221\3\21\0A\42\313\31\266r\20\42&!\65!%\42%\42%\61%r\20\42&\61%!\65"
  "!\65!\65!%\2B \352\371\261q\20)!%\42\63\42\63\42\63\42#E)\243dFDH"
  "DHn\342 \4\0C\23\352\371\261r\20!\250\273y\20\301\71A\15\17$\0D\37\352\371\261q"
  "\20)!%\42\63\42\63\42\63\42#\17\243\311\214\210\220\210\220\334\304A\10\0E\24\352\371\261r\20"
  "!\250\273\301\203\10\301\71A\15\17$\0F\22\312\31\262r\20!\250\273\301\203\10\301\71A\15\1G"
  "\24\352\371\265r\20!\250\273a\12\261*\252\256$\16$\0H \253\31\266!&!\65!%\42%"
  "\42%\61%r\20\42&\61%!\65!\65!\65!%\2I\22\351\371\255q\20-\247\331<\300\230"
  "\234\326\7\21\0J\31\313\371\265)\70(\251\261\230\304\224\204\324\204\324\204\324\204\224\310\201\10\0K\34"
  "\251\31\256!'$!$!#\42#\61\42C$\67\242fBHBHB\16\0L\20\311\371\261!"
  "\247\263y\0\271\61\71\355\16\4M\36\253\31\266!&\61CA\62BABAq!,&\61%!"
  "\65!\65!\65!%\2N\37\253\31\266!&\61\64A#B#B#Q#,&\61\42\241\246B"
  "\210B\210BJ\4\0O\42\353\371\265r\20\42&!\65!%\42%\42%\61%,&\61%!\65"
  "!\65!\65!%r \2P\33\313\31\266r\20\42&!\65!%\42%\42%\61%r\20\42\71"
  "(\251%\0Q#\353\371\265r\20\42&!\65!%\42%\42%\61%,&\61\42\241\246B\210B"
  "\210BJ\344@\4\0R \313\31\266r\20\42&!\65!%\42%\42%\61%r\20\42\71\42$"
  "\63#$#$#\11S\24\352\371\265r\20!\250\273\301\203HA\271\355$\16$\0T\17\250=\256"
  "p\20+\246\325\364\224\230F\0U \313\371\265!&!\65!%\42%\42%\61%,&\61%!"
  "\65!\65!\65!%r \2V\16\250\35\256F\304\246\315\264\20\317$\0W\36\253\31\266!&!"
  "\65!%\42%\42%\61%,&q!AQAB\61C!%\2X\27g\71\252!\42!\42!"
  "\61\241\204\36DBDB\211\204\210\4\0Y\27\213\71\266!&!\65!%\42%\42%\61%r\20"
  "&\251+\0Z\26\351\371\255q\20\17 '\66\246\36PlLN\36\340 \2\0[\20\347\371\245R"
  "!\245\243Y\251!)\255,\0\134\13e=\252 \243{\10\31\15]\20\347\371\245Q&%\264\221\260"
  "\224F+J\0^\27\251\31\256'\305\250\215\304<\200\210\214\210\214\204\220\204\220\234\4\0_\7(\370"
  "\255p\20`\33\313\31\266r\20\42&!\65!%\42%\42%\61%r\20*)\270\241\10\0a\22"
  "\11\371\261q(\42#\61#!$!$v@\1b\23\312\371\265!\250\273\301\203\10\261*\252\256$"
  "\16$\0c\15\11\371\261q\60\67&\247\335\201\0d\33\313\371\265)\70(\251\311A\210\230\304\224\204"
  "\324\204\324\204\324\204\224\310\201\10\0e\22\11\371\261q\60\67#!$!\63!#\42w f\23\312"
  "\65\261r\20!\70'\250\341\201\204\334v\202\202\0g\24\352\31\265q\20!VE\325\225\304\201\240\336"
  "M\34\204\0h\21\252\31\266!\250\273\301\203\10\261*\252\256$\0i\11\303\30\226P\241\13\0j\20"
  "\305\21\225\42\63\42\243\241\310\22\31%\62\0k\21\250\31\256!\246\253\61\32\261\21\11\231\42f\0l"
  "\14\243\31\226\241\213\32\211\12-\0m\24\352\30\266q\20!\42R!B\42Q\42Q\42Q%\1n"
  "\16\352\30\266q\20!VE\325\225\4\0o\20\12\371\265q\20!VE\325\225\304\201\4\0p\33\313"
  "\65\265r\20\42&\61%!\65!\65!\65!%r \42\270\241\244$\0q\22\312\71\265q\20!"
  "VE\325\225\304\201\240\336M\0r\14\351\30\262q\60\67&\247\35\0s\14\10\371\255D+&\66%"
  "K\4t\20\311\371\261!\247\263\271\203\271\61\71\355\16\4u\16\352\370\265 VE\325\225\304\201\4\0"
  "v\13\305\30\242rPA\62#\1w\24\352\370\265 \42R!B\42Q\42Q\42Q%q \1x"
  "\12\206\70\252\241\5\11\211\0y\22\312\31\265 VE\325\225\304\201\240\336M\34\204\0z\14\10\371\255"
  "q,\65\245\370 \0{\16\246\31\242\244\315\32\11*!\335L\0|\17D\266\225\242_L\211L\210"
  "\350\205\10\0}\16\245\31\242!\243\223\31\233\21\31m\0~\10h\270\256\61TG\0\0\0\4\377\377"
  "\0";

文档信息

版权声明:可自由转载(请注明转载出处)-非商用-非衍生

发表时间:2025年5月8日 08:51