0
, когда я осуществил, как указано здесь, но не работает моя реализация ServerSide: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......>"
Eventhough стороне клиента не может видеть изображение.
Пожалуйста, удалите мои сомнения Спасибо заранее
Как вы используете холст? Если вы рисуете изображение на холсте, оно должно быть прикреплено к DOM, прежде чем вы сможете его использовать. Ваша кодировка base64 выглядит правильно. – WLGfx
Спасибо за ответ myClass extends Canvas {весь код на стороне клиента здесь, наконец, только this.addChild (изображение)} Я не знаю, является ли это рисованием или добавлением компонента. но я получаю изображение с локального диска. Я вижу изображение на холсте. –
Вы по-прежнему увидите изображение, потому что оно все равно будет добавлено в DOM, но вам все равно придется присоединить LoadHandler, если вы планируете сделать с ним что-нибудь еще. Для моей цели я должен был прикрепить его к DOM, подождать, пока он загрузится, а затем нарисуйте его на холсте. – WLGfx