【发布时间】:2015-09-03 09:33:53
【问题描述】:
在我的 iOS 端,我通过 NSInputStream 接收到图像流。 NSMutableData 将包含 [JPG IMAGE][JPG IMAGE][PNG IMAGE] 中的图像。
有没有什么优雅的方法可以从NSMutableData 获取图像?
编辑:感谢所有回复。我不知道图像的开始/结束。我将缓冲区转换为 NSData 并将其附加到 NSMutableData。我需要在图像之间添加分隔符吗?
服务器(.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)上按下连接,
2.与服务器建立连接(.Net)
3. 服务器创建图片并发送给客户端
4. 客户端显示图像。
5. 客户端发起的连接和断开连接。
更新:我通过以下方式工作:
1.在服务器端,在发送每张图片后,我都会附加一个分隔符。
2. 在客户端,我像往常一样将数据附加到NSMutableData 并检查delimeter 的最后几个字节。如果匹配,我可以安全地通过分隔符将NSMutableData 分块。
通过它,我可以接收和显示多个图像!
【问题讨论】:
-
-[UIImage imageWithData:]? developer.apple.com/library/ios/documentation/UIKit/Reference/… -
所以数据中有多个图像?你怎么知道每个图像的开始和结束位置?或者原始数据和编码数组是否包含图像数据?不太清楚你在问什么......
-
您可以查找此内容:stackoverflow.com/questions/30481563/… 并对其进行修改以检查可能的 PNG 图像(检查文件的开头/结尾:w3.org/TR/PNG-Structure.html)
标签: ios nsinputstream nsmutabledata