使用lvgl v9自带LVGLImage.py脚本把png图片批量生成bin或c文件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

lvgl v8(https://lvgl.io/tools/imageconverter)在官网可以把图片直接生成bin或c文件:
在这里插入图片描述但是lvgl v9(https://lvgl.io/tools/imageconverter_v9)版本目前官方网站没有把png图片直接生成bin接口,只能生成c的文件,如果要生成bin文件的话,就要使用v9版本官方给出的pythonimage.py脚本进行转换,下面将使用官方给出的脚本进行png图片转换为bin文件的操作(如果原图不是png图片,请使用window自带的画图或其他软件转换为png图片):在这里插入图片描述

提示:以下是本篇文章正文内容,下面案例可供参考

一、要使用到的工具

1.要安装python3 (注意把python3加入到环境变量中)

二、操作步骤

1.进入你下载下来lvgl源码的\lvgl\scripts文件夹,在该文件夹下打开cmd命令窗口输入如下指令:python LVGLImage.py,并根据提示安装对应的module(如图1,2,3步骤)或者直接在cmd 命令依次安装如下两个模块:
pip3 install pypng和pip3 install lz4:
在这里插入图片描述
重复以上步骤直到出现如下图,到这一步就完成执行python脚本所需要的环境:
在这里插入图片描述
上图解释了脚本的传参,如下(跟v8转换图片界面要填的参数类似,非深究可以不用看):
LVGLImage.py [-h] [–ofmt {C,BIN,PNG}] [–cf {L8,I1,I2,I4,I8,A1,A2,A4,A8,ARGB8888,XRGB8888,RGB565,RGB565A8,ARGB8565,RGB888,AUTO}]
[–compress {NONE,RLE,LZ4}] [–align [byte]] [–background [color]] [-o OUTPUT] [-v]
input
参数详解
-h, --help: 显示使用脚本的帮助信息。

–ofmt {C,BIN,PNG}: 指定处理后图像的输出格式。
C: 作为C源代码(数组)输出。
BIN: 作为二进制文件输出。
PNG: 作为PNG图像输出(可能用于调试)。

–cf {L8,I1,I2,I4,I8,A1,A2,A4,A8,ARGB8888,XRGB8888,RGB565,RGB565A8,ARGB8565,RGB888,AUTO}
选择图像转换的颜色格式。
选项包括不同位深度和色彩模式,如L8(8位灰度)、I1(1位索引色)、ARGB8888(32位真彩色带透明)、RGB565(16位色彩),以及AUTO自动选择合适的格式。

–compress {NONE,RLE,LZ4}:
确定用于图像数据的压缩方法。
NONE: 无压缩。
RLE: 行程长度编码,对有大块单一颜色区域的图像效果好。
LZ4: LZ4压缩算法,平衡了压缩速度和压缩率。

–align [字节]: 指定输出数据对齐到指定的字节边界,某些嵌入式系统对数据对齐有特定要求。

–background [color]:
设置图像填充或转换为非透明格式时透明像素的背景色。

-o 输出文件: 指定输出文件路径。

-v: 启用详细模式,在处理过程中提供更多信息。

input:输入文件:需要被处理的输入图像文件路径。

2.使用python脚本生成bin文件

根据上面的参数,在cmd中,直接使用指令通过lvgl脚本把png图片生成bin文件:
python LVGLImage.py --ofmt BIN --cf RGB565 --align 1 --compress NONE source.png -o out.bin
注意以上的命令cmd要在\lvgl\scripts目录下执行,上面的指令是对RBG565的屏幕生成的bin文件, source.png为你要转换png图片的目录,out.bin是你要生成文件输出的目录(注意这里是生成目录的),实例如图:
在这里插入图片描述
到这里就完成了使用lvgl官方脚本由png图片生成bin文件的操作,如果需要批量转换png的操作,需要借助bat脚本。

3.使用bat脚本批量转换图片

代码如下(示例):
@echo off
setlocal enabledelayedexpansion
set “sourceDir=image”
set “targetDir=image_bin”
set “pythonCmd=python”

if not exist “%targetDir%” mkdir “%targetDir%”
@REM 遍历当前bat脚本下的image文件夹,把里面的图片都转换为bin文件,并放到image_bin文件里面
for %%i in (“%sourceDir%*.png”) do (
echo Converting “%%i”…
%pythonCmd% E:\workspace\LVGL\sourceCode\lvgl\scripts\LVGLImage.py --ofmt BIN --cf RGB565 --align 1 --compress NONE “%%i” -o “%targetDir%%%~nxi”
)

echo All PNG files have been converted to BIN and saved in “%targetDir%”.

echo Copying .bin files to image_bin folder and removing subfolders…
@REM 把image_bin里面的子文件的bin提取到image_bin目录下,并删除子目录
for /D %%d in (“%targetDir%*”) do (
for %%f in (“%%d*.bin”) do (
copy “%%f” “%targetDir%”
)
rd “%%d” /S /Q
)

echo Cleanup completed. All .bin files are now in “%targetDir%” and subfolders removed.
pause

注意上面代码的使用方法(看懂的就不用管下面):
1.新建一个txt文件,并把上面代码复制进入,修改名称为lvglImage.bat文件
2.新建一个image文件夹,里面把要转换的png图片放进去
3.注意把上面代码里的这句E:\workspace\LVGL\sourceCode\lvgl\scripts\LVGLImage.py
替换为你自己lvgl\scripts\LVGLImage.py的具体路径
4.保存好后,双击一下lvglImage.bat就可以批量转换了
5.效果如图:
在这里插入图片描述

在这里插入图片描述

总结

提示:done

  • 35
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: JLink V9代表的是Segger J-Link仿真器的第9代产品。而“all.bin”是指存储在J-Link V9设备上的固件文件。 J-Link V9作为一种可靠的硬件仿真器,用于在开发过程中与目标设备进行调试和编程。它支持多种目标处理器架构,包括ARM、MIPS、RX、PIC等等。通过与计算机连接,并连接到目标设备上,开发人员可以使用J-Link V9来读取和写入代码、调试程序、监视变量和寄存器值等。 “all.bin”是J-Link V9的固件文件名称,这个文件存储了J-Link V9的基本固件,包括操作和控制设备所需的软件。固件文件中包含了一系列指令和驱动程序,使得J-Link V9可以与不同类型的目标设备进行通信和交互。更新固件可以提供更好、更稳定的性能,并且可以支持新的目标设备和处理器。 在使用J-Link V9之前,通常需要将最新版本的“all.bin”固件文件加载到设备中。这可以通过Segger官方网站上提供的固件更新工具来完成。在执行固件更新之后,J-Link V9将能够支持新的功能和兼容性,确保开发人员能够在最佳的调试环境中进行工作。 总之,“J-Link V9 all.bin”代表的是Segger J-Link V9仿真器的固件文件,这个文件是为了提供更好的性能和更广泛的兼容性而需要加载到设备中的。 ### 回答2: jlink v9 all.bin是J-Link V9中的一个二进制文件。J-Link V9是一款功能强大的仿真器,用于在开发和调试过程中与微控制器进行通信。all.bin文件是其中的一个固件文件,含有操作J-Link V9所需的软件和驱动程序。 all.bin文件包含了J-Link V9的固件,它是固定在仿真器内部的软件。该文件包含了J-Link V9所需的固件程序和配置信息。通过将all.bin文件烧录到J-Link V9中,可以确保仿真器能正常工作并与目标设备进行通信。 烧录all.bin文件到J-Link V9的过程通常需要使用J-Link软件和工具。通过连接J-Link V9模块到计算机并运行J-Link软件,可以选择烧录all.bin文件到仿真器。烧录成功后,J-Link V9将能够与目标设备进行连接,通过提供调试接口和调试功能,支持开发人员进行软件编程和调试。 总之,jlink v9 all.bin是J-Link V9仿真器中的一个固件文件,它包含了仿真器所需的软件和驱动程序。通过烧录all.bin文件,可以确保J-Link V9能够正常工作并与目标设备进行通信,提供开发和调试的支持。 ### 回答3: Jlink V9是一款全球知名的硬件调试工具,可以用于嵌入式系统和微控制器的调试和编程。v9系列是jlink的最新版本,提供了更高的性能和更丰富的功能。 而"all.bin"是指的jlink v9固件的二进制文件,这个文件包含了设备固件的全部内容。固件是指嵌入在硬件设备中的软件程序,它提供了设备的基本功能和特性。 通过将all.bin文件烧录到jlink v9设备中,可以升级和更新设备的固件版本。同时,all.bin文件还可以用于复制和备份jlink v9设备的固件,以确保在需要时能够还原设备的原始状态。 对于开发者和工程师来说,使用jlink v9和all.bin文件可以提供更好的调试和编程体验。它可以帮助他们更轻松地进行嵌入式系统的开发和调试工作,同时提供了更多的功能和灵活性。 总而言之,jlink v9 all.bin是一种硬件调试工具固件的二进制文件,它为用户提供了更好的嵌入式系统调试和编程体验。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值