簡體   English   中英

如何從套接字中的NSData中提取UIImages

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM