#数据传输 #传输 #数据 #格式 #图像 #ILDA #文件路径

ilda-idtf

ILDA图像数据传输格式规范(版本011,2014-11-16)的完整实现

1个不稳定版本

0.1.0 2020年4月29日

解析器实现中排名第1650

Download history 234/week @ 2024-03-13 619/week @ 2024-03-20 305/week @ 2024-03-27 163/week @ 2024-04-03 372/week @ 2024-04-10 159/week @ 2024-04-17 302/week @ 2024-04-24 569/week @ 2024-05-01 213/week @ 2024-05-08 228/week @ 2024-05-15 111/week @ 2024-05-22 48/week @ 2024-05-29 54/week @ 2024-06-05 31/week @ 2024-06-12 21/week @ 2024-06-19 891/week @ 2024-06-26

每月下载量1,024
nannou_laser中使用

MIT/Apache

31KB
702

ilda-idtf 动作状态 Crates.io Crates.io docs.rs

ILDA图像数据传输格式规范(版本011,2014-11-16)的完整实现。

此库提供了高效读取和写入IDTF。读取器实现使用零拷贝方法,将结构直接映射到读取的内存。

用法

可以使用SectionReader类型从任何实现std::io::Read的类型中读取IDTF部分。这允许从任何字节源(例如文件、内存、套接字等)高效地读取格式。

let mut reader = ilda_idtf::SectionReader::new(reader);

提供了open函数,方便打开给定路径文件的缓冲IDTF SectionReader

let mut reader = ilda_idtf::open(path).unwrap();

SectionReader::read_next方法允许遍历包含的各个部分。

while let Ok(Some(section)) = reader.read_next() {
    // ...
}

每个生成的Section提供对Header和内部reader的访问。确切的reader类型通过头文件中指定的Format来确定。用户必须对部分的reader字段进行模式匹配,以获取正确子部分读取器类型的实例。然后,用户可以读取相关子部分数据。

match section.reader {
    ilda_idtf::SubsectionReaderKind::Coords3dIndexedColor(mut r) => {
        while let Some(point) = r.read_next().unwrap() {
            // ...
        }
    }
    ilda_idtf::SubsectionReaderKind::Coords2dIndexedColor(mut r) => {
        while let Some(point) = r.read_next().unwrap() {
            // ...
        }
    }
    ilda_idtf::SubsectionReaderKind::ColorPalette(mut r) => {
        while let Some(palette) = r.read_next().unwrap() {
            // ...
        }
    }
    ilda_idtf::SubsectionReaderKind::Coords3dTrueColor(mut r) => {
        while let Some(point) = r.read_next().unwrap() {
            // ...
        }
    }
    ilda_idtf::SubsectionReaderKind::Coords2dTrueColor(mut r) => {
        while let Some(point) = r.read_next().unwrap() {
            // ...
        }
    }
}

为了解释索引颜色数据格式,必须使用调色板。调色板是一个有序的RGB颜色列表。虽然调色板应该由前面的Section指定,但这并不总是如此。ILDA IDTF规范推荐使用默认调色板。此调色板通过DEFAULT_PALETTE常量提供。

许可证

根据以下许可证之一授权

您可选择。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您提交的任何有意包含在作品中的贡献都将根据上述方式双授权,不附加任何额外的条款或条件。

测试文件

test_files目录中的文件是从以下网站获取的

http://www.laserfx.com/Backstage.LaserFX.com/Archives/DownloadIndex.html

这些文件不包括在上述许可证下。每个test_files/子目录是由不同的激光艺术家提供的。请参阅每个目录中的ReadMe.txt,以获取有关其来源和使用条件的更多信息。

依赖关系

~2.5MB
~51K SLoC