在我正在开发的Android应用中,我希望用户从他们的图库中选择一张图片,为此,我使用了这段代码:
private void takePictureFromGallery(int pick) {
startActivityForResult(
Intent.createChooser(new Intent(Intent.ACTION_GET_CONTENT).setType("image/*"), "Choose an image"), pick);
}
我正在使用onActivityResult来检测何时选择了图像。 由于我想要图像的URI,我打电话给
Uri selectedImageUri = data.getData();
但这只会返回" / document / image:28"作为输出。
接收代表图像的Base64类型URI(以"数据:image / gif; base64,{base64编码图像}"开头)的过程是什么?
提前致谢。
答案 0 :(得分:0)
Uri selectedImageUri = data.getData();
那句话没用。这类似于认为/questions/34245601/get-base64-uri-result-from-activity-get-content-android
(此网页的URL的路径部分)在某种程度上是孤立的。
接收代表图像的Base64类型URI(以“data:image / gif; base64,{base64 encoded image}”开头的那个URI)的过程是什么?
步骤1:在ContentResolver
上使用openInputStream()
至Uri
。
步骤2:读取字节并将它们转换为base64,将它们附加到具有所需前缀的URL的末尾。
步骤3:为OutOfMemoryErrors
做好准备,因为您的字符串可能没有足够的堆空间,具体取决于堆的状态和用户选择的图像大小。