Base64.encodeToString() 在 Android 中不工作

Base64.encodeToString() not working in Android

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

这是我的代码:

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

这就是我得到的:

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

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

试试下面的方法,应该行得通

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");

抱歉,我以为 Base64.encodeToString() 会 return 我的 imagePath,但我错了。无论如何我得到了解决方案,

这是我用过的代码,

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

代替Base64.DEFAULT,使用Base64.NO_WRAP

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