在Android中将Image对象转换为Base64 String

时间:2017-10-30 00:15:07

标签: android image android-bitmap

我已经看到了大量相关的问题,但实际上没有人回答这个问题,许多人只是使用未定义变量的上下文代码片段。

我需要将图像存储在数据库中(据我所知,我应该使用Base64编码的字符串),并将它们用作android代码中的Image对象。

根据我的设计,我需要将Image转换为Bitmap,然后Bitmap可以转换为Base64字符串。但我不能为我的生活弄清楚如何将图像转换为位图。任何帮助表示赞赏。

编辑:虽然其他问题确实将图像从文件位置转换为字符串,但我没有文件位置。该图像仅作为android.media.Image的一个实例存储,我不知道如何使用文件路径或任何类似的方式访问它。

编辑2:好的,所以这是我的设置:图像将作为Base64编码的字符串在Firebase数据库中存储。当我需要它们时,我会从那里拉出字符串并将其转换为Image对象,这只是我暂时拥有的一个变量。它们永远不会在本地存储,只有它们在实际的应用程序上才是Image对象。

1 个答案:

答案 0 :(得分:1)

只需将base64字符串转换为位图,然后使用下面的代码

将该位图加载到imageview中
byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
image.setImageBitmap(decodedByte);