2011-11-10 46 views
2

在我的Java小程序中,我有一個Image對象。現在我想從這個程序打開一個瀏覽器窗口,並在瀏覽器中顯示來自這個Image對象的圖像。小程序是沙盒,所以將圖像保存到本地文件系統不是一個選項。使用Image對象在瀏覽器中創建圖像

如何在瀏覽器中顯示圖像?


當前實現:

  • 小程序中的圖像轉換爲Base64編碼,然後
  • 它傳遞給傳統的ASP那麼這個
  • ASP寫這篇文章的base64編碼服務器和
  • 把文件名和所需的信息傳給c程序,然後
  • C程序調用java程序是在服務器端則這
  • java程序讀出的進行BASE64編碼,並將其轉換爲圖像
  • 然後ASP閱讀這個圖象,並顯示在瀏覽器中

這個過程需要太多的時間來執行。

我只需要顯示在applet中創建的圖像,在新的彈出窗口中可以保存,如果用戶想要。目前用戶正在運行IE 7,但它可能是我們要求的任何版本。

+0

你必須的圖像數據保存到文件中,然後使用與虛擬路徑映射到的URL在瀏覽器中打開 – Naved

+0

由於這是小程序,因此無法將圖像保存到文件系統,因爲小程序沒有權限訪問文件系統。 –

+1

如果將它作爲已簽名的Applet,則可以訪問文件系統。 – Naved

回答

2

我從來沒有做過,但是我希望像這樣的工作:

  • 編碼圖像中的applet base 64。請注意,J2SE沒有用於base 64轉換的內置類/方法。你需要編寫代碼,或者添加一個可以實現它的API。
  • 將編碼的數據傳遞給JavaScript。
  • 使用JavaScript編寫(或更改現有的srcimg element in the page

..internet Explorer不支持這個..

從2 第二鏈路以(複製/粘貼)的例子和它包裝在一些bodyhtml &元素,給出:

<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,其中提到..

  • ..
  • 通過版本7的Internet Explorer(截至2011年9月約爲網絡流量的5%)缺乏支持。但是,這可以通過提供瀏覽器特定內容來克服[8]。
  • Internet Explorer 8將數據URI限制爲最大長度爲32 KB。 (互聯網瀏覽器9不具有此限制)[4] [3]
  • ..
+0

,但Internet Explorer不支持這一點,我必須在Internet Explorer –

+0

做到這一點,但我試了一下,它不是在我的互聯網探索它顯示十字標記與書面紅點 –

+0

想象一下,我不坐在你的IE前,並與我分享該瀏覽器的版本號。 –