0

PCで画像を作成し、WiFi経由で送信し、Androidで表示するアプリケーションを作成しようとしています。最後の部分を除いて、すべてが機能しています。AndroidとPCはメッセージをやり取りしています。PCは画像を作成し、それをバイト配列に変換してAndroidに送信し、Androidはそれを受信します。動作しないのは、バイト配列を画像に変換し直すことです。これが私のコードです。

私のPCのC#コードは、これを使用してバイト配列を作成します

public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
    MemoryStream ms = new MemoryStream();
    imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp );
    return ms.ToArray();
}

私のAndroidのJavaコードは、このコードを使用してバイト配列を画像に変換し直します。

try {
    //This line always returns NULL
    Bitmap bmp=BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
    if (bmp != null) {
        //display image in UI
        imgViewer.setImageBitmap(bmp);
        imgViewer.invalidate();
    }
    else
    {
        Log.i(Consts.TAG, "image is null ");
    }                   
} catch (Exception e){
    Log.i(Consts.TAG, "ERROR decoding image " + e.toString());
}

BitmapFactory.decodeByteArray()常にNULLを返します。PCでバイト配列を正しく作成していますか?Androidで別の方法で画像を再作成する必要がありますか?

4

1 に答える 1

0

私はそれを考え出した。このように画像を変換する必要がありました。今では動作します。

    public static byte[] ImageToByte(Image img)
    {
        ImageConverter converter = new ImageConverter();
        return (byte[])converter.ConvertTo(img, typeof(byte[]));
    }

zapl と FoamyGuy のご意見に感謝します。

于 2012-11-24T17:53:34.737 に答える