在android中使用http post发送一个Bitmap的字节数组?

时间:2011-10-10 10:18:18

标签: android bitmap bytearray http-post

在我的应用程序中,我需要调用API使用Http Post将一些信息发送到Web服务器。所以我需要将userid,name,phoneNo和image附加到网址。我需要将图像转换为字节数组并将其附加到url。我使用了以下代码,但它对我不起作用。我刚刚得到了像[B@4055dd90

这样的字节数组

我的代码是

Bitmap bitmap1 = ((BitmapDrawable) d).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap1.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bitmapdata = stream.toByteArray();

有人可以帮助我吗?

提前致谢!

2 个答案:

答案 0 :(得分:5)

两件事:

  1. 图像可以变得非常大。所以,你可能最好使用JPG,因为你可以压缩它(PNG不压缩)。因此,您可以使用Bitmap.CompressFormat.JPEG并设置所需的压缩量。
  2. 在发帖时,您应该对字节[]进行编码,如下所示:Base64.encodeBase64String( bitmapdata);
  3. 如果这对你有用,请告诉我。哦,不要忘记在服务器端取消编码。

答案 1 :(得分:2)

您无法将字节数组形式的图像直接发送到服务器。您必须在Base64 Class的帮助下将其编码为Base64 String。将位图字节数组编码为Base64字符串,并在HTTPPost方法的帮助下将该字符串发送到服务器。如果您有任何疑问,那么您可以发表评论。