从ACTIVITY_GET_CONTENT获取base64 URI结果(Android)

时间:2015-12-12 22:11:06

标签: android base64 uri android-gallery

在我正在开发的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编码图像}"开头)的过程是什么?

提前致谢。

1 个答案:

答案 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做好准备,因为您的字符串可能没有足够的堆空间,具体取决于堆的状态和用户选择的图像大小。