LVGL显示中文字体及其它语言文字详细笔记教程

        在前面几篇博客文章中,已经对LVGL的移植和使用进行了较为详细的介绍,在本文中将讲解如何在LVGL的控件中显示中文字体及其它语言字体

LVGL在VScode中安装模拟器运行配置笔记教程_vscode lvgl-CSDN博客

LVGL移植到STM32 MCU平台详细经验笔记教程-CSDN博客

1、LVGL自带汉字库CJK

        在LVGL的官方库中,其实已经内置了一个CJK中文字库:中日韩越统一表意文字(CJKV Unified Ideographs),目的是要把分别来自中文、日文、韩文中,本质相同、形状一样或稍异的表意文字(主要为汉字,但也有仿汉字如日本国字、韩国独有汉字)于ISO 10646及Unicode标准内赋予相同编码。越南文后来亦加入此计划,所以亦有“CJKV”的称呼。

        CJK库位于LVGL的路径下的src文件夹下的font子文件夹中lv_font_simsun_16_cjk.c,这个文件中包含了日常使用的汉字数量有数千个。

        虽然该库日常使用的汉字数量有数千个,再加上生僻字,数量达到数万个,但缺少很多简体中文中经常使用的汉字,如“问”字。因此在使用之前,可以点击该字库,去查找是否能够满足项目场景中需要使用的汉字,如果不能满足,则需要进行下面开始的工作,即往LVGL库中添加汉字字库或其它语言的字库。

使用自带的CJK汉字库需要将lv_conf.h文件中的CJK字库宏定义开启,否则不能使用。

2、自定义LVGL汉字库

        除了使用LVGL系统自带的CJK汉字库外,还可以采取自定义汉字库的形式,这就需要我们准备这两个东西:字体文件字体转换器

        字体文件可以互联网上随便下载,如浏览器直接搜索:GB2312字体下载;如果使用LVGL官方的字体转换器,那么下载的字体文件必须是TTF/WOFF格式的。使用其它平台的字体转换器,则需要根据对应字体转换平台的要求进行下载。

        在本笔记教程中,直接搜索下载了GB2312楷体的ttf格式字体文件,字体文件下载打开后如下图所示。

在准备好字体文件后,可以直接进入LVGL官方的在线字体转换工具网站:Online font converter - TTF or WOFF fonts to C array | LVGLicon-default.png?t=N7T8https://lvgl.io/tools/fontconverter

        将LVGL文件加入到工程中时,如果需要使用生成的字体,需要将字体进行声明:

//LV_FONT_DECLARE(字体名);
LV_FONT_DECLARE(lv_font_gb2312_regular_script_14);//样式中设置字体API接口:
lv_obj_set_style_text_font();    //私有(本地)样式
lv_style_set_text_font();        //普通(共享)样式

自定义的中文字库加入到工程中,编译运行后的效果图如下图所示:

3、Unicode编码表

        Unicode 是国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换

        Unicode 字符集的编码范围是 0x0000 - 0x10FFFF , 可以容纳一百多万个字符, 每个字符都有一个独一无二的编码,也即每个字符都有一个二进制数值和它对应,这里的二进制数值也叫 码点 , 比如:汉字 "中" 的 码点是 0x4E2D, 大写字母 A 的码点是 0x41。

Unicode官网可以查询具体的字符编码值:Unicode – The World Standard for Text and Emoji

汉字编码范围部分表:

字符Unicode分布表:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/14291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue koa post 请求代理失败问题总结

场景是在使用 koa 写接口时,客户端发送 post 请求,服务端会报下面这个错误,导致接口未能访问成功: 前端接口一直 Pending 状态, 解决方案:走的是本地 mock 数据,未访问服务端的接口 总结&#x…

[JAVASE] 类和对象(五) -- 抽象类和接口

目录 一. 抽象类 1.1 抽象类的定义 1.2 抽象类的实现 1.3 抽象类的作用 1.4 抽象类注意事项 二. 接口 2.1 接口的定义 2.2 接口的实现 2.3 接口的作用 2.4 接口注意事项 三. 总结 一. 抽象类 1.1 抽象类的定义 如果一个类中没有包含足够的信息来描绘一个具体的对象, 那么…

远程PLC、工控设备异地调试,贝锐蒲公英异地组网方案简单高效

北京宇东宁科技有限公司专门提供非标机电设备,能够用于金属制品的加工制造。设备主要采用西门子的PLC作为控制系统,同时能够连接上位机用于产量、温度、压力、电机运行数据的监控,以及工厂的大屏呈现需求。目前,客户主要是市场上的…

百度陈之若:第一批大模型伙伴已经实现财富自由了

大模型继续在 2024 年的春天里疾驰而进。 2024 年 4 月 9 日,百度智能云在成都举行的首届 GENERATE 全球生态大会上,公布了过去一年大模型生态建设的最新“成绩单” 。 目前,已经有超过 8.5 万客户在使用千帆大模型平台,开发了超…

EI稳定检索--人文社科类会议(ICBAR 2024)

【ACM独立出版】第四届大数据、人工智能与风险管理国际学术会议 (ICBAR 2024) 2024 4th International Conference on Big Data, Artificial Intelligence and Risk Management 【高录用•快检索,ACM独立出版-稳定快速EI检索 | 往届均已完成EI, Scopus检索】 【见…

SAPUI5基础知识2 - 手动创建一个SAPUI5的项目

1. 前言 在本篇文章中,我们将手动一步一步建立出第一个SAPUI5的 ‘Hello World!’ 项目。 2. 步骤详解 2.1 在BAS中建立Dev Space 进入SAP Business Application Studio的Dev Space Manger,选择创建Dev Space。 勾选HTML5 Application Template插件…

OpenWrt改网桥模式(AP模式)

OpenWrt改网桥模式(AP模式) 点击“接口” 删掉所有 wan 接口 点击“设备”,配置“br-lan" 点击网桥接口,勾选所有接口 点击保存 添加新接口(不添加的话路由器自身系统没网) 返回 “网络” - “接…

k8s部署presto

(作者:陈玓玏) 一、前提条件 已部署k8s;已部署hadoop和hive,可参考以下链接: https://blog.csdn.net/weixin_39750084/article/details/136750613?spm1001.2014.3001.5502 https://blog.csdn.net/wei…

Linux-挂盘-分区-卸盘

Linux-挂盘-分区-卸盘 1. 添加硬盘 2. 查看硬盘 [rootlocalhost /]# lsblk # 查看我们新添加的磁盘 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 80G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 …

百度智能云参与信通院多项边缘计算标准编制,「大模型时代下云边端协同 AI 发展研讨会」成功召开

1 中国信通院联合业界制定、发布多项标准化成果,推动产业发展 大模型开启了 AI 原生时代,云边端协同 AI 构建了「集中式大规模训练」、「边缘分布式协同推理」新范式,有效降低推理时延和成本,提升数据安全和隐私性,也…

AtCoder ABC352 A-D题解

比赛链接:ABC352 Problem A: 签到题。 #include <bits/stdc.h> using namespace std; int main(){int N,X,Y,Z;cin>>N>>X>>Y>>Z;if((X<Z && Z<Y) || (Y<Z && Z<X))cout<<"YES"<<endl;else…

数据采集与AI分析,亮数据+通义千问助力跨境电商前行

文章目录 前言工具介绍数据采集工具亮数据Web Scraper IDE亮点 AI数据分析工具 实战电商数据采集与AI分析电商平台选取数据采集完全托管数据集自定义数据集 AI分析 价格总结 前言 随着信息技术的飞速发展&#xff0c;数据采集与AI分析在跨境电商中扮演着越来越重要的角色。通过…

用ControlNet+Inpaint实现stable diffusion模特换衣

用ControlNetInpaint实现stable diffusion模特换衣 ControlNet 训练与架构详解ControlNet 的架构用于文本到图像扩散的 ControlNet训练过程Zero卷积层的作用解释 inpaintInpaint Anything 的重要性Inpaint Anything 的功能概述 在现代计算机视觉领域&#xff0c;稳定扩散&#…

微信小程序开发 tabbar组件常见问题

一、 tabbar不显示问题 问题 刚开始我在app.json中配置了下面的代码&#xff0c;但tabbar并没有显示。代码如下&#xff1a; "tabBar": {"custom": true,"color": "#7A7E83","selectedColor": "#3cc51f","…

【机器学习-08】 | Scikit-Learn工具包进阶指南:Scikit-Learn工具包之决策树算法实战分析

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

微信H5跳小程序 wx-open-launch-weapp ios显示且正常跳转,安卓不显示不报错解决方案

前提&#xff1a;在一切都正常(无报错&#xff0c;没有写法错误等)的情况下&#xff0c;出现这个问题: 去你的h5项目&#xff0c;用浏览器打开&#xff0c;在network随便找一个静态文件&#xff0c;在response响应标头中找找&#xff0c;是否有Content-Security-Policy这个头&…

服务高峰期gc,导致服务不可用

随着应用程序的复杂性和负载的不断增加&#xff0c;对JVM进行调优&#xff0c;也是保障系统稳定性的一个重要方向。 需要注意&#xff0c;调优并非首选方案&#xff0c;一般来说解决性能问题还是要从应用程序本身入手&#xff08;业务日志&#xff0c;慢请求等&#xff09;&am…

struct.unpack_from()学习笔记

struct.unpack_from(fmt,b_data,offset) 按照指定的格式fmt&#xff0c;从偏移位置offset&#xff0c;对b_data开始解包&#xff0c;返回数据格式是一个元组(v1,v2…) fmt可以有&#xff1a; _struct.py: The remaining chars indicate types of args and must match exactly;…

基于Vue的验证码实现

一、验证码核心实现 创建slide-verify.vue&#xff0c;代码如下&#xff1a; <template><divclass"slide-verify":style"{ width: w px }"id"slideVerify"onselectstart"return false;"><!-- 图片加载遮蔽罩 -->&…

java项目之图书管理系统源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的图书管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 系统主要分为管理员角色和用…