1

署名付きの Java アプレットを使用して、ユーザーのファイル システムからイメージをロードしています。
次に、アプレットが実行されている Web サイトにこの画像を表示したいと考えています。

アプレットと JavaScript の間で通信する方法は知っていますが、パラメーターとして文字列と数値のみを使用しました。

画像オブジェクトをどのように処理し、それらを Web サイトに表示するにはどうすればよいですか?

必要に応じて、アプレットの形式を JavaScript に合わせて変換できます。

編集:
JSObject からの呼び出しで、Image オブジェクトを Java から JavaScript に渡しました。Chrome は呼び出しを無視し、Firefox がクラッシュします。

4

2 に答える 2

3

画像をBase64としてエンコードし、文字列としてJSに渡し、data:image/gif;フォームのURLを使用してWebページに表示することができます。J2SEには変換用のメソッドが組み込まれていないため、「独自の」base64エンコーダーをロールするかAPIを見つける必要があります。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">

データURLを使用してインライン画像から取得したEG 。

  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 に答える