7个版本
使用旧的Rust 2015
0.1.6 | 2017年7月22日 |
---|---|
0.1.5 | 2017年4月29日 |
0.1.4 | 2017年2月3日 |
0.1.2 | 2017年1月21日 |
0.1.0 | 2016年10月23日 |
#243 in 视频
用于 2 crates
175KB
4K SLoC
LibFLIC
关于
LibFLIC提供了对Autodesk Animator FLI和Autodesk Animator Pro FLC文件的编解码支持。
代码基于Jim Kent发布并由Animator和Animator Pro的文档和源代码。
LibFLIC完全使用Rust编写。提供了对底层编解码器的C绑定。
示例
在examples/
目录中提供了一些示例程序
- quickfli - 一个简单的FLIC播放器。
- recompress - 加载和保存FLIC文件。
- browse - 显示邮票(缩略图)。
要克隆此存储库,请运行
git clone https://github.com/wangds/libflic.git
然后使用Cargo构建库并运行示例程序。
cargo build --example quickfli
要播放FLIC文件,请运行
cargo run --example quickfli <example.flc>
基本用法
将LibFLIC添加到项目的Cargo.toml作为依赖项
[dependencies]
flic = "0.1"
在项目中导入库,例如
extern crate flic;
use flic::{FlicFile,RasterMut};
FlicFile
类型指向从磁盘流出的FLIC文件。当打开FLIC文件时,它将首先读取FLIC元数据,例如动画的尺寸和速度。FlicFile
将保持文件打开状态。
let flic = FlicFile::open(Path::new("example.flc"))?;
为将要解码的动画分配像素数据和调色板数据缓冲区。
let flic_w = flic.width() as usize;
let flic_h = flic.height() as usize;
let mut buf = vec![0; flic_w * flic_h];
let mut pal = vec![0; 3 * 256];
将这些两个缓冲区及其尺寸和步长组合在一起,形成一个单一的Raster或
RasterMut
类型会非常方便。
LibFLIC将请求一个Raster
类型,对于需要只读访问缓冲区的操作(例如编码),当它需要读写访问时(例如解码),则请求一个RasterMut
类型。
例如,要解码一帧,我们首先创建一个RasterMut
,如下所示通过可变借用buf和
pal
。Rasters易于创建,因此无需担心频繁创建和丢弃。
let mut raster = RasterMut::new(flic_w, flic_h, &mut buf, &mut pal);
flic.read_next_frame(&mut raster);
由于FLIC文件存储连续帧之间的差异,当读取动画中的下一帧时,确保缓冲区和调色板包含前一帧数据的责任由库用户承担。
文档
- 文档.
作者
王大卫
依赖项
~210KB