4个版本
0.0.4 | 2023年9月13日 |
---|---|
0.0.3 | 2023年9月8日 |
0.0.2 | 2023年8月23日 |
0.0.1 | 2023年8月23日 |
#453 in 图像
每月 51 次下载
250KB
4K SLoC
xisf-rs
这是Pleiades Astrophoto开源的扩展图像序列化格式(XISF)文件格式的非关联实现,这是其旗舰编辑软件PixInsight的本地图像格式。目标是100%支持规范版本1.0,与libXISF或Pleiades Astrophoto自己的PixInsight类库等实现相比,后者是以二维图像为前提编写的。目前正在快速发展,但所有对公共API的更改都将根据Cargo的SemVer指南进行版本更新,然后再推送到crates.io。
功能比较
xisf-rs |
libXISF |
PCL |
|
---|---|---|---|
语言 | Rust | C++ | C++ |
许可证 | MIT | GPLv3 | BSD-4-Clause-like |
单一文件 | 解码 | 编码 + 解码 | 编码 + 解码 |
分布式文件 | ❌ | ❌ | |
N-D图像 | ✅ | ❌ | ❌ |
像素样本格式 | 标量、复数 | 无知的(仅原始字节) | 标量1、复数 |
图像元数据 | 属性、XISF属性2、FITS关键词、ICC配置文件、RGB工作空间、显示函数、CFA、分辨率、缩略图 |
属性3、XISF属性4、FITS关键词5、ICC配置文件、CFA、缩略图 |
属性6、XISF属性、FITS关键词、ICC配置文件、RGB工作空间、显示函数、CFA、分辨率、缩略图 |
支持的XISF属性位置 | <Image> ,<Metadata> ,<xisf> |
<图像> |
<Image> ,<Metadata> ,<xisf> |
<Table> 元素 |
❌ | ❌ | ❌ |
<Reference> 元素 |
✅ | ❌ | ❌ |
数据块压缩 | ✅7zlib ,lz4 ,lz4hc ,zstd |
✅7, 8zlib ,lz4 ,lz4hc ,zstd |
✅7zlib ,lz4 ,lz4hc ,zstd |
校验和验证 | ✅ | ❌ | ✅ |
XML数字签名验证 | ❌ | ❌ | ❌ |
- 不支持64位整数
- 标量、复数、字符串和时间点;没有128位浮点值
- 仅支持必需属性和颜色空间
- 仅支持Int32、Float32、Float64、String和时间点
- 仅支持原始字符串;无法解析值
- 缺少imageType、offset、orientation和uuid属性
zstd
对于规范版本1.0的支持是非标准的,但已被确认将在即将推出的版本中得到支持- 子块尚未支持(这限制了支持的图像大小为4GiB)
依赖关系
- 最低支持的Rust版本(MSRV):1.64.0,已验证于
x86_64-unknown-linux-gnu
- libxml2 (MIT)
- lz4 (BSD-2-Clause)
- zstd (BSD-3-Clause)
- 可以配置使用zlib (Zlib) 或zlib-ng (Zlib)
- 测试套件需要在启用
remote-ftp
功能时安装Docker
路线图
- 读取N维图像
- 数据块压缩
- 校验和验证
- 复数图像
-
<Reference>
元素 -
<FITSKeyword>
元素 - 图像缩略图
- 远程资源
- 在连接之前询问用户是否信任
- 缓存
- 带有校验和的文件需要读取两次,现在这意味着文件会被下载两次
- 授权/凭证存储
- 需要跟踪会话的基于状态的方案,如FTP
- XISB文件
- SFTP/SCP
- 非
<Property>
图像元数据 - 标量、复数、字符串和时间点
<Property>
元素 - 写入单一文件
-
<Table>
元素 - 向量、矩阵
<Property>
元素 - 写入分布式文件
- 颜色空间转换?
- XML数字签名验证
- 128位浮点
<Property>
类型 - 异步数据块读取函数
- C/C++11接口与
cbindgen
依赖关系
~12–20MB
~291K SLoC