12个版本
0.1.11 | 2024年5月1日 |
---|---|
0.1.10 | 2024年3月12日 |
0.1.5 | 2024年2月29日 |
#466 in 图像
38 每月下载量
用于 icu_tool
230KB
1.5K SLoC
ICU-LIB
图像转换超库(ICU-LIB)
简介
图像转换超(ICU)是一个将图像从一种格式转换为另一种格式的软件。它设计成一个多功能的工具,可以处理广泛的图像格式并将它们转换为其他格式。ICU设计为一个独立的应用程序,可以在支持必要依赖的任何平台上使用。ICU是用RUST编写的。
功能
- 支持广泛的图像格式
- 支持LVGL二进制格式
如何使用
cargo add icu_lib
use icu_lib::endecoder::{common, lvgl_v9};
use icu_lib::midata::MiData;
use icu_lib::EncoderParams;
use std::fs;
fn main() {
const DATA: &[u8] = include_bytes!("../res/img_0.png");
// Decode the image data and automatically detect the format
let mid = MiData::decode_from(&common::AutoDectect {}, Vec::from(DATA));
// Encode the image data to the LVGL binary format with ARGB8888 color format
let data = mid.encode_into(
&lvgl_v9::LVGL {},
EncoderParams {
color_format: lvgl_v9::ColorFormat::ARGB8888,
stride_align: 256,
dither: false,
});
fs::write("img_0.bin", data).expect("Unable to write file");
}
架构
╔═══════════════╗
║ ║
║ ║
┌ ─ ─ ─ ─ ─ ─ ┐ ║
┌ ─ ─ ─ ─ ┐ ║
│ EnDecoder │ ▼
└ ─ ─ ─ ─ ┘ ┌ ─ ─ ─ ─ ─ ─ ┐
│┌───────────┐│ ┌ ─ ─ ─ ─ ┐
│ PNG │ │ MidData │
│└───────────┘│ └ ─ ─ ─ ─ ┘
┌───────────┐ │┌───────────┐│
││ JPEG ││ │ ARGB │
└───────────┘ │└───────────┘│ ╔-------------╗
│┌───────────┐│ ┌───────────┐ ║ ICU_LIB ║
│ SVG │ ││ PATH ││ ╚-------------╝
│└───────────┘│ └───────────┘
┌───────────┐ │┌── ─── ─── ┐│
││ LVGL BIN ││ CUSTOM │
└───────────┘ │└── ─── ─── ┘│
│┌── ─── ─── ┐│ ─ ─ ─ ─ ─ ─ ─
CUSTOM │ ║
│└── ─── ─── ┘│ ║
─ ─ ─ ─ ─ ─ ─ ║
▲ ║
║ ║
╚═══════════════╝
依赖项
~6.5MB
~102K SLoC