将图像从PC发送到android

时间:2012-11-24 02:19:10

标签: c# java android image pc

我正在尝试编写一个在PC上创建图像并通过WiFi传输并在Android上显示的应用程序。除了最后一部分我一切都在工作。 Android和PC正在来回发送消息。 PC创建图像,将其转换为字节数组,将其发送到Android,Android接收它。不起作用的是将字节数组转换回图像。这是我的代码。

我的电脑上的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上以不同方式重新创建图像吗?

提前致谢,

麦克

1 个答案:

答案 0 :(得分:0)

我明白了。我需要像这样转换图像。现在它有效。

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

感谢zapl和FoamyGuy的输入。