1

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

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

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

如果需要,我可以转换小程序中的格式以匹配 JavaScript。

编辑:
我通过来自 JSObject 的调用将图像对象从 java 传递到 javascript。Chrome 忽略呼叫和 Firefox 崩溃..

4

2 回答 2

3

您可以将图像编码为 Base 64,将其作为字符串传递给 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">

EG 取自带有数据 URL 的内联图像

  1. 在后来的 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());
于 2012-04-12T21:45:37.907 回答
1

这可能会解决您的问题http://www.realapplets.com/tutorial/ImageExample.html

于 2012-04-12T12:09:55.757 回答