我想通過套接字連接將圖像從pc傳輸到android。我能夠從PC接收數據到手機,但是當我通過byte[]
到BitmapFactory
時,它返回空。也有時它是返回圖像,但並不總是。Android - BitmapFactory.decodeByteArray返回null
圖片尺寸爲40054 bytes
。我一次收到2048 bytes
,因此創建了包含byte
數據的小數據池(緩衝區)。收到完整的數據後,我將它傳遞給BitmapFactory
。這裏是我的代碼:
byte[] buffer = new byte[40054];
byte[] temp2kBuffer = new byte[2048];
int buffCounter = 0;
for(buffCounter = 0; buffCounter < 19; buffCounter++)
{
inp.read(temp2kBuffer,0,2048); // this is the input stream of socket
for(int j = 0; j < 2048; j++)
{
buffer[(buffCounter*2048)+j] = temp2kBuffer[j];
}
}
byte[] lastPacket=new byte[1142];
inp.read(lastPacket,0,1142);
buffCounter = buffCounter-1;
for(int j = 0; j < 1142; j++)
{
buffer[(buffCounter*2048)+j] = lastPacket[j];
}
bmp=BitmapFactory.decodeByteArray(buffer,0,dataLength); // here bmp is null
計算
[19 data buffers of 2kb each] 19 X 2048 = 38912 bytes
[Last data buffer] 1142 bytes
38912 + 1142 = 40054 bytes [size of image]
我也試圖在同一時間閱讀完整的40054個字節,但是這也沒有奏效。這裏是代碼:
inp.read(buffer,0,40054);
bmp=BitmapFactory.decodeByteArray(buffer,0,dataLength); // here bmp is null
最後檢查與decodeStream
但結果是相同的。
任何想法,我做錯了?
感謝
看起來有幫助...讓我檢查一下......謝謝! – 2011-05-15 07:34:01