[英]How to pull UIImages from NSData from a socket
我正在使用ASyncSocket將一些UIImage從一台設備移動到另一台設備。
本質上,在一台設備上,我有:
NSMutableData *data = UIImageJPEGRepresentation(image, 0.1);
if(isRunning){
[sock writeData:data withTimeout:-1 tag:0];
}
因此,新圖像將經常被添加到套接字(例如網絡攝像頭)。
然后,在另一台設備上,我正在打電話:
[listenSocket readDataWithTimeout:1 tag:0];
它將回應:
- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{
[responseData appendData:data];
[listenSocket readDataWithTimeout:1 tag:0];
}
本質上,我想做的是使用NSTimer調用@selector(PullImages):
-(void) PullImages {
在這里,我希望能夠將圖像從ResponseData中拉出。 我怎么做? 可能還沒有完整的圖像,可能有多個圖像,可能有一個半圖像!
我想將NSData解析為每個現有映像!
}
有什么幫助嗎? 提前致謝!
您必須圍繞圖像實現自己的包裝協議。 這可以像在實際圖像數據之前發送圖像數據的長度一樣簡單。 現在,在接收數據時,您知道在擁有完整圖像之前需要拉多少個字節。 由於每個圖像都從流中分離出來,因此具有下一個圖像的長度。
由於您是從一台iPhone發送到另一台iPhone,因此您不必擔心字節的大小,只需在兩端使用32位int作為大小即可。
只需使用定界符即可分別識別不同的圖像。 當您捕獲定界符時,您會知道下一個圖像。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.