All Projects → ZoeyR → flif.rs

ZoeyR / flif.rs

Licence: Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
flif decoder written in Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to flif.rs

Flif
Free Lossless Image Format
Stars: ✭ 3,668 (+6013.33%)
Mutual labels:  flif
Phew
FLIF image viewer and QuickLook plugin for macOS
Stars: ✭ 74 (+23.33%)
Mutual labels:  flif
libflif.js
Another trial to get FLIF to the web platform
Stars: ✭ 40 (-33.33%)
Mutual labels:  flif
node-flif
A Node wrapper for the FLIF executable
Stars: ✭ 43 (-28.33%)
Mutual labels:  flif

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 <[email protected]>"]

[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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].