我有一个表示BitMap图像的Base64字符串 .
我需要再次将该String转换为BitMap图像,以便在我的Android应用程序中的ImageView上使用它
怎么做?
这是我用来将图像转换为base64字符串的代码:
//proceso de transformar la imagen BitMap en un String:
//android:src="c:\logo.png"
Resources r = this.getResources();
Bitmap bm = BitmapFactory.decodeResource(r, R.drawable.logo);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object
byte[] b = baos.toByteArray();
//String encodedImage = Base64.encode(b, Base64.DEFAULT);
encodedImage = Base64.encodeBytes(b);
4 回答
您可以使用其他一些内置方法基本上还原您的代码 .
对于仍然对此问题感兴趣的任何人:If:1-decodeByteArray返回null 2-Base64.decode抛出bad-base64异常
以下是解决方案: - 您应该考虑从API发送给您的值是Base64编码并应首先解码,以便将其转换为Bitmap对象! - 看看你的Base64编码的字符串,如果它开头
Base64.decode将无法对其进行解码,因此必须从编码的字符串中删除它:
现在 pureBase64Encoded 对象已准备好进行解码:
现在只需使用下面的行将其转换为 Bitmap 对象! :
或者如果你使用的是伟大的图书馆 Glide :
这应该做的工作!它浪费了一天时间来实现这个解决方案!
Note :如果您仍然遇到bad-base64错误,请考虑其他Base64.decode标记,如Base64.URL_SAFE等
这是一个非常古老的线程,但我想分享这个答案,因为我需要花费大量的开发时间来管理
NULL
,如@Anirudh所面临的那样BitmapFactory.decodeByteArray()
的回报 .如果
encodedImage
字符串是JSON
响应,只需使用Base64.URL_SAFE
而不是Base64.DEAULT
要在线查看,您可以使用
http://codebeautify.org/base64-to-image-converter
您可以像这样将字符串转换为图像
http://www.thecrazyprogrammer.com/2016/10/android-convert-image-base64-string-base64-string-image.html