Skip to content
flif decoder written in Rust
Branch: master
Clone or download
Latest commit 1c77f76 Feb 24, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
flif-cli fix 0.4 checklist Feb 24, 2019
flif fix 0.4 checklist Feb 24, 2019
fuzz udpdate fuzz target Aug 1, 2018
resources add rgba edge test Dec 26, 2018
.gitignore cleanup warning and fix bin Dec 24, 2017
.travis.yml fix 0.4 checklist Feb 24, 2019
CHANGELOG.md
Cargo.toml Grayscale support, optimizations, API changes (#21) Jun 7, 2018
LICENSE-APACHE dual license Oct 2, 2018
LICENSE-MIT dual license Oct 2, 2018
README.md finish 0.4 doc updates Feb 22, 2019
SpecNotes.md add specification notes Aug 26, 2017
flif.rs.svg update logo to svg Aug 26, 2017

README.md

flif.rs

logo

Build Status version license

flif.rs is a Rust implementation of the flif16 image format. This project was inspired by the work on flif-rs.

Current Status

Currently this project in alpha stage. As of right now pixel data can be decoded but only for a limited subset of valid flif images. The most significant limitations are:

  • Animations are not supported.
  • Interlaced images are not supported.
  • Certain transformations are not supported.

As this project progresses more and more missing features will end up being supported.

Development

Prerequisites

  • rustc (either via rustup or your distributions package manager)
  • cargo (via the same method as above)

Building

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

Usage

  1. add this crate to your crates Cargo.toml like so:
[package]
name = "some_package"
version = "0.0.1"
authors = ["John Doe <you@example.com>"]

[dependencies]
flif = "0.2"
  1. in the root of your project reference the crate:
extern crate flif;
  1. the crate can now be used to decode flif headers :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();
}

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Trademarks

The flif.rs logo is a combination of the official flif logo and Rust logo.

You can’t perform that action at this time.