#image-format #astronomy #decoder #file-format #color-space #reader #xisf

xisf-rs

用于XISF天文学图像文件格式的读取器(最终将包括写入器)库

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 图像

Download history 52/week @ 2024-04-28 16/week @ 2024-06-30 36/week @ 2024-07-28

每月 51 次下载

MIT 协议

250KB
4K SLoC

xisf-rs

Crates.io docs.rs Minimum rustc version License

这是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
单一文件 解码 编码 + 解码 编码 + 解码
分布式文件
解码(部分)httphttpsftp,见路线图
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> 元素
数据块压缩
7zliblz4lz4hczstd
7, 8zliblz4lz4hczstd
7zliblz4lz4hczstd
校验和验证
XML数字签名验证
  1. 不支持64位整数
  2. 标量、复数、字符串和时间点;没有128位浮点值
  3. 仅支持必需属性和颜色空间
  4. 仅支持Int32、Float32、Float64、String和时间点
  5. 仅支持原始字符串;无法解析值
  6. 缺少imageType、offset、orientation和uuid属性
  7. zstd对于规范版本1.0的支持是非标准的,但已被确认将在即将推出的版本中得到支持
  8. 子块尚未支持(这限制了支持的图像大小为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