12个版本

0.1.11 2024年5月1日
0.1.10 2024年3月12日
0.1.5 2024年2月29日

#466 in 图像

38 每月下载量
用于 icu_tool

MIT 许可证

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