Androidにtcp/ip経由でvb.netサーバーに画像を送信させようとしています。Androidはビットマップを圧縮し、サーバーがビットマップを受信して画像に変換すると、真っ黒になります。解凍が問題か何かであると思います。その画像を解凍する方法がよくわかりません。どんな助けでも大歓迎です。ありがとう。
これは、ビットマップを作成する Java です。
Bitmap bmp=BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byteArray = stream.toByteArray();
これは私のvb.netサーバーです
Sub Main()
Dim bmp As Bitmap
Dim serverSocket As New TcpListener(1334)
Dim requestCount As Integer
Dim clientSocket As TcpClient
serverSocket.Start()
While (True)
Try
msg("Waiting For Client...")
clientSocket = serverSocket.AcceptTcpClient()
msg("Accept connection from client")
requestCount = requestCount + 1
Dim networkStream As NetworkStream = clientSocket.GetStream()
Dim bytesFrom(clientSocket.ReceiveBufferSize) As Byte
networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
Dim newImage As Image = Nothing
Byte2Image(newImage, bytesFrom)
newImage.Save("C:\Users\ppetrenko\Desktop\test.jpeg")
Dim dataFromClient As String = System.Text.Encoding.ASCII.GetString(bytesFrom)
dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"))
msg("Data from client - " + dataFromClient)
Dim serverResponse As String = "Server response " + Convert.ToString(requestCount)
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(serverResponse)
networkStream.Write(sendBytes, 0, sendBytes.Length)
networkStream.Flush()
msg(serverResponse)
clientSocket.Close()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End While