【问题标题】:.raw file format C++.raw 文件格式 C++
【发布时间】:2012-06-19 14:34:34
【问题描述】:

我想知道是否可以使用 C++ 生成 .raw 文件格式。如果是,那么哪个班级处理它?如果可能,请记下示例代码。

我有(X Y Z) <Number> 格式的数据,它表示(X Y Z)(X+1 Y+1 Z+1) 之间的粒子数。我需要使用ParaView 以图形方式表示这些数据,因此需要二进制格式的数据。那么想知道是否可以直接生成.raw文件格式?

【问题讨论】:

  • .raw 文件通常是图像文件。 ParaView 使用的“原始格式”是完全不同的东西,因此您可能想在您的问题中强调这一点。你有这种格式的确切规格吗? This page 只提到:ParaView 支持从文件中读取原始的统一直线数据。默认文件扩展名为 .raw。用户指定维度和数据类型,阅读器计算标题大小,这有点模糊(至少对我来说)。
  • 这是最大的问题。对于像我这样的新手,维基页面没有明确提及。无论如何,最终我们必须弄清楚

标签: c++ file file-io paraview


【解决方案1】:

通常,要在 C++ 中将二进制数据写入文件,您需要使用 ofstream

#include <fstream.h>
...

{
   MyData myData = GetData();
   ofstream binaryFile ("file.raw", ios::out | ios::binary);
   binaryFile.write ((char*)&myData, sizeof (MyData));
   binaryFile.close();
}

由您决定此应用程序使用的实际格式(如上例中的 Data 结构),然后将其写入文件。

【讨论】:

  • 嘿 Groo,这正是我想要的。非常感谢。
【解决方案2】:

原始图像文件有很多定义,很大程度上取决于上下文。最古老和最简单的定义是一个没有标题的文件,并且像素值以二进制形式打包,没有任何压缩。这实现起来很简单,只需将每个像素写成红色、绿色和蓝色的 3 个unsigned char 值,从左到右,从上到下。

【讨论】:

  • @Groo,这正好证明了我的观点,.raw 完全依赖于上下文。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-14
  • 2021-10-19
  • 2014-05-23
相关资源
最近更新 更多