0

我正在处理一个字节序与我的桌面不同的文件,我需要对其进行转换,但是当我将 vtk 可视化时它就起作用了。vtk 文件的 vtkreaders 也是字节序独立的

4

1 回答 1

1

ParaView 可以读取使用 big-endian 或 little-endian 字节顺序编写的 VTK 文件,并会尝试确定在写入给定文件时使用了哪种格式。从VTK 文件格式文档

二进制文件。

只要您遵守两个条件,VTK 中的二进制文件就可以跨不同的计算机系统移植。

第一,确保数据的字节顺序正确,第二,确保每种数据类型的长度一致。大多数时候,VTK 会为您管理二进制文件的字节顺序。当您在一台计算机上编写二进制文件并从另一台计算机读取它时,表示数据的字节将根据需要自动交换。例如,在 Sun 上编写的二进制文件以大端顺序存储,而在 PC 上编写的二进制文件以小端顺序存储。因此,在 Sun 工作站上写入的文件在 PC 上读取时需要进行字节交换。(有关vtkByteSwap实现细节,请参见类。)此处描述的 VTK 数据文件以大端格式编写。

请注意,如果您使用较新的 XML VTK 文件格式,您可以在文件中明确指定字节顺序,例如,请参阅VTK wiki以获取更多信息。基本上该VTKFile元素具有形式

<VTKFile type="..." version="version" byte_order="byte-order" ...>
    ...rest of file...
</VTKFile>

其中byte_order指定:

可以是“LittleEndian”或“BigEndian”,并指示用于文件中任何二进制数据的字节顺序。

需要强调的是,这只是二进制数据的问题。传统的 ASCII VTK 文件不关心字节顺序。

于 2013-10-29T15:51:18.093 回答