我有一個正在生成圖像的Java Applet。最終,我想將圖像數據插入到數據庫中,因此我想暫時將圖像數據存儲在包含小程序的頁面上的表單字段中。我希望能夠在客戶機上不存儲圖像文件的情況下做到這一點。如何將圖像從Java Applet發送到JavaScript?
這一切都來自簽名墊。下面是一些代碼是應該產生從存儲在所述對象sigObj矢量數據的位馬培德圖像:
sigObj.setImagePenWidth(10);
sigObj.setImageXSize(1000);
sigObj.setImageYSize(350);
image = sigObj.sigImage();
圖像變量是一個BufferedImage對象。另外,這裏是警報輸出,如果我只是發送圖像變回我的JavaScript:
[email protected]: type = 5
ColorModel: #
pixelBits = 24
numComponents = 3
color space = [email protected]
transparency = 1
has alpha = false
isAlphaPre = false
ByteInterleavedRaster: width = 1000 height = 350 #
numDataElements 3
dataOff[0] = 2
(增加了可讀性換行符)
是否有可能圖像本身發回?有什麼建議麼?
我不太瞭解Java,所以我很抱歉如果我問一個愚蠢的問題。
謝謝。
編輯:
按照從BalusC的建議,這裏是我用來將圖像轉換爲Base64字符串任何人誰可能會好奇代碼:(IMG是一個BufferedImage,dataImg是一個String )
import org.apache.commons.codec.binary.Base64;
...
try{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(img, "BMP", baos);
byte[] bytes = baos.toByteArray();
dataImg = new Base64().encodeBase64String(bytes);
} catch(Exception e) {}
這使用Apache Commons Codec來執行Base64編碼。也許這是微不足道的,但這對我來說是新的。
感謝您的建議,編碼爲Base64字符串解決了我的問題。然後我可以使用base64_decode在PHP中解碼它以恢復我的圖像。 – rjc 2010-08-27 14:54:03
不客氣。 – BalusC 2010-08-27 15:00:13
我有同樣的問題。第二個選項是不可能的,因爲HttpOnly在我們的系統中設置爲true,這使得Applets無法與服務器通信。 – Satish 2014-06-03 13:51:04