【问题标题】:Converting Image to bytearray in order to upload image to server Android将图像转换为字节数组以便将图像上传到服务器 Android
【发布时间】:2015-02-02 10:29:14
【问题描述】:

我有图片的 sd 卡路径。由于我想将图像上传到服务器,现在将图像转换为字节数组的下一步是什么?

提前致谢。

【问题讨论】:

  • 不要先将其转换为字节数组。也不使用 Bitmap 来加载它。只需读入字节缓冲区并循环写入输出流。

标签: android android-image android-bitmap android-service-binding


【解决方案1】:
public static byte[] toByteArray (Bitmap raw) {

    byte[] byteArray = null;

    try {
        ByteArrayOutputStream stream = new ByteArrayOutputStream ();
        raw.compress (Bitmap.CompressFormat.JPEG, 100, stream);
        byteArray = stream.toByteArray ();
    }
    catch (Exception e) {
        e.printStackTrace ();
    }

    return byteArray;
}

【讨论】:

  • 如果您将文件放在位图中,然后以某种质量将其压缩为 jpg,您最终会得到可能是不同格式且质量较低的图片。所以这不是问题的答案。
  • 您也可以使用不损失质量的PNG压缩格式。希望你知道。
  • 是的,我知道。但是OP并没有说他想要PNG。而且仍然不需要先将文件放在位图中。各种变化都可能发生。最好按原样上传文件。一个字节一个字节。您可以在不使用中间位图的情况下将文件放在字节数组中。然后文件的所有字节都在字节数组中。只有当您这样做时,您的帖子才会成为问题的答案。
  • 他都没说要转换成特定的格式。他只是要求转换成byte[]来上传,虽然有很多方法可以做到,你也可以转换成base64字符串,你可以创建套接字等等。所以,坚持他想转换成byte[]的问题所以我回答了。
猜你喜欢
  • 1970-01-01
  • 2019-09-07
  • 2011-05-17
  • 1970-01-01
  • 2013-12-17
  • 2014-03-21
  • 2014-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多