0
から入手:GWTの画像は、サーバ
File f = fileFromDatabase // from database the fileName is india.png
DataInputStream din = new DataInputStream(new FileInputStream(f));
din.readFully(data);
din.close();
String base64 = Base64Utils.toBase64(data);
String[] s = filename.split("\\.");
base64 = "data:" + "india/png" + ";base64," + base64;
or
base64 = "data:image/png;base64," + base64;
return base64;
clientSide:
imageService.getImageData(new AsyncCallback() {
@Override
public void onSuccess(String imageData) {
Image image = new Image(imageData);
Canvas.addChild(image);
//this Canvas class addItem into com.smartgwt.client.widgets.Window
}
@Override
public void onFailure(Throwable caught) {
}
}
client side imageData stirng is <image class="gwt-Image src=sume big string starts with "data:image/png;base64,someSting......>"
本家クライアント側が画像を見ることができませんでした。
あなたがDOMに画像上の負荷ハンドラを追加する必要があるサーバーからbase64文字列を取得すると、私の疑問事前
どのようにキャンバスを使用していますか?イメージをキャンバスに描画する場合は、イメージを使用する前にDOMに添付する必要があります。 base64へのエンコーディングが正しいように見えます。 – WLGfx
レスポンスありがとうmyClassはCanvasを継承しています{すべてのクライアントサイドのコードはここだけですthis.addChild(image)}コンポーネントを描画しているのか、コンポーネントを追加しているのか分かりません。しかし、私はキャンバス上のイメージを見ることができるローカルドライブからイメージを取得します。 –
イメージは引き続きDOMに追加されるためイメージは表示されますが、他の作業を行う予定がある場合は、引き続きLoadHandlerを添付する必要があります。私の目的のために、私は隠されたDOMにそれを添付しなければならなかった、それが読み込まれるのを待って、それをキャンバスに描きました。 – WLGfx