我正在實施Kinect的FaceTrackingBasics-WPF C#代碼來跟蹤某個對象的位置。 試圖收集一個Vector3DF型可變成使用Buffer.BlockCopy一些字節數組如下:將Vector3DF轉換爲字節數組的正確方法是什麼?
this.facePoints3D = frame.Get3DShape();
foreach (Vector3DF[] vector in facePoints3D.GetSlices(n))
{
byte[] bytearray = new byte[vector.Length * this.facePoints3D.Count];
Buffer.BlockCopy(vector, 0, bytearray, 0, bytearray.Length);
}
但我有一個Buffer.BlockCopy ArgumentException的「SRC或dst爲不是基元的陣列。」每次運行執行文件。我知道這是'因爲Vector3DF不是原始的。
現在參考,vector3DF被定義爲:
public struct Vector3DF
{
public Vector3DF(float x, float y, float z)
: this()
{
X = x;
Y = y;
Z = z;
}
// ...
//some more code
//...
}
是否有轉換這個所謂Vector3DF到ByteArray的,所以我可以將它傳遞到存儲的好方法? 謝謝!
數據已經在內存中,你真正想要做的方法嗎?傳遞給指針? – pushpraj
嗯,不完全是@pushpraj,因爲從Vector3DF向量到字節的轉換不是原始的。我問如何正確地從float(在這種情況下Vector3DF)轉換爲bytearray。謝謝! – Calorified