Android将base64编码的字符串转换为图像视图

Bas*_*kar 22 base64 android imageview

我想将base64编码的字符串转换为位图,所以我可以把它放在图像视图中,但得到的错误就像

D/skia(7490):--- decoder-> decode返回false,位图返回null值

我的代码是:

byte[] imageAsBytes = Base64.decode(imageData);

image.setImageBitmap(BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length));
Run Code Online (Sandbox Code Playgroud)

Hus*_*adi 48

首先,您必须检查要解码的字符串是否为vaild并且具有要解码的预期值,并且这样做,您可以执行以下操作:

filePath= Environment.getExternalStorageDirectory()
                        + "/SaudiScore/temporary_holder.jpg";
Bitmap selectedImage =  BitmapFactory.decodeFile(filePath);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
selectedImage.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] byteArray = stream.toByteArray();
String strBase64=Base64.encodeToString(byteArray, 0);
Run Code Online (Sandbox Code Playgroud)

然后你可以解码你刚编码的字符串并通过执行以下操作来获取图像:

byte[] decodedString = Base64.decode(strBase64, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
image.setImageBitmap(decodedByte);
Run Code Online (Sandbox Code Playgroud)


小智 19

byte[] decodedString = Base64.decode(mBase64string, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0,decodedString.length);
mImageView.setImageBitmap(decodedByte);
Run Code Online (Sandbox Code Playgroud)


Nik*_*esh 6

String base = "Base64 string values of some image";

byte[] imageAsBytes = Base64.decode(base.getBytes(), Base64.DEFAULT);

ImageView image = (ImageView) this.findViewById(R.id.imageView1);

image.setImageBitmap(BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length));
Run Code Online (Sandbox Code Playgroud)

试试这个代码.