# lv_img_conv **Repository Path**: Jumping99/lv_img_conv ## Basic Information - **Project Name**: lv_img_conv - **Description**: 用图片解码库和C++写的一个轻量版lvgl图片转换工具 - **Primary Language**: C/C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 22 - **Forks**: 7 - **Created**: 2023-08-17 - **Last Updated**: 2025-07-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # lv_img_conv ### 介绍 由于将开发工作全部转到了Linux下,lvgl官网的图片转换打开太慢,离线版又需要安装一堆东西, 因此就自己用图片解码库和C++写了一个轻量版lvgl图片转换工具,主要是在命令行下使用。 ### 安装教程 #### 1.安装所需的依赖 因为此程序用到了jpg和png解码库,因此需要安装,否则编译会不通过,以ubuntu为例,使用以下命令安装这两个库即可。 ```shell sudo apt update sudo apt install libjpeg8-dev libpng-dev ``` #### 2.安装cmake 项目使用cmake构建,考虑到以后有可能的开发,因此cmake最低版本限制为3.12.4,不建议直接使用系统包管理器(e.g apt)直接安装, 因为可能会下载到较老的版本,建议去cmake官网下载最新版。 #### 3.编译 & 安装 如果上面2步都没问题后,进入源码目录,依次键入以下命令即可安装。 ```shell mkdir build cd build cmake .. make sudo make install ``` ### 使用说明 #### 1.帮助信息 加入 **-h** 参数可以查看帮助信息,包括每个参数的说明 ```shell lv_img_conv -h ``` #### 2.转换示例 将一张jpg图片转换为c数组并保存为C文件 ```shell lv_img_conv -i img.jpg -c ``` 将一张带透明通道的png图片转换为rgb565格式的bin文件 ```shell lv_img_conv -i img.png -f rgb565 -b --alpha ``` 将一张bmp图片转换为c数组并将C文件保存到指定路径下 ```shell lv_img_conv -i img.bmp -c -o ./src/image/image.c ``` 将./res目录下的所有合法图片批量转换为C文件保存到指定路径下 ```shell lv_img_conv -d ./res -c -o ./src/image/ ``` 将一张jpg图片缩放至480x320后转换为c文件 ```shell lv_img_conv -i img.jpg --width 480 --height 320 -c img.c ``` ### 更新记录 #### 2023.08.24-v0.1版本 第一个版本发布 #### 2023.10.09-v0.2版本 优化了转换为C文件时的文件大小。在转换为C文件时,原本是全部格式转换,但通常都只使用到 一种格式,其余格式的数据未使用到。现在可以指定转换格式达到只转换该格式的数据,如:指定rgb565, 则只会在c文件生成rgb565的数据,减小生成的文件大小。 #### 2023.10.11-v0.3版本 1. 在转换时"-o"参数指定目录但目录后没有文件名时,以输入文件名为准,不会再报错。 2. 添加了批量转换功能,使用"-d"参数指定需要批量转换的目录。 #### 2023.12.14-v0.4版本 1. 在转换时"-o"参数指定输出文件名时,输出文件名第一个字符不会再被截掉。 2. 在批量转换指定目录路径时,若路径末尾没有'/',不会再报错,此问题由[水影](https://gitee.com/sy06)提出并修复。 #### 2024.06.12-v0.5版本 添加了图片转换时的缩放功能, 使用`--width`或`--height`指定输出图像的宽和高, 没有指定的参数则使用原图参数。图片缩放算法使用**双立方卷积法**,效果较好。 #### 2025.04.27-v0.6版本 重写选项解析部分,以便于后续添加新的选项和参数。