java - 在html中使用base64字符串显示图像?

标签 java html image base64

这是我从图像构造 base64 字符串的 java 代码。然后放置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==
  }

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

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

     </BODY>
     </HTML>

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

最佳答案

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

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

BufferedInputStream itStrm = new BufferedInputStream(FileInputStream(
    "E:\\image\\56255254-flower.jpg"));

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

关于java - 在html中使用base64字符串显示图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13024243/

相关文章:

java - 在 apache beam 中使用 SpannerIO 时出错

java - 使用 MapReduce 查找靠近特定记录的所有记录

php - 使用 PHP 发布并获取同一页面的表单

html - 如何将一张图片放在左边,另一张图片放在一行的中央?

javascript - 单击从 JS 动态加载的框后复制到剪贴板

iphone - 一个 UIButton 上有多个图像

java - 使用 WMQ API 时是否可以手动设置 JMS 属性?

java - JSF 2.0 用户身份验证的最佳实践?

html - CSS如何在翻转时将图像放置在可变宽度文本的右侧?

image - 有没有办法根据屏幕大小自动调整 MediaWiki 图像的大小?