将位图转换为 base64 时得到黑色位图

When converting bitmap to base64 getting black bitmap

我想将位图转换为 base64 以存储在 sharedpreference 中。每当我尝试将其转换为 base64 时,得到的黑色位图格式不正确。

这是将位图转换为 base64 的代码。

                            ByteArrayOutputStream baos = new ByteArrayOutputStream();
                            b123.compress(Bitmap.CompressFormat.JPEG, 100, baos);
                            byte[] b = baos.toByteArray();

                            encodedImage = Base64.encodeToString(b, Base64.DEFAULT);

提前感谢您的帮助

试试这个:

try{
   byte [] encodeByte=Base64.decode(encodedString,Base64.DEFAULT);
   Bitmap bitmap=BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
   return bitmap;
 }catch(Exception e){
   e.getMessage();
   return null;
 }

您是JPEG格式的压缩图片,请使用PNG并尝试在base64中转换。

 b123.compress(Bitmap.CompressFormat.PNG, 100, baos);