1

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
4

0 に答える 0