javascript – 将图像从java applet传递给html

我使用签名的Java小程序从用户的文件系统加载图像.
然后我想在applet运行的网站上显示这个图像.

我知道如何在applet和JavaScript之间进行通信,但我只使用字符串和数字作为参数.

如何处理图像对象以及如何在网站上显示它们?

如果需要,我可以转换applet中的格式以匹配JavaScript.

编辑:
我通过JSObject的调用将Image对象从java传递给了javascript. Chrome忽略了通话,Firefox崩溃了..

解决方法:

您可以将图像编码为Base 64,将其作为String传递给JS,并使用data:image / gif;表单URL以在网页中显示它.您需要“自己动摇”base 64编码器或查找API,因为J2SE没有内置的转换方法.1

它可能在HTML中看起来像这样.

<img src="data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub/
/ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcpp
V0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7" 
width="16" height="14" alt="embedded folder icon">

例如.取自Inline Images with Data URLs.

>在后来的JRE上(一旦引入了JAXB),请使用这样的DatatypeConverter.printBase64Binary(byte[])

ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
    ImageIO.write(image, "png", baos);
} catch (IOException e) {
    showError(e);
    e.printStackTrace();
}
String imageString = "data:image/png;base64," +
    DatatypeConverter.printBase64Binary(baos.toByteArray());
上一篇:Java applet:从浏览器运行本机代码?


下一篇:java – 时间不在Applet中重绘