5个版本
0.2.3 | 2023年10月12日 |
---|---|
0.2.2 | 2023年7月15日 |
0.2.1 | 2023年7月12日 |
0.2.0 | 2023年7月12日 |
0.1.0 | 2023年7月12日 |
254 在 图像 中
每月 下载 33 次
在 2 crates 中使用
285KB
142 行
sixel-bytes
使用 sixel-sys 编码图像。
⚠️ 这是我第一个使用 unsafe
和FFI的crate。请自行检查源代码,该crate非常小。欢迎提交PR。
要写入文件中的sixel,sixel-rs 更安全,并具有更多选项。
尽管名为sixel-bytes,但此crate生成一个 String
。
示例
将生成的图像编码为sixel并打印它
let mut bytes: Vec<u8> = Vec::new();
for x in 0..255 {
for y in 0..255 {
bytes.append(&mut vec![x, 0, y]);
}
}
let data = sixel_bytes::sixel_string(
&bytes,
255,
255,
sixel_bytes::PixelFormat::RGB888,
sixel_bytes::DiffusionMethod::Atkinson,
).unwrap();
assert_eq!(&data[..3], "\u{1b}Pq");
将来自 image crate的图像编码为sixel并打印它
let image = image::io::Reader::open("./assets/Ada.png")
.unwrap()
.decode()
.unwrap()
.into_rgba8();
let bytes = image.as_raw();
match sixel_bytes::sixel_string(
bytes,
image.width() as _,
image.height() as _,
sixel_bytes::PixelFormat::RGBA8888,
sixel_sys::DiffusionMethod::Stucki,
) {
Err(err) => eprintln!("{err}"),
Ok(data) => print!("{data}"),
}
二进制文件
sixel <path/to/image>
使用 image crate加载图像,以支持格式,转换为RGBA8888,编码为sixel,并将结果字符串输出到stdout。必须使用 image
功能构建。
test-sixel
仅生成一些255x255的渐变图像并将其输出到stdout。
只有某些终端/终端仿真器具有渲染sixel图形的能力。有关支持sixel的程序列表,请参阅 https://www.arewesixelyet.com/。
尝试使用 xterm
运行 -ti 340
。
功能
默认禁用 image
功能,但需要用于 sixel
二进制文件。
当前版本:0.2.2
许可证:MIT
依赖关系
~5.5MB
~45K SLoC