2个不稳定版本
0.2.0 | 2023年11月9日 |
---|---|
0.1.0 | 2023年5月17日 |
#950 in 图像
24KB
454 行
Pxo
加载Pixelorama文件的实用工具。仅支持最近的Pixelorama版本。
默认情况下,文件将被读取到Pxo
文件中,每个Cel
(每个帧和图层都存在一个)将被存储为单独的图像。仅在需要单独图层的情况下,如不同、可交换的服装存储在不同的图层时,才推荐使用此加载方法。
默认启用的sprite
功能允许将文件加载到更易用的Sprite
中。图层合并,每帧只有一个图像。其余的Sprite
描述了如何对其进行动画处理。
pack
功能允许打包加载的文件。一个Sprite
的图像被打包到一个单独的精灵图中,并使用PackedSprite
来保存精灵数据,每个帧由一个PackedFrame
表示。图像从PackedSprite
单独返回,因为也可以将多个文件打包到同一图像中。
基本用法
# use std::fs::File;
let file = File::open("path/to/your/sprite.pxo")?;
// Load a .pxo and convert it into a sprite
let pxo = pxo::Pxo::load(file)?;
let sprite = pxo::Sprite::from(pxo, SpriteOptions::Default())?;
// Alternatively, a .pxo can be directly loaded as a sprite
let sprite = pxo::Sprite::load(file, SpriteOptions::Default())?;
// Packing a single sprite
// An error will be returned if the sprite cannot be packed into a 2048x2048 image
let (packed, image) = pxo::PackedSprite::pack_sprite(sprite, 2048, 2048)?;
// Packing two sprites, loaded from two different files, into the same image
sprite_a = pxo::Sprite::load(file_a, SpriteOptions::Default())?;
sprite_b = pxo::Sprite::load(file_b, SpriteOptions::Default())?;
let (packed, image) = pxo::PackedSprite::pack_sprites(&[sprite_a, sprite_b], 2048, 2048)?;
依赖关系
~9.5MB
~148K SLoC