芯课堂 | SWM341系列屏驱应用之素材篇

图片

今天小编给大家带来的是SWM341系列芯片在屏驱应用下对于素材预处理环节的详细介绍:

其中图片与字体是依托 LVGL 生态构建,而音视频是与 SWM341 的外设密切相关。

01.图片预处理

输出数据格式:Binary RGB565(Swap)or 888 / C Array

由于在线工具受限于网络链接,故使用离线转换工具较为快捷便利,请读者自行斟酌。

LVGL官方图片在线转换工具:

https://lvgl.io/tools/imageconverter

LVGL官方图片离线转换工具:

https://github.com/lvgl/lv_img_conv

非官方的图片离线批量转换工具:

https://gitee.com/gzmarkz/Lvgl_image_convert_tool

特别注意:对于包含透明度信息的PNG图片而言,若想保留透明度信息,必须在图片转换选项中选择带透明度的颜色选项,即:

Color format:CF_TRUE_COLOR_ALPHA

Transparency:Alpha byte-TrueColor_   

否则对于不包含透明度信息的图片而言:

Color format:CF_TRUE_COLOR

Transparency:NONE-TrueColor

02.对于 JPEG 图片硬解码

SWM341的JPEG硬件解码器仅支持基于DCT的连续模式 Sequential DCT-based压缩,即基本JPEG(baseline JPEG),而对于文件存储格式,采用更易解析的JFIF格式。

JPEG是联合图像专家组(Joint Picture Expert Group)的英文缩写,是国际标准化组织(ISO)和CCITT联合制定的静态图像的压缩编码标准,它是描述了如何将一个图像转换成字节数据流的形式,对于文件存储格式,虽然JPEG标准中定义了JPEG Interchange Format (JIF)的文件存储格式,但事实上JIF并没有被世人所熟知,反而是后面发展出的“JPEG File Interchange Format (JFIF)” 和 “Exchange image file Format(Exif)” 等新的存储格式成为了主流,即事实上的JPEG文件格式。

1)对于JPEG图片格式的识别,可用JPEGsnoop工具(https://github.com/ImpulseAdventure/JPEGsnoop),它是一个免费的,便携的查看图像解码详细信息的工具,负责审查包含JPEG压缩图像的任何文件类型,甚至可以用来确定图片的来源,或是否已被修改。

使用工具查看图片时应着重关注以下项:

Identifier == [JFIF] 确保为JFIF文件格式

SOFx == [BaseLine DCT] 确保为BaseLine DCT压缩标准

图片

2)对于JPEG图片的转换,当可使用image2jpg工具,该工具可将通用JPG图片转换为符合SWM341的JPEG硬件解码器格式标准的JPEG图或内建C数组,简单来说,就是将JPG图统一转换为BaseLine DCT压缩标准 && JFIF文件格式。

该工具在百度网盘的下载路径:SYNWIT技术应用资料 / 00.其它公用资料 / 106.image2jpg图片转换。

图片

03.用户自定义字库

LVGL本身内置自带有ASCII编码的字体,可显示常用的英文、数字与符号标志,仅当用户有显示 中文汉字 / 限定字体(艺术字) 的需求时,才有必要使用到字体转换工具生成字库以应用显示,当使用自定义生成的字库时,须注意使用字体的文件编码格式须转换为 UTF-8。

LVGL官方字体在线转换工具:

https://lvgl.io/tools/fontconverter

LVGL官方字体离线转换工具:

https://github.com/lvgl/lv_font_conv

非官方的字体离线批量转换工具:

http://dz.lfly.xyz/forum.php?mod=forumdisplay&fid=37

图片

04.音视频预处理

由于网上的音频/视频格式五花八门,而SWM341仅支持播放 MJPEG 编码的 avi 格式视频,且视频分辨率不能大于 LCD 实际分辨率,音频仅支持单声道PCM无损编码格式,以至于符合MCU格式解析要求的现成音视频文件是很难找到的,所以我们需要使用工具软件来将通用音频/视频转换为我们需要的格式,此处推荐使用:狸窝全能视频转换器 (免费/如无特殊要求,则无须使用付费功能)这款软件来实现,下载链接:http://www.leawo.cn/。

操作说明如下图所示:

图片

其中第一步是点击下图的框选处配置待转换格式的选项,可分为两种类型文件的转换:

图片

1)对于音频(*.wav):

图片

2)对于视频(*.avi):

图片

以上,快来跟着小编来点亮属于你的第一块显示屏吧!

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot私人健身与教练预约管理系统源码和论文

随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&#xf…

汽车产线设备CAN总线一键刷写方案

汽车产线设备CAN总线一键刷写方案 一、概述 随着汽车工业的不断发展,CAN总线技术在汽车产线设备中得到了广泛应用。然而,在实际生产过程中,设备的软件升级和配置更改是不可避免的。为了提高生产效率,我们推出了一键刷写CAN总线解…

HarmonyOS 开发基础(八)Row和Column

HarmonyOS 开发基础(八)Row和Column 一、Column 容器 1、容器说明: 纵向容器主轴方向:从上到下纵向交叉轴方向:从左到右横向 2、容器属性: justifyContent:设置子元素在主轴方向的对齐格式…

应用GIS进行生态敏感性评价

生态环境敏感性是指生态系统对区域内自然和人类活动干扰的敏感程度,它反映区域生态系统在遇到干扰时,发生生态环境问题的难易程度和可能性的大小,并用来表征外界干扰可能造成的后果。即在同样干扰强度或外力作用下,各类生态系统出…

Qt中QGraphicsView总体架构学习

前沿 前段时间学习了下如何在QGraphicsView架构中绘制刻度尺,主要是与OnPainter中进行比较的,那么今天就来详细讲解下我对QGraphicsView框架的认知吧~ 最近一段时间想学习下,如果我有不正确的,欢迎留言探讨哟~ QGraphicsView架…

页面无缘无故出现数字(Smarty的模板使用)

出现的数字是定义的用户的每条数据的排序,就像这个页面的第一个用户有10条数据01234569 目的是为了合并用户的单元格 解决:

多机TCP通讯之hello world(C++)

文章目录 TCP是什么准备工作CMakeLists.txt服务端代码客户端代码参考 TCP是什么 TCP(传输控制协议)是一种在计算机网络中广泛使用的协议,它提供了可靠的、面向连接的数据传输服务。TCP 是 OSI 模型中的传输层协议,它确保了数据的…

ChatGPT本地部署,学习记录

一、GPT4ALL模型 官网地址: Github:https://github.com/nomic-ai/gpt4all GPT4ALL项目部署简易,但是在运行体验上一般,并且是只调用CPU来进行运算。 看官方文档介绍在嵌入式上有比较大的优势,但是目前个人对嵌入式…

解锁Python库中操作系统级别模块psutil

目录 一、psutil库简介 二、安装psutil库 三、获取系统信息 1、获取CPU信息: 2、获取内存信息: 3、获取磁盘信息: 4、获取网络信息: 四、进程管理 五、系统信息和监控 六、总结 随着Python的普及,越来越多的…

2024年美赛数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米,宽为12米&…

13.若依代码自动生成功能详解

文章目录 1.代码自动生成功能2.功能的使用3. 代码的导出和使用 1.代码自动生成功能 基于若依的目录结构,若依本身提供了代码生成功能,可以根据数据库表的内容,生成一些基本的CRUD的前后端的功能。本文将生成过程中的一些注意事项&#xff0c…

OpenGL排坑指南—贴图纹理绑定和使用

一、前言 在OpenGL学习 的纹理这一章中讲述了纹理贴图的使用方式,主要步骤是先创建一个纹理的对象,和创建顶点VAO类似,然后就开始绑定这个纹理,最后在循环中使用,有时候可能还要用到激活纹理单元的函数。然而&#xff…

了解Python中的requests.Session对象及其用途

前言 在Python的网络编程中,requests库是一个非常流行的HTTP客户端库,用于发送各种类型的HTTP请求。在requests库中,requests.Session对象提供了一种在多个请求之间保持状态的方法本文将探讨Python中的requests.Session对象及其用途&#xf…

大语言模型面试问题

自己在看面经中遇到的一些面试题,结合自己和理解进行了一下整理。 transformer中求和与归一化中“求和”是什么意思? 求和的意思就是残差层求和,原本的等式为y H(x)转化为y x H(x),这样做的目的是防止网络层数的加深而造成的梯…

微信小程序Burp抓包

方法有很多,工具也各有差异,主要是学代理流量的思路 Burp流量代理工具小程序 一、Burp证书导入 1、开启代理 开启浏览器的代理,火狐推荐FoxyProxy,Google推荐SwitchyOmega,设置代理为127.0.0.1:8080。 2、下载证书…

【Web】CTFSHOW PHP命令执行刷题记录(全)

目录 web29 web30 web31 web32 web33 web34 web35 web36 web37-39 web40 web41 (y4✌脚本) web42 -44 web45 web46 -49 web50 web51 web52 web53 web54 web55-56 web57 web58 web59 web60 web61 web62 web63-65 web66-67 w…

免 费 搭 建 多模式商城:b2b2c、o2o、直播带货一网打尽

鸿鹄云商 b2b2c产品概述 【b2b2c平台】,以传统电商行业为基石,鸿鹄云商支持“商家入驻平台自营”多运营模式,积极打造“全新市场,全新 模式”企业级b2b2c电商平台,致力干助力各行/互联网创业腾飞并获取更多的收益。从消…

c++学习笔记-STL案例-演讲比赛管理系统2

目录 功能介绍 代码结构部分 查看一下类图 1.Speaker.h 2.speechManager.h 3.speechManager.cpp 4.演讲比赛流程关系系统.cpp 功能介绍 speechManager.h函数包含演讲比赛流程的所有功能如下: 开始演讲比赛:完成整届比赛的流程,每…

图形化编程:未来的编程范式

在科技飞速发展的今天,编程已经成为了我们生活中不可或缺的一部分。从手机应用开发,到人工智能,再到物联网,无一不涉及到编程。然而,传统的文本编程方式对于初学者来说,往往显得复杂且难以理解。这就使得图…

uniapp日期加减切换,点击切换

先上完成后的页面&#xff1a;当前年年份不显示&#xff0c;不然完整显示。 可以切换和自定义选择。 html:样式和图片自定义。 <view class"image-text_30"><image click"delMonth" :src"require(/static/home/zuo.png)" class"…