在我的iOS端,我通过NSInputStream收到了图像流。 NSMutableData将包含[JPG IMAGE][JPG IMAGE][PNG IMAGE]中的图像。

有什么优雅的方法可以从NSMutableData获取图像吗?

编辑:感谢所有答复。我不知道图像的开始/结束。我将缓冲区转换为NSData并将其附加到NSMutableData。我是否需要在图像之间包括定界符?

Server(.Net):连续发送图像,因此在客户端(iOS)上,我将永远不会遇到NSStreamEvent.EndEncountered。关闭NetoworkStream会让我ObjectDisposedException was unhandled, cannot access a disposed object (fixing it now)

客户端:不知道服务器何时完成发送,它所拥有的只是一个NSMutableData(fixing it now)我将buffer转换为NSData并将其附加到NSMutableData

基本上我想实现的是:
1.我按客户端(iOS app)上的connect,
2.与服务器建立连接(.Net
3.服务器创建图像并将其发送到客户端
4.客户端显示图像。
5.客户端启动的连接和断开连接。

更新:我通过以下方式使它起作用:
1.在服务器端,每个图像发送后,我附加一个定界符。
2.在客户端,我像往常一样将数据附加到NSMutableData并检查delimeter的最后几个字节。如果匹配,我可以安全地按分隔符对NSMutableData进行分块。

通过这种方式,我能够接收和显示多个图像!

最佳答案

您可以使用

[UIImage imageWithData:[yourMutableData copy]]


无需复制。它使您的可变数据变得不可变,并且您获得了复制。

10-08 05:31