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

时间:2013-03-28 13:22:49

标签: android imageview base64

我想将base64编码的字符串转换为位图,这样我就可以把它放在图像视图中,但是会出现错误,如

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

我的代码是:

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

image.setImageBitmap(BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length));

6 个答案:

答案 0 :(得分:46)

你必须检查你要解码的字符串是否为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);

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

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

答案 1 :(得分:18)

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

答案 2 :(得分:5)

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));

试试这段代码。

答案 3 :(得分:0)

此方法可以帮助您

[Sun Aug 19 13:19:15.913003 2018] [cgi:error] [pid 970] [client ::1:50818] AH01215: Traceback (most recent call last):: /var/www/html/python/test3.py
[Sun Aug 19 13:19:15.913177 2018] [cgi:error] [pid 970] [client ::1:50818] AH01215:   File "/var/www/html/python/test3.py", line 10, in <module>: /var/www/html/python/test3.py
[Sun Aug 19 13:19:15.913237 2018] [cgi:error] [pid 970] [client ::1:50818] AH01215:     f = open(filename, "w+"): /var/www/html/python/test3.py
[Sun Aug 19 13:19:15.913347 2018] [cgi:error] [pid 970] [client ::1:50818] AH01215: IOError: [Errno 2] No such file or directory: '/tmp/my_data.json': /var/www/html/python/test3.py
[Sun Aug 19 13:19:15.915809 2018] [cgi:error] [pid 970] [client ::1:50818] End of script output before headers: test3.py

                                                                                                                       3,9           Top

答案 4 :(得分:0)

  

将base64字符串解码/转换为图像

    imageBytes = Base64.decode(imageString, Base64.DEFAULT);
    Bitmap decodedImage = BitmapFactory.decodeByteArray(imageBytes, 0,imageBytes.length);
    image.setImageBitmap(decodedImage);

答案 5 :(得分:0)

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

我正在使用上述解决方案。它总是返回错误,例如解码的String为null,IllegalStateException .. 我所做的只是将其包裹在一个尝试鱼中