这是我从图像构造 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/