我正在处理一个字节序与我的桌面不同的文件,我需要对其进行转换,但是当我将 vtk 可视化时它就起作用了。vtk 文件的 vtkreaders 也是字节序独立的
问问题
856 次
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 回答