2011-02-15 101 views
0

我们正在开发一个Android应用程序(Java),它读取图像,将base64中的字节进行编码,以通过HTTP(通过GET)将它们发送到用VB.NET编写的WebService。将Java Byte []转换为VB.NET MemoryStream

在.NET方面,他们使用的是这样的:

Dim Pix As Image 
Pix = Image.FromFile("C:\Users\Public\Pictures\Sample Pictures\Tree.jpg") 

Dim ms As New MemoryStream 
Pix.Save(ms, ImageFormat.Jpeg) 
Dim ImByte() As Byte = ms.GetBuffer 
ms.Close() 

听起来不错。

如何将正确的字符串传递给它们以正确解码Java编码(无符号)到.NET解码(有符号)的图像?

非常感谢 Nicolas。

+0

当然,在.NET端,你需要Convert.FromBase64String()?而base64是语言不可知的......如果Java或Javascript或VB或原始x86正在进行编码......无关紧要... – 2011-02-15 20:26:51

回答

2

第一个错误:您正在使用GetBuffer(),这可能会太大。改为使用ToArray()

在Java方面,只需使用任何Base64解码器,如Apache Commons Codec one。不要担心字节的签名 - Base64实际上使您对这个问题没有问题。

这是假设Web服务客户端不会自动为您执行此操作,当然......如果您的Web服务使用base64“广告”一个字节数组,它可能只是自动的。

旁边的问题:为什么麻烦加载图像作为图像呢?为什么不使用:

Dim ImByte() As Byte = File.ReadAllBytes("C:\Users\...\Tree.jpg") 

+0

非常感谢,它的工作。 – 2011-02-17 13:07:47