今天编程出现的情况,BASE64的字符串是由echarts2 转化出来的。按照下面的代码进行转化,public static boolean generateImage(String path) {
        //由于不在工作机上,所以下面的字符串,是我随便在网上找个代替
        String imgStr="data:image/png;base64,R0lGODlhAQAcALMAAMXh96HR97XZ98Hf98Xg97DX97nb98Lf97vc98Tg973d96rU97ba97%2Fe96XS9wAAACH5BAAAAAAALAAAAAABABwAAAQVMLhVBDNItXESAURyDI2CGIxQLE4EADs%3D";
  if (imgStr == null)
    return false;
  BASE64Decoder decoder = new BASE64Decoder();
  try {
    // 解密
    byte[] b = decoder.decodeBuffer(imgStr);
    // 处理数据
    for (int i = 0; i < b.length; ++i) {
      if (b[i] < 0) {
        b[i] += 256;
      }
    }
    OutputStream out = new FileOutputStream(path);
    out.write(b);
    out.flush();
    out.close();
    return true;
  } catch (Exception e) {
    return false;
  }
}这样生成的PNG图片,所有的图片查看器都无法看,应该是个损坏的文件。
接着我就把data:image/png;base64,去掉了,结果就出现很奇怪现象,光影看看打开PNG的文件显示的是损坏的无法打开。
而用WIN7自带的看图和编辑软件都能看到。
同样的情况也出现在WPS和OFFICE WORD里,WPS里图片能拉进去但是显示的是全透明的图片,而OFFICE WORD能正常显示。
请大神帮忙解答一下为什么会出现这种情况