Android ,base64转bitmap

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android ,base64转bitmap相关的知识,希望对你有一定的参考价值。

怎么样把base64 的一长串代码转化成bitmap(安卓),每次转换都报错:java.lang.IllegalArgumentException: bad base-64
这是我的代码:
public static Bitmap stringtoBitmap(String string)
//将字符串转换成Bitmap类型
Bitmap bitmap = null;
try
byte[] bitmapArray;
bitmapArray = Base64.decode(string, Base64.DEFAULT);
bitmap = BitmapFactory.decodeByteArray(bitmapArray, 0, bitmapArray.length);
catch (Exception e)
e.printStackTrace();

return bitmap;

我传参数就是在网上用图片生成的base64字符串,具体格式如下:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAASdAAAEnQB3mYfeAAAIABJREFUeJzsvXmcXUWZ//95qu........GP4/AM6F2NNgroAAAAAASUVORK5CYII=
我去掉最前面的data:image/png;base64,再传入也不行,始终报上面那个错误,求大神指导!!
就是怎么把data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAASdAAAEnQB3mYfeAAAIABJREFUeJzsvXmcXUWZ//95qu........GP4/AM6F2NNgroAAAAAASUVORK5CYII=
这样的一串转化为bitmap???

参考技术A 1 把图像文件读如byte数组中。
2 然后调用EncodeBase64函数,把Byte数组传入,函数返回Base64的字符串。
以上即可完成Base64转换。

反方向
1 然后调用DecodeBase64函数,把Byte64字符串传入,函数返回Byte数组。
2 把Bye数组内容写入文件,文件名为bitmap位图的bpm文件即可。追问

你的回答我刚刚百度看到过,求具体可解决问题的代码?

参考技术B 你读到的base64字符串不完整

把收到的字符串,先写log看看是否正确完整

~
~
~追问

是完整的,中间太长了,我用....代替了,我把那串字符串放进在线解析都能获取到原来的图片。

追答

异常都报是base64的异常,所以传给 Base64.decode的base64字符串肯定有问题。。。。。。不用怀疑方法不对。

追问

关键是有什么问题?为什么丢到网页上的在线解析都可以,代码里却解析不出来

本回答被提问者采纳

Android 怎么把imageview 转为Bitmap

参考技术A ImageView并不能转化为Bitmap,但是可以将上面的图保存, 有两种方式,一种是打开View的DrawCache,然后通过截图view得到,具体可以去百度:android view截图

另一种方式是获取ImageView的drawable,然后通过Canvas将drawable画到bitmap上,具体可以百度: android drawable 转化bitmap
参考技术B 图片转成base64在转成bitmap

以上是关于Android ,base64转bitmap的主要内容,如果未能解决你的问题,请参考以下文章

android 图片转BASE64上传提示java.lang.OutOfMemoryError

从 Android 中的 Web 服务中恢复 base64 图像

android 怎么用base64 加密imageview

base64文件转MultipartFile文件

iOS - Base64转图片&&图片转Base64

PHP接收android传过来的图片