1个不稳定版本

0.1.0 2022年7月7日

#1179编码

Download history · Rust 包仓库 649/week @ 2024-03-14 · Rust 包仓库 636/week @ 2024-03-21 · Rust 包仓库 624/week @ 2024-03-28 · Rust 包仓库 680/week @ 2024-04-04 · Rust 包仓库 975/week @ 2024-04-11 · Rust 包仓库 1139/week @ 2024-04-18 · Rust 包仓库 985/week @ 2024-04-25 · Rust 包仓库 1144/week @ 2024-05-02 · Rust 包仓库 752/week @ 2024-05-09 · Rust 包仓库 856/week @ 2024-05-16 · Rust 包仓库 947/week @ 2024-05-23 · Rust 包仓库 909/week @ 2024-05-30 · Rust 包仓库 933/week @ 2024-06-06 · Rust 包仓库 936/week @ 2024-06-13 · Rust 包仓库 936/week @ 2024-06-20 · Rust 包仓库 589/week @ 2024-06-27 · Rust 包仓库

3,534 每月下载量
2 个crate中使用 (通过 zellij-server)

MIT 许可证

31KB
718 代码行

sixel-image

此库提供了一个查询、操作和序列化/反序列化六像素数据的接口。

这里提供了一些方法来完成这些操作

  1. 如果您已经拥有了所有的序列化六像素字节,可以直接构建 SixelImage
  2. 如果您想实时“在线”解析字节,请使用 SixelDeserializer (配合sixel-tokenizer 兄弟crate)。

示例

在事先准备好所有序列化字节的情况下(选项1)

use sixel_image::SixelImage;

fn main() {
    let sample = "
        \u{1b}Pq
        \"2;1;100;200
        #0;2;0;0;0#1;2;100;100;0#2;2;0;100;0
        #1~~@@vv@@~~@@~~$
        #2??}}GG}}??}}??-
        #1!14@
        \u{1b}\\
    ";
    let bytes = sample.as_bytes();

    let sixel_image = SixelImage::new(&bytes).unwrap();
    let serialized = sixel_image.serialize();
    println!("{:?}", serialized);
}

在线解析字节(选项2)

use sixel_tokenizer::Parser;
use sixel_image::SixelDeserializer;

fn main() {
    let sample = "
        \u{1b}Pq
        \"2;1;100;200
        #0;2;0;0;0#1;2;100;100;0#2;2;0;100;0
        #1~~@@vv@@~~@@~~$
        #2??}}GG}}??}}??-
        #1!14@
        \u{1b}\\
    ";
    let bytes = sample.as_bytes();
    let mut parser = Parser::new();
    let mut sixel_deserializer = SixelDeserializer::new();
    for byte in bytes {
        parser.advance(&byte, |sixel_event| {
            let _ = sixel_deserializer.handle_event(sixel_event);
        });
    }
    let sixel_image = sixel_deserializer.create_image().unwrap();
    let serialized = sixel_image.serialize();
    println!("{:?}", serialized);
}

许可证

MIT

依赖项

~0.4–0.9MB
~20K SLoC