1个不稳定版本
0.1.0 | 2024年2月7日 |
---|
#771 in 图像
28KB
470 行
bmp8bit
Rust编写的流行图像库不允许保存基于颜色表的bmp。这个小crate扩展了image-rs,使其能够将Dynamic Image
作为256色BMP写入。
理论上它可以写入带有自定义颜色表的图像,但我从未尝试过。有关更多详细信息,请参阅使用部分。
构建
cargo build
使用方法
如果你使用image-rs,使用方法如下
use bmp8bit::{self, save_8bit_win};
let img: image::DynamicImage = somehow_acquired_image();
save_8bit_win(img, "out/img_8bit.bmp");
你自己的位图图像表示
如果你实现了自己的位图图像表示,你需要实现Colors256
特质。它有两个方法
samples
用于将你的位图图像表示转换为使用指定颜色表的字节数组。这个数组应该包含整个图像。使用ColorTableSample::new
将你的样本转换为颜色表样本,然后使用ColorTable::convert
获取样本的字节数组。size
仅返回描述你的图像宽度和高度的Dimensions
结构。
你可以在image_rs模块中找到参考实现。
自定义颜色表
理论上,使用自定义颜色表的Colors256::samples
也会生成有效的bmp图像。需要一些测试。windows_color_table可以作为示例。
许可证
Apache许可证第2版
贡献
我还不擅长Rust,所以任何问题报告、改进、建议(甚至代码风格)都受到欢迎。
依赖关系
~5.5MB
~69K SLoC