19 个不稳定版本
0.10.6 | 2023 年 10 月 8 日 |
---|---|
0.10.3 | 2023 年 8 月 31 日 |
0.10.0 | 2020 年 10 月 24 日 |
0.9.1 | 2020 年 6 月 25 日 |
0.3.1 | 2019 年 5 月 29 日 |
#302 在 多媒体 类别中
每月 31 下载量
120KB
3K SLoC
GIFt
GIF 图像编码和解码的 Rust 库。
文档
解码
use gift::Decoder;
use std::fs::File;
use std::io::BufReader;
let gif = BufReader::new(File::open("example.gif")?);
for step in Decoder::new(gif) {
// was there a decoding error?
let raster = step?.raster();
// ... work with raster
}
编码
use gift::{Encoder, Step};
use pix::{gray::Gray8, Palette, Raster, rgb::SRgb8};
use std::error::Error;
use std::io::Write;
fn encode<W: Write>(mut w: W) -> Result<(), Box<dyn Error>> {
let mut raster = Raster::<Gray8>::with_clear(4, 4);
// ... initialize raster ...
let mut palette = Palette::new(2);
// ... initialize palette ...
let step = Step::with_indexed(raster, palette);
let mut enc = Encoder::new(&mut w).into_step_enc();
enc.encode_step(&step)?;
Ok(())
}
注意:尚未实现从 24 位或 32 位光栅创建调色板。
工具
该库附带一个 gift
命令行工具,可以显示 GIF 文件中的块。
cargo install gift --features=cmd
注意:此工具仍在开发中,某些功能尚未实现。
依赖
~0.2–8MB
~55K SLoC