Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andelf/tinygif
A no_std GIF library for embedded applications(embedded-graphics)
https://github.com/andelf/tinygif
animation embedded-graphics gif no-std
Last synced: 28 days ago
JSON representation
A no_std GIF library for embedded applications(embedded-graphics)
- Host: GitHub
- URL: https://github.com/andelf/tinygif
- Owner: andelf
- License: apache-2.0
- Created: 2023-06-07T16:42:47.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-07-19T20:08:07.000Z (over 1 year ago)
- Last Synced: 2024-03-23T15:47:06.828Z (8 months ago)
- Topics: animation, embedded-graphics, gif, no-std
- Language: Rust
- Homepage:
- Size: 260 KB
- Stars: 18
- Watchers: 2
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# tinygif
A tiny gif decoder written in `no_std` Rust.
This crate requires about 20kB of memory to decode a gif.- [x] basic decoding
- [x] frame iterator
- [ ] interlace support
- [ ] fails on some highly compressed gifs: **Change table size in DecodingDict**## Usage
`Instant` and `Timer` are from Embassy framework, you can replace them with your own delay implementation.
```rust
let image = tinygif::Gif::::from_slice(include_bytes!("../Ferris-240x240.gif")).unwrap();
loop {
for frame in image.frames() {
let start = Instant::now();frame.draw(&mut display).unwrap();
let remain_delay = ((frame.delay_centis as u64) * 10).saturating_sub(start.elapsed().as_millis());
Timer::after_millis(remain_delay).await;// Or, draw at given offset
// use embedded_graphics::prelude::DrawTargetExt;
// frame.draw(&mut display.translated(Point::new(30, 50))).unwrap();
}
}
```## License
MIT or Apache-2.0 at your option.
### License of the gif files used in test
> Animated Ferris in Action
> Happy as a Rustacean at Rust Fest Berlin 2016 (www.rustfest.eu)- CC BY 4.0 [Animated Ferris for Rust Fest Berlin by A. L. Palmer](https://www.behance.net/gallery/42774743/Rustacean)
- Resized by [ezgif](https://ezgif.com/resize)