在我的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]]
无需复制。它使您的可变数据变得不可变,并且您获得了复制。