【问题标题】:Base64.encodeToString() not working in AndroidBase64.encodeToString() 在 Android 中不起作用
【发布时间】:2019-05-09 18:56:05
【问题描述】:

所以我有一个位图,现在我想将其转换为 imageUri(或字符串), 我在这里使用此代码,但它只是不起作用,而不是返回 imageUri 它返回一个长的随机文本。

这是我的代码:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    saveBitmap.compress(Bitmap.CompressFormat.JPEG, 75, baos);
                    String path = Base64.encodeToString(baos.toByteArray(),Base64.DEFAULT);

这就是我得到的:

【问题讨论】:

  • 那是你图片的base64编码版本。你为什么期待“imageUri”?
  • 我怎样才能得到..从位图中的图像uri...你能告诉我吗?

标签: java android encode


【解决方案1】:

试试下面的方法,应该可以的

byte[] data = convert image in byte.
String base64 = Base64.encodeToString(data, Base64.DEFAULT);


byte[] data = Base64.decode(base64, Base64.DEFAULT);
String text = new String(data, "UTF-8");

【讨论】:

    【解决方案2】:

    Base64.NO_WRAP代替Base64.DEFAULT

    String path = Base64.encodeToString(baos.toByteArray(),Base64.NO_WRAP);
    

    【讨论】:

      【解决方案3】:

      Base64.encodeToString() 将字节数组编码为字符串。这不是你的 uri。相反,这是您在 Base64 中的图像/位图。您可以使用合适的 Base64.decode 来取回字节数组。

      要获取 uri,您可以使用其他一些选项,包括 Uri.fromFile(new File("your_file_path));

      【讨论】:

      • 请注意我没有文件路径,我只有一个位图......无论如何我得到了解决方案(见我的答案)。感谢您的努力..
      • 感谢告知
      【解决方案4】:

      对不起,我以为 Base64.encodeToString() 会返回给我 imagePath,但我错了。无论如何,我得到了解决方案,

      这是我使用的代码,

      ByteArrayOutputStream baos = new ByteArrayOutputStream();
                          saveBitmap.compress(Bitmap.CompressFormat.JPEG, 75, baos);
                          String path = MediaStore.Images.Media.insertImage(getContentResolver(),saveBitmap,"Title",null);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多