1 个不稳定版本
0.1.0 | 2022年3月23日 |
---|
#1120 在 编码
31KB
564 行
🗃 para
是什么?
Flipnote Studios .ppm
动画格式的解码器和实用工具。
为什么这个实现比原始版本好?
这个实现是
- 显著更快,
- 使用安全的Rust实现(一种具有严格类型检查的语言!),
- 并且正在积极更新。
速度
在一个包含二百四十四帧的 .ppm
基准测试中,在十二核心、二十四线程的Ryzen 9处理器上运行命令 $ para ./benchmark.ppm gif benchmark.gif
,para平均耗时566.9893毫秒,而 ppm-parser平均耗时50.4171397秒。
在十二核心、二十四线程的Ryzen 9处理器上运行命令 $ para ./benchmark.ppm 0 benchmark.png
,para平均耗时8.6251毫秒,而 ppm-parser平均耗时358.2232毫秒。
然而,Rust与Python之间的比较并不公平,但这个基准测试展示了para带来的速度提升。
未来计划
- 支持其他格式(特别是
.kwz
) - 在这里和那里进行优化
- 更友好的CLI
- 可能的GUI
启动并运行
安装
适用于基于x86_64的Linux系统和Windows的预构建二进制文件可在发布中找到。如果您使用的是不同的操作系统或架构,例如macOS,您将需要自行构建和安装此工具!
$ cargo install --git https://github.com/Usugata/para --branch main
如果您正在自行构建和安装,您必须已安装Rust!
用法
usage: para <in> <index option> <out>
index options:
gif
thumb
dump
integer(u16)
示例
$ para ./example.ppm 23 example.png
将输出example.ppm
的第二十四帧到example.png
$ para ./example.ppm thumb example.png
将输出example.ppm
的缩略图到example.png
$ para ./example.ppm dump example.json
将输出example.ppm
的元数据到example.json
$ para ./example.ppm gif example.gif
将输出example.ppm
到example.gif
预编译的二进制文件
最新版本的预编译二进制文件可能或可能无法在这里找到。
致谢
- jaames 为完成PPM反向工程和编写原始实现。
- bricklife、mirai-iro、harimau_tigris 和其他日本Flipnote社区成员,他们几乎在应用程序发布后立即开始对PPM格式进行反向工程。
- Midmad和WDLMaster识别所使用的adpcm声音编解码器。
- steven 和 yellows8 为DSiBrew上的PPM文档。
- PBSDS 对PPM进行更多反向工程,并编写hatenatools。
许可证
依赖
~18–28MB
~251K SLoC