【问题标题】:Error in Base64 string To imageBase64 字符串中的错误 To image
【发布时间】:2016-02-09 10:01:42
【问题描述】:

android 代码错误:

byte[] decodedString = Base64.decode(""aHR0cHM6Ly9ldGlja2V0LmlwZWt0ci5jb20vd3Nib3MzL0xvZ29WZXIuQXNweD9mbnVtPTI2NQ=="", Base64.DEFAULT);
Bitmap base64Bitmap = BitmapFactory.decodeByteArray(decodedString, 0,
                    decodedString.length);
Log.d("img", String.valueOf(base64Bitmap));
imagview.setImageBitmap(base64Bitmap);

logcat 消息

SkImageDecoder::Factory returned null

【问题讨论】:

  • 使用毕加索加载.with(context).load("i.imgur.com/DvpvklR.png").into(imageView);通过在项目中添加依赖项。如果您需要这样做并需要更多信息,请回复我。

标签: android


【解决方案1】:

您的 base64 字符串已损坏。

通过以下链接查看:

http://codebeautify.org/base64-to-image-converter

请尝试解码一些不同的字符串,然后检查它。

或者试试下面的代码:

 byte[] encodeByte = Base64.decode("aHR0cHM6Ly9ldGlja2V0LmlwZWt0ci5jb20vd3Nib3MzL0xvZ29WZXIuQXNweD9mbnVtPTI2NQ", Base64.DEFAULT);
            Bitmap bitmap = BitmapFactory.decodeByteArray(encodeByte, 0,
                    encodeByte.length);
            return bitmap;

如果仍然无法正常工作,请尝试使用 Base64.NOWRAP 而不是 Base64.DEFAULT。

【讨论】:

    【解决方案2】:

    试试这个

    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).build();
        ImageLoader.getInstance().init(config);
        ImageLoader imageLoader = ImageLoader.getInstance();
    
        ImageView imageView = (ImageView) this.findViewById(R.id.imageView);
        try {
            url = decodeBase64String(base64String);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    
        imageLoader.displayImage(url, imageView);
    String decodeBase64String(String encodedString) throws   UnsupportedEncodingException {
        byte[] data = Base64.decode(encodedString, Base64.DEFAULT);
        return new String(data, "UTF-8");
    }
    

    设置依赖-编译'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

    【讨论】:

      【解决方案3】:

      检查此功能:

          public Bitmap StringToBitMap(String encodedString) {
          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;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-18
        • 2016-07-29
        • 1970-01-01
        • 2019-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多