Я получаю base64 байт [] из XML-файла через jaxb, и я не уверен, как преобразовать этот назад в изображение gwt (который является в основном базовым HTML img, если я понял это правильно). Как я преобразовываю в соответствующую строку?
Мой первый инстинкт был к
public void onSuccess(final byte[] icon) {
img.setUrl("data:image/png;base64,"+icon.toString());
но очевидно который не работает. Любая справка ценится!
Если вы хотите использовать URI данных (с кодировкой base64) - хотя IE <= 7 не поддерживает его, а IE8 допускает только 32 КБ - вы Придется кодировать данные изображения в формате base64.
Существует несколько кодировщиков Base64, например com.google.gwt.user.server.Base64Utils
, который можно использовать на стороне сервера:
String base64 = Base64Utils.toBase64(icon);
Затем передайте закодированные данные клиенту.
Если вы действительно хотите, вы также можете использовать кодировщик на стороне клиента, но для этого потребуется скопировать файл java в клиентский источник (если вы убедитесь, что выбранная вами реализация позволяет это).
Вы должны указать URL-адрес, который можно использовать для получения изображения. Я действительно не думаю, что ваш код приведет к чему-то похожему на URL-адрес (что-то вроде http: //localhost/myimage.png или, возможно, mywebapp / myimage.png ...)