2012-06-19 83 views
0

我想知道是否有可能使用C++生成.raw文件格式。如果是,那麼哪個班級處理它?如果可能的話,請放下示例代碼。.raw文件格式C++

我有(X Y Z) <Number>格式的數據,它表示(X Y Z)(X+1 Y+1 Z+1)之間的粒子數。我需要使用ParaView以圖形方式表示此數據,因此需要使用二進制格式的數據。所以想知道是否可以直接生成.raw文件格式?

+2

'.raw'文件通常是圖像文件。 [ParaView](http://paraview.org/)使用的「原始格式」是完全不同的東西,所以你可能想在你的問題中強調這一點。你有這種格式的確切規格? [本頁](http://paraview.org/Wiki/ParaView:FAQ)僅提及:* ParaView支持從文件讀取原始統一直線數據。默認的文件擴展名是.raw。用戶指定尺寸和數據類型,讀者計算標題大小*,這有點模糊(至少對我而言)。 – Groo

+1

這是最大的問題。這個wikipage沒有提到像我這樣的新手。 反正最終我們必須弄清楚 – user1466705

回答

2

通常,二進制數據寫入到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結構)該應用程序使用,然後將其寫入文件。

+0

Hey Groo, 這正是我一直在尋找的。非常感謝。 – user1466705

0

原始圖像文件有很多定義,它非常依賴於上下文。最古老和最簡單的定義是一個沒有標題並且像素值以二進制壓縮而沒有任何壓縮的文件。這實現起來很簡單,只需從左到右和從上到下,將每個像素寫爲紅色,綠色和藍色的值即可。

+1

我不認爲OP在談論圖像格式。 – Groo

+0

@格羅,這只是證明我的觀點,'.raw'完全依賴於上下文。 –