GWT Base64 изображение - PullRequest
       13

GWT Base64 изображение

5 голосов
/ 18 июня 2010

Я получаю base64 byte [] из xml-файла через jaxb, и я не уверен, как преобразовать его обратно в изображение gwt (которое по сути является базовым html img, если я правильно понял). Как мне конвертировать в правильную строку?

Мой первый инстинкт был

public void onSuccess(final byte[] icon) {
img.setUrl("data:image/png;base64,"+icon.toString());

но очевидно, что это не работает. Любая помощь приветствуется!

Ответы [ 3 ]

6 голосов
/ 19 июня 2010

Если вы хотите использовать URI данных (с кодировкой base64) - хотя IE <= 7 не поддерживает его, а IE8 допускает только до 32 кБ - вам придется кодировать base64данные изображения. </p>

Существует несколько кодеров Base64, например, com.google.gwt.user.server.Base64Utils, которые вы можете использовать на стороне сервера:

String base64 = Base64Utils.toBase64(icon);

Затем передать закодированные данные клиенту.

Если вы абсолютно этого хотите, вы также можете использовать кодировщик на стороне клиента, но для этого потребуется скопировать файл java в исходный код клиента (если вы убедитесь, что выбранная реализация позволяет это).

4 голосов
/ 03 ноября 2011
String b = "this should be a base64 encode string that was generated from an icon or byte[]";
Image image = new Image();
image.setUrl("data:image/png;base64,"+b);

view.getPreviewTable().setWidget(14, 0, image);

Изображение представляет собой изображение в этом случае.

0 голосов
/ 19 июня 2010

Вы должны указать URL, по которому можно получить изображение. Я действительно не думаю, что ваш код приведет к чему-то похожему на URL (что-то вроде http://localhost/myimage.png, или, может быть, mywebapp / myimage.png ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...