我正在开发项目以提供一些Kinect功能作为WCF服务。我遇到了一些像ColorImageFrame这样无法序列化的类的问题。我想继承它并使其成为“Serializable”但问题是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 :(得分:0)
在属性中,getter将ColorImageFrame转换为byte []。
byte []可以序列化!
使用此方法获取字节数据:
ColorImageFrame.CopyPixelDataTo(字节[])
示例:
public byte[] ColorImageFrameData
{
get
{
byte[] ret= new byte[_colorImageFrame.PixelDataLength];
_colorImageFrame.CopyPixelDataTo(ret);
return ret;
}
}