Thanks to visit codestin.com
Credit goes to lib.rs

#gif #image

gift

A library for reading and writing GIF images

20 releases (10 breaking)

Uses new Rust 2024

0.11.0 Mar 16, 2025
0.10.6 Oct 8, 2023
0.10.5 Sep 21, 2023
0.10.0 Oct 24, 2020
0.3.1 May 29, 2019

#393 in Encoding

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

1,160 downloads per month
Used in gift-bin

MIT/Apache

110KB
2.5K SLoC

GIFt

A Rust library for encoding and decoding GIF images.

Documentation

https://docs.rs/gift

Decoding

use gift::Decoder;
use std::fs::File;
use std::io::BufReader;

let gif = BufReader::new(File::open("example.gif")?);
for step in Decoder::new(gif) {
    // was there a decoding error?
    let raster = step?.raster();
    // ... work with raster
}

Encoding

use gift::{Encoder, Step};
use pix::{gray::Gray8, Palette, Raster, rgb::SRgb8};
use std::error::Error;
use std::io::Write;

fn encode<W: Write>(mut w: W) -> Result<(), Box<dyn Error>> {
    let mut raster = Raster::<Gray8>::with_clear(4, 4);
    // ... initialize raster ...
    let mut palette = Palette::new(2);
    // ... initialize palette ...
    let step = Step::with_indexed(raster, palette);
    let mut enc = Encoder::new(&mut w).into_step_enc();
    enc.encode_step(&step)?;
    Ok(())
}

NOTE: building a palette from 24- or 32-bit rasters is not yet implemented.

Dependencies

~300KB