猪百岁 发表于 2021-4-19 09:46:01

【新手基础教程】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]
查看完整版本: 【新手基础教程】GUI之中文等多国语言支持