从Image对象在浏览器中创建图像

时间:2011-11-10 09:38:40

标签: java image internet-explorer applet sandbox

在我的Java小程序中,我有一个Image对象。现在我想从该程序打开一个浏览器窗口,并在浏览器中显示来自此Image对象的图像。小程序是沙箱,因此无法将图像保存到本地文件系统。

如何在浏览器中显示图像?


当前实施中:

  • applet将图像转换为base64代码,然后
  • 将它传递给经典的asp然后这个
  • asp将此base64代码写入服务器和
  • 将文件名和所需信息传递给c程序,然后
  • c程序调用服务器端的java程序,然后这个
  • java程序读取base64代码并将其转换为图像
  • 然后asp阅读此图片并在浏览器中显示

这个过程需要很长时间才能完成。

我只需要在新的弹出窗口中显示在applet中创建的图像,如果用户需要可以保存。目前用户正在运行IE 7,但它可能是我们要求的任何版本。

1 个答案:

答案 0 :(得分:2)

我从来没有这样做过,但是我希望这样的事情会起作用:

  • 在applet中将图像编码为base 64。请注意,J2SE没有用于base 64转换的内置类/方法。您可能需要对其进行编码,或者添加可以执行此操作的API。
  • 将编码数据传递给JavaScript。
  • 使用JavaScript编写(或更改现有的srcimg element in the page

  

.. Internet Explorer不支持此功能。

从2 nd 链接获取(复制/粘贴)示例并将其包装在某些body& html元素,给出:

<html>
<body>
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot">
</body>
</html>

当在IE中打开它时,我看到..

Red dot in IE 8

有关IE中支持的更多详细信息,请参阅Data URI scheme: Disadvantages,其中提及..

  • ..
  • Internet Explorer到版本7(截至2011年9月约占网络流量的5%),缺乏支持。但是,这可以通过提供特定于浏览器的内容来克服。[8]
  • Internet Explorer 8将数据URI限制为最大长度32 KB。 (Internet Explorer 9没有此限制)[4] [3]
  • ..