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);
所以我有一个位图,现在我想将它转换成一个 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);