用html中的base64字符串显示图像?

M S*_*ach 2 html java base64 image

这是我的java代码,它从image构造base64字符串.然后放置base64 String html,以查看构造的图像,但不以某种方式构建图像

public void getBase64String() throws FileNotFoundException {
    FileInputStream itStrm = new FileInputStream(
    "E:\\image\\56255254-flower.jpg");//image is lying at http://danny.oz.au/travel/mongolia/p/56255254-flower.jpg
    String str = itStrm.toString();
    byte[] b3 = str.getBytes();
    String base64String = new sun.misc.BASE64Encoder().encode(b3);
    //output of base64String is amF2YS5pby5GaWxlSW5wdXRTdHJlYW1AMTdlMDYwMA==
  }
Run Code Online (Sandbox Code Playgroud)

现在在html页面中我将base64String的输出放在img标签中以查看图像.但是没有显示图像(而是显示交叉图像图标).我没有从base64字符串下面显示图像?

      <HTML>
      <BODY>
           <img    src="data:image/jpeg;base64,amF2YS5pby5GaWxlSW5wdXRTdHJlYW1AMTdlMDYwMA=="/>

     </BODY>
     </HTML>
Run Code Online (Sandbox Code Playgroud)

编辑: -谢谢Folks,我使用byte [] bytes = IOUtils.toByteArray(is);. 它对我有用!!

And*_*s_D 8

这:String str = itStrm.toString()不是图像,而是实例的toString()表示FileInputStream.

您必须从流中读取字节并将它们存储在字节数组中.并且,出于性能原因,缓冲流:

BufferedInputStream itStrm = new BufferedInputStream(FileInputStream(
    "E:\\image\\56255254-flower.jpg"));
Run Code Online (Sandbox Code Playgroud)

进一步阅读(Spoiler:解决方案内部)