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で別の方法で画像を再作成する必要がありますか?