10 releases
| 0.3.8 | Mar 14, 2024 |
|---|---|
| 0.3.7 | Mar 3, 2024 |
| 0.3.6 | Jun 30, 2023 |
| 0.3.5 | Apr 24, 2022 |
| 0.2.0 | Mar 27, 2021 |
#194 in Data formats
1,221 downloads per month
Used in 16 crates
(10 directly)
165KB
3.5K
SLoC
asefile
Utilities for loading Aseprite files. This library directly reads the binary Aseprite files (specification) and does not require you to export files to JSON. This should make it fast enough to load your assets when the game boots up (during development). You can also use it to build your own asset pipelines.
Example
use std::path::Path;
use asefile::AsepriteFile;
use image::{self, ImageFormat};
fn main() {
let file = Path::new("input.aseprite");
// Read file into memory
let ase = AsepriteFile::read_file(&file).unwrap();
// Write one output image for each frame in the Aseprite file.
for frame in 0..ase.num_frames() {
let output = format!("output_{}.png", frame);
// Create image in memory, then write it to disk as PNG.
let img = ase.frame(frame).image();
img.save_with_format(output, ImageFormat::Png).unwrap();
}
}
Unsupported Features
The following features of Aseprite 1.2.25 are currently not supported:
- color profiles
Bug compatibility
-
For indexed color files Aseprite supports blend modes, but ignores them when exporting the image. The images constructed by
asefilecurrently match the in-editor preview. -
Aseprite has a bug in its luminance and color blend modes. Since this is the same in editor and in exported files,
asefilereproduces this bug. (If Aseprite fixes this,asefilewill fix this bug based on the version that the file was generated with.)
Dependencies
~2MB
~43K SLoC