17个稳定版本 (4个主要版本)
5.0.1 | 2024年7月9日 |
---|---|
5.0.0-beta.2 | 2024年1月23日 |
4.0.1 | 2023年9月21日 |
4.0.0 | 2022年11月17日 |
1.0.1 |
|
在视频中排名第7
每月下载量278,647
被28个crate使用(10个直接使用)
13KB
162 行
请正确处理GIF帧
此crate实现了gif crate的GIF销毁方法。
gifcrate仅公开原始帧数据,不足以正确渲染动画GIF。GIF需要特殊的帧组合,这在本crate中展示为非平凡。
用法
let file = File::open("example.gif")?;
let mut gif_opts = gif::DecodeOptions::new();
// Important:
gif_opts.set_color_output(gif::ColorOutput::Indexed);
let mut decoder = gif_opts.read_info(file)?;
let mut screen = gif_dispose::Screen::new_decoder(&decoder);
while let Some(frame) = decoder.read_next_frame()? {
screen.blit_frame(&frame)?;
screen.pixels // that's the frame now in RGBA format
}
screen.pixels
缓冲区使用ImgVec表示2D图像。
更多请参考examples/explode.rs
。
要求
- 最新稳定版Rust(1.45+)
lib.rs
:
实现了gif crate的GIF销毁方法。
gifcrate仅公开原始帧数据,不足以正确渲染GIF。GIF需要特殊的帧组合,这在本crate中展示为非平凡。
let file = std::fs::File::open("example.gif")?;
let mut gif_opts = gif::DecodeOptions::new();
// Important:
gif_opts.set_color_output(gif::ColorOutput::Indexed);
let mut decoder = gif_opts.read_info(file)?;
let mut screen = gif_dispose::Screen::new_decoder(&decoder);
while let Some(frame) = decoder.read_next_frame()? {
screen.blit_frame(&frame)?;
let _ = screen.pixels_rgba().clone(); // that's the frame now in RGBA format
let _ = screen.pixels_rgba().to_contiguous_buf(); // that works too
}
依赖项
~550KB