4个版本 (重大更新)
0.4.1 | 2019年2月24日 |
---|---|
0.4.0 |
|
0.3.0 | 2018年7月29日 |
0.2.0 | 2018年6月8日 |
0.0.0 |
|
#69 in #decoder
635KB
2.5K SLoC
flif.rs
flif.rs 是 flif16 图像格式的 Rust 实现。该项目受到了对 flif-rs 的工作的启发。
当前状态
目前该项目处于alpha阶段。截至目前,像素数据可以解码,但仅限于有限的有效flif图像子集。最显著的限制是
- 不支持动画。
- 不支持交错图像。
- 不支持某些转换。
随着项目的进展,越来越多的缺失功能将会得到支持。
开发
先决条件
- rustc(通过 rustup 或你的发行版包管理器)
- cargo(使用上述相同方法)
构建
git clone https://github.com/dgriffen/flif.rs.git
cd flif.rs
cargobuild
用法
- 将此crate添加到你的crates
Cargo.toml
中,如下所示
[package]
name = "some_package"
version = "0.0.1"
authors = ["John Doe <[email protected]>"]
[dependencies]
flif = "0.2"
- 在项目根目录中引用crate
extern crate flif;
- 现在可以使用此crate解码flif头信息 :D
extern crate flif;
use std::fs::File;
use std::io::BufReader;
use flif::Flif;
fn main() {
let file = std::fs::File::open("/path/to/image.flif").unwrap();
// use `BufReader` to improve performance
let reader = BufReader::new(file);
let image = Flif::decode(reader).unwrap();
println!("image info: {:?}", image.info());
let raw_pixels = image.get_raw_pixels();
}
许可证
根据您的选择,许可为以下之一
- Apache许可证2.0版本(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的任何有意提交以包含在作品中的贡献,应按上述方式双许可,而无需任何附加条款或条件。
商标
flif.rs标志是官方flif标志和Rust标志的组合。
lib.rs
:
示例
extern crate flif;
use std::fs::File;
use std::io::BufReader;
use flif::Flif;
fn main() {
let file = std::fs::File::open("../resources/flif_logo.flif").unwrap();
// use `BufReader` to improve performance
let reader = BufReader::new(file);
let image = Flif::decode(reader).unwrap();
println!("image info: {:?}", image.info());
let raw_pixels = image.raw();
}