4个版本

0.2.0 2022年11月20日
0.1.5 2019年4月27日
0.1.4 2019年4月24日
0.1.3 2019年4月24日

#880解析器实现

34 每月下载量

GPL-3.0 许可证

350KB
2K SLoC

cgats

读取、写入和操作CGATS颜色文件

这个crate是一个用于读取、写入和转换CGATS颜色文件的库,目前正在开发中。目前这个库仅支持ASCII文本格式,但打算很快添加对XML的支持。包含的二进制文件是库API的简单实现。

v0.2版本的新特性

  • 使用迭代器进行读取和操作数据的完全重写。
  • 许多新的方法用于迭代数据并在类型之间进行转换。
  • 具有新功能的示例二进制文件。

Rust API文档

或自己构建文档

cargo doc --open

CGATS格式

以下是一个基本的CGATS颜色文件

CGATS.17
BEGIN_DATA_FORMAT
SAMPLE_ID	SAMPLE_NAME	CMYK_C	CMYK_M	CMYK_Y	CMYK_K
END_DATA_FORMAT
BEGIN_DATA
1	Cyan	100	0	0	0
2	Magenta	0	100	0	0
3	Yellow	0	0	100	0
4	Black	0	0	0	100
5	Blue	100	100	0	0
6	Red	0	100	100	0
7	Green	100	0	100	0
8	3cBlack	100	100	100	0
9	4cBlack	100	100	100	100
10	3cGray	50	40	40	0
11	1cGray	0	0	0	50
END_DATA

test_files目录中有更多示例。CGATS格式类似于TSV,但有一些增加。`BEGIN_DATA_FORMAT`/END_DATA_FORMAT` 和 `BEGIN_DATA`/END_DATA` 标签指示测量结果的格式。

二进制使用

USAGE:
    cgats [OPTIONS] [FILE]... [SUBCOMMAND]

ARGS:
    <FILE>...    CGATS files

OPTIONS:
    -f, --output-file <output-file>...    Write output to a file
    -h, --help                            Print help information
    -P, --precision <precision>           Number of decimal places to round values to [default: 4]
    -V, --version                         Print version information

SUBCOMMANDS:
    average        Average two or more CGATS files
    colorburst     Convert to and from ColorBurst linearization format
    concatenate    Concatenate rows from multiple CGATS files
    delta          Calculate DeltaE between all values in two compatible CGATS files
    help           Print this message or the help of the given subcommand(s)
    info           Print basic CGATS info
    print          Print the processed CGATS file(s)
    transpose      Transpose chart patches given a layout width

将基本的CGATS信息打印到控制台

$ cgats test_files/cgats0.txt
cgats0.txt: Cgats[Cmyk, Lab, Xyz, Spectral(380, 780, 10); 1617]

3个CGATS文件的平均值

cgats average test_files/cgats{1,2,3}.tsv
  • 请注意,这些文件必须具有相同的 DATA_FORMAT 和样本数。

连接来自多个CGATS文件的样本集

cgats cat test_files/cgats{1,2,3}.tsv
  • 请注意,这些文件必须具有相同的 DATA_FORMAT

计算两个CGATS文件中每对值之间的Delta E

cgats delta --method 2000 test_files/colorburst{1,2}.lin

计算具有统计分析报告的Delta E

$ cgats delta --report test_files/colorburst{1,2}.lin
Number of Samples: 126
DE Formula: DE2000
E-Factor (95th Percentile): 17.02

OVERALL 100% - (126 colors)
        Average DE: 7.7589
            Max DE: 17.8084
            Min DE: 1.4601
          StDev DE: 4.9772

BEST 95% - (120 colors)
        Average DE: 7.2736
            Max DE: 16.6847
            Min DE: 1.4601
          StDev DE: 4.5895

WORST 5% - (6 colors)
        Average DE: 17.4635
            Max DE: 17.8084
            Min DE: 17.0220
          StDev DE: 0.2825

  • 请注意,两个CGATS文件必须具有相同的样本数,并且每个都必须包含 LAB_LLAB_ALAB_B 字段。

二进制安装

首先,您需要下载并安装rust。然后

git clone https://gitlab.com/ryanobeirne/cgats
cd cgats
cargo install --example=cgats --path=.

待办事项

  • 添加转换函数以及支持转换到和从CXF/MXF
  • 添加支持将数据直接写入CGATS对象,例如来自分光光度计

依赖项

~2MB