13 个版本
0.1.11 | 2024年5月1日 |
---|---|
0.1.11-1 | 2024年5月17日 |
0.1.10 | 2024年3月12日 |
0.1.5 | 2024年2月29日 |
#99 in 图像
1,318 每月下载量
1MB
2K SLoC
ICU
图像转换超
简介
图像转换超(ICU)是一种将图像从一种格式转换为另一种格式的软件。它设计成一个多功能的工具,可以处理各种图像格式并将它们转换为其他格式。ICU设计为独立应用程序,可以在支持必要依赖项的任何平台上使用。ICU是用RUST编写的。
特性
- 支持广泛的图像格式
- 支持LVGL二进制格式
- 支持预览广泛的图像格式和LVGL二进制格式
如何安装
ICU是独立应用程序,可以安装在支持必要依赖项的任何平台上。
- Homebrew
brew install W-Mai/homebrew-cellar/icu_tool
或
brew tap W-Mai/homebrew-cellar
brew install icu_tool
- PowerShell
powershell -c "irm https://github.com/W-Mai/icu/releases/download/v0.1.11/icu_tool-installer.ps1 | iex"
- Shell
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/W-Mai/icu/releases/download/v0.1.11/icu_tool-installer.sh | sh
- Windows MSI 安装程序
从版本页面下载最新的Windows MSI安装程序并安装它。
- Cargo
ICU是用RUST编写的,因此您需要在系统上安装RUST环境。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
之后,您可以通过运行以下命令安装ICU:
cargo install icu_tool
如何使用自动完成功能
ICU支持bash、zsh、fish和powershell等shell的自动完成功能。
- Bash
将以下行添加到您的.bashrc
或.bash_profile
文件中
eval "$(icu -I bash)"
- Zsh
将以下行添加到您的.zshrc
文件中
eval "$(icu -I zsh)"
- Fish
将以下行添加到您的config.fish
文件中
icu -I fish | source
如何自行构建
git clone https://github.com/W-Mai/icu.git
cd icu
cargo build --release
如何使用
$ icu -h
`Show` or `Convert` image files to any other image format including LVGL image formats.
Usage: icu [OPTIONS] <COMMAND>
Commands:
info Show some information about an image file
show Show an image file
convert Convert image files to any other image format including LVGL image formats
help Print this message or the help of the given subcommand(s)
Options:
-v, --verbose... verbose mode
-h, --help Print help
-V, --version Print version
$ icu info -h
Show some information about an image file
Usage: icu info [OPTIONS] <FILE>
Arguments:
<FILE> an image file to show
Options:
-f, --input-format <INPUT_FORMAT> input image formats [default: auto] [possible values: auto, common, lvgl-v9]
-h, --help Print help (see more with '--help')
icu convert -h
Convert image files to any other image format including LVGL image formats
Usage: icu convert [OPTIONS] --output-format <OUTPUT_FORMAT> <INPUT_FILES>...
Arguments:
<INPUT_FILES>... input files
Options:
-f, --input-format <INPUT_FORMAT>
input image formats [default: auto] [possible values: auto, common, lvgl-v9]
-O, --output-folder <OUTPUT_FOLDER>
output folder
-r, --override-output
override exist output files, and you will get a warning message for sure if the output file already exists
-G, --output-category <OUTPUT_CATEGORY>
output image format categories [default: common] [possible values: common, bin, c-array]
-F, --output-format <OUTPUT_FORMAT>
output image formats [possible values: png, jpeg, bmp, gif, tiff, webp, ico, pbm, pgm, ppm, pam, lvgl]
-S, --output-stride-align <OUTPUT_STRIDE_ALIGN>
stride of the output image [default: 1]
-C, --output-color-format <OUTPUT_COLOR_FORMAT>
output color formats [possible values: rgb565, rgb565a8, rgb888, argb8888, xrgb8888, a1, a2, a4, a8, l8, i1, i2, i4, i8]
--dither
dither the output image so that it will look better on screens with low color depth
--lvgl-version <LVGL_VERSION>
LVGL Version, needed if [`ImageFormats`] is [`ImageFormats::LVGL`] [default: v9] [possible values: v9, v8]
-h, --help
Print help (see more with '--help')
$ icu show -h
Show an image file
Usage: icu show [OPTIONS] <FILE>
Arguments:
<FILE> an image file to show
Options:
-f, --input-format <INPUT_FORMAT> input image formats [default: auto] [possible values: auto, common, lvgl-v9]
-h, --help Print help (see more with '--help')
示例
显示常见的图像格式
icu show res/img_0.png
您将看到一个包含图像的窗口。
显示LVGL图像格式
- 不需要指定输入格式,因为ICU可以自动检测。 *
icu show res/img_0.bin
你将得到一个与之前一样的图像窗口。
将常见图像格式转换为常见图像格式
如果你想要输出日志的图像转换,可以使用 -vv
选项。
$ icu -vv convert res/img_0.png res/img_0.jpeg --output-format webp`
[2024-02-29T13:05:06Z INFO icu] Start converting files
[2024-02-29T13:05:06Z INFO icu]
[2024-02-29T13:05:06Z INFO icu] took 0.002740s for converting [res/img_0.png] to [res/img_0.webp] with format [WEBP]
[2024-02-29T13:05:06Z INFO icu] took 0.002257s for converting [res/img_0.jpeg] to [res/img_0.webp] with format [WEBP]
[2024-02-29T13:05:06Z INFO icu]
[2024-02-29T13:05:06Z INFO icu] Total converting time:
[2024-02-29T13:05:06Z INFO icu] Consuming : 0.005121s for 2 files
[2024-02-29T13:05:06Z INFO icu] User time: 0.004998s
[2024-02-29T13:05:06Z INFO icu] System time: 0.000123s
或简短形式
$ icu -vv convert res/img_0.png res/img_0.jpeg -F webp
将文件夹中的某些图像转换为另一个指定文件夹
将 res
文件夹中的所有图像转换为jpeg格式,并保存在 res/output
文件夹中,如果输出文件已存在,它将覆盖它(你应该使用 -r --override-output
选项)。
并且输出文件夹将保持与输入文件夹相同的结构.
$ icu convert res -O res/output --output-format jpeg --override-output
或简短形式
$ icu convert res -O res/output -F jpeg -r
将LVGL图像格式转换为常见图像格式
将LVGL图像格式转换为常见图像格式。如果你指定了 --overide-output
选项,ICU将覆盖已存在的输出文件。如果输出文件已存在,你肯定会收到一个警告信息。
$ icu -vv convert res/img_0.bin -O res/output -F jpeg -r
[2024-03-03T16:08:01Z INFO icu] Start converting file
[2024-03-03T16:08:01Z INFO icu]
[2024-03-03T16:08:01Z WARN icu] Override output file <res/output/img_0.jpeg> for converting <res/img_0.bin>
[2024-03-03T16:08:01Z INFO icu] took 0.007022s for converting <res/img_0.bin> to <res/output/img_0.jpeg> with format <JPEG>
[2024-03-03T16:08:01Z INFO icu]
[2024-03-03T16:08:01Z INFO icu] Total converting time:
[2024-03-03T16:08:01Z INFO icu] Consuming : 0.008715s for 1 files
[2024-03-03T16:08:01Z INFO icu] User time: 0.007022s
[2024-03-03T16:08:01Z INFO icu] System time: 0.001693s
将常见图像格式转换为LVGL图像格式
将常见图像格式转换为LVGL图像格式,你需要指定输出颜色格式和lvgl版本。但如果你没有指定lvgl版本,ICU将使用默认版本(v9)。
$ icu convert res/img_0.png -O res/output -F lvgl -C i8 -r
以行对齐方式将常见图像格式转换为LVGL图像格式
以行对齐方式将常见图像格式转换为LVGL图像格式,你需要指定输出颜色格式、lvgl版本和行对齐(默认为1)。
4 表示输出图像的行距将是对齐4字节。
$ icu convert res/img_0.png -O res/output -F lvgl -C i8 -S 4 -r
许可证
ICU在MIT许可证下授权。
依赖项
~13–31MB
~482K SLoC