我正在尝试编写一个在 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 上以不同的方式重新创建图像吗?