【新手基础教程】GUI之中文等多国语言支持
# 如何显示中文MaixPy 支持加载 Unicode 字库,Unicode( 统一码、万国码、单一码)是计算机科学领域里的一项业界标准。
有如下语种支持:
- A 大写拉丁字母"A" A
- ß 小写拉丁字母"Sharp S" ß
- þ 小写拉丁字母"Thorn" þ (小字库不支持)
- Δ 大写希腊字母"Delta" Δ
- Й 大写斯拉夫字母"Short I" Й
- ק 希伯来字母"Qof" ק
- م 阿拉伯字母 "Meem" م
- ๗ 泰文数字 7 ๗
- ቐ 埃塞俄比亚音节文字"Qha" ቐ
- あ 日语平假名 "A" あ
- ア 日语片假名 "A" ア
- 叶 简体汉字 "叶" 叶
- 轉 繁体汉字 "轉" 轉
- 엽 韩国音节文字 " Yeob" 엽
该功能接口均使用`image.Image()`对象完成,MaixPy 固件请使用最新版本 2020年9月2日。
## 1. 字模接口[](https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image_draw_font.html#%E5%AD%97%E6%A8%A1%E6%8E%A5%E5%8F%A3)
使用 draw_font 打印字模字符串,类似`img.draw_font(10, 20, 8, 8, b'/x20/xFC/xFC/x2C/xAC/x4C/x4D/xA3')`。
```
import lcd, image
lcd.init()
img = image.Image()
tmp = b'/x20/xFC/xFC/x2C/xAC/x4C/x4D/xA3'
img.draw_font(10, 20, 8, 8, tmp, scale=1, color=(255, 255, 255))
lcd.display(img)
```
范例参考(https://gitee.com/Sipeed/maixpy_scripts/tree/master/multimedia/gui/image/demo_draw_font/image_draw_font.py)。
## 2. 字库接口[](https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image_draw_font.html#%E5%AD%97%E5%BA%93%E6%8E%A5%E5%8F%A3)
请先使用 font_load / font_free 加载或释放字库,这将提升 draw_string 的功能,支持从`xx.Dzk`文件 与 Flash 地址加载,这之后后 draw_string 将通过字库打印字符串,目前只支持`ASCII`/`UTF-8`编码 。
> 附带字库文件(https://gitee.com/Sipeed/maixpy_scripts/tree/master/multimedia/gui/image/demo_draw_font/tools/0xA00000_font_uincode_16_16_tblr.Dzk)
```
import lcd, image
lcd.init()
img = image.Image()
# image.font_load(image.UTF8, 16, 16, 0xA00000)
image.font_load(image.UTF8, 16, 16, '/sd/0xA00000_font_uincode_16_16_tblr.Dzk')
img.draw_string(20, 90, b'こんにちは、世界', x_spacing=2, mono_space=1)
image.font_free()
lcd.display(img)
```
范例参考(https://gitee.com/Sipeed/maixpy_scripts/tree/master/multimedia/gui/image/demo_draw_font/image_draw_string.py)。
## 3. 显示效果[](https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image_draw_font.html#%E6%98%BE%E7%A4%BA%E6%95%88%E6%9E%9C)
[!(https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/view_image_font.jpg)](https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/view_image_font.jpg)
## 4. 字库工具[](https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image_draw_font.html#%E5%AD%97%E5%BA%93%E5%B7%A5%E5%85%B7)
我们将使用根目录下的(https://gitee.com/Sipeed/maixpy_scripts/tree/master/multimedia/gui/image/demo_draw_font/tools/FontGenerator.zip)导出字体对应的字库,请看下图完成导出操作。
1.选择字库编码类型为 Unicode 编码,这将支持绝大多数国家的语言。
2.选择扫描模式,为 5 横向、先上下后左右的字模的扫描打印方向。
3.如下图配置所需要的字体样式后创建字库。
4.保存成 DZK 格式即可,字模数据访问方法如图文字说明
[!(https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image-20200902181442677.png)](https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image-20200902181442677.png)
## 5. 字模工具[](https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image_draw_font.html#%E5%AD%97%E6%A8%A1%E5%B7%A5%E5%85%B7)
> 警告:不推荐使用字模工具,不了解的人请不要使用。
使用目录下的(https://gitee.com/Sipeed/maixpy_scripts/tree/master/multimedia/gui/image/demo_draw_font/tools/Pc2Lcd2002.zip)获取字模的字符串。
1.确认软件为字符模式。
[!(https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image-20200902175614964.png)](https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image-20200902175614964.png)
1.设置如图即可导出想要的字符串。
[!(https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image-20200902180153452.png)](https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image-20200902180153452.png)
2.填入文字后点击生成字模。
[!(https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image-20200902175948599.png)](https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image-20200902175948599.png)
3.提取字模字符串即可使用。
[!(https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image-20200902180505263.png)](https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image-20200902180505263.png)
```
这(0) 是(1) 测(2) 试(3)
/x00/x20/x10/x17/x00/x02/xF1/x10/x10/x10/x11/x12/x14/x28/x47/x00/x80/x40/x40/xFC/x10/x10/x20/xA0/x40/xA0/x10/x08/x08/x00/xFE/x00这0
/x1F/x10/x10/x1F/x10/x10/x1F/x00/xFF/x01/x11/x11/x11/x29/x45/x83/xF0/x10/x10/xF0/x10/x10/xF0/x00/xFE/x00/x00/xF8/x00/x00/x00/xFE是1
/x00/x27/x14/x14/x85/x45/x45/x15/x15/x25/xE5/x21/x22/x22/x24/x08/x04/xC4/x44/x54/x54/x54/x54/x54/x54/x54/x54/x04/x84/x44/x14/x08测2
/x00/x20/x10/x10/x07/x00/xF0/x17/x11/x11/x11/x15/x19/x17/x02/x00/x28/x24/x24/x20/xFE/x20/x20/xE0/x20/x10/x10/x10/xCA/x0A/x06/x02试3
```
> 可以使用图形模式绘制自己喜欢的字模图形,支持 32 * 32 的图形。
>
> [!(https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image-20200902181645277.png)](https://cn.maixpy.sipeed.com/zh/course/image/image_draw_font/image-20200902181645277.png)
页:
[1]