1个不稳定版本
0.1.0 | 2022年7月7日 |
---|
#1179 在 编码
3,534 每月下载量
在 2 个crate中使用 (通过 zellij-server)
31KB
718 代码行
sixel-image
此库提供了一个查询、操作和序列化/反序列化六像素数据的接口。
这里提供了一些方法来完成这些操作
- 如果您已经拥有了所有的序列化六像素字节,可以直接构建
SixelImage
- 如果您想实时“在线”解析字节,请使用
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