2013-11-27 53 views
0

我正在處理項目以提供一些Kinect功能作爲WCF服務。我遇到了一些無法序列化的ColorImageFrame等類的問題。我想從它繼承,並使其「可序列化」,但問題是ColorImageFrame類是一個密封的類。有任何想法嗎?我如何序列化Microsoft.Kinect.ColorImageFrame?

這裏是我想要做的一個簡單的例子;我不確定我是否以正確的方式進行。

[ServiceContract] 
public interface IKinectTools 
{  
    [OperationContract] 
    ColorImageFrame getVideoStream(); 
} 

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 
public class KinectTools : IKinectTools 
{ 
    KinectSensor sensor; 
    ColorImageFrame videoData = null; 

    void sensor_ColorFrameReady(object sender, ColorImageFrameReadyEventArgs e) 
    { 
     videoData = e.OpenColorImageFrame(); 

    } 
    public ColorImageFrame getVideoStream() 
    {   
     return videoData; 
    }    
} 

我只是想構建一個WCF服務,使視頻流可供客戶端使用。

回答

0

在屬性中,getter將ColorImageFrame轉換爲byte []。

byte []可以被序列化!

使用此方法,以獲得字節DATAS:

ColorImageFrame.CopyPixelDataTo(字節[])

樣品:

public byte[] ColorImageFrameData 
{ 
    get 
    { 
     byte[] ret= new byte[_colorImageFrame.PixelDataLength]; 
     _colorImageFrame.CopyPixelDataTo(ret); 
     return ret; 
    } 
} 
相關問題