#decoder #file-format #pure #flif-decoder

flif

纯Rust编写的FLIF解码器

4个版本 (重大更新)

0.4.1 2019年2月24日
0.4.0 2019年2月22日
0.3.0 2018年7月29日
0.2.0 2018年6月8日
0.0.0 2016年8月26日

#69 in #decoder

MIT/Apache

635KB
2.5K SLoC

flif.rs

logo

Build Status version license

flif.rs 是 flif16 图像格式的 Rust 实现。该项目受到了对 flif-rs 的工作的启发。

当前状态

目前该项目处于alpha阶段。截至目前,像素数据可以解码,但仅限于有限的有效flif图像子集。最显著的限制是

  • 不支持动画。
  • 不支持交错图像。
  • 不支持某些转换。

随着项目的进展,越来越多的缺失功能将会得到支持。

开发

先决条件

  • rustc(通过 rustup 或你的发行版包管理器)
  • cargo(使用上述相同方法)

构建

  • git clone https://github.com/dgriffen/flif.rs.git
  • cd flif.rs
  • cargobuild

用法

  1. 将此crate添加到你的crates Cargo.toml 中,如下所示
[package]
name = "some_package"
version = "0.0.1"
authors = ["John Doe <[email protected]>"]

[dependencies]
flif = "0.2"
  1. 在项目根目录中引用crate
extern crate flif;
  1. 现在可以使用此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 许可证定义的任何有意提交以包含在作品中的贡献,应按上述方式双许可,而无需任何附加条款或条件。

商标

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();
}

依赖关系