我通过jaxb从xml文件中获取base64 byte [],我不知道如何将其转换回gwt图像(如果我理解正确的话,它基本上是一个底层的html img)。如何转换为正确的字符串?
我的第一直觉是
public void onSuccess(final byte[] icon) {
img.setUrl("data:image/png;base64,"+icon.toString());
但显然这不起作用。 任何帮助表示赞赏!
答案 0 :(得分:6)
如果你想使用data URIs(使用base64编码) - 虽然IE< = 7不支持它,而IE8只允许最多32 kB - 你必须对图像进行base64编码数据
有几个Base64编码器,例如com.google.gwt.user.server.Base64Utils
,您可以在服务器端使用:
String base64 = Base64Utils.toBase64(icon);
然后将编码数据传输到客户端。
如果你绝对想要,你也可以在客户端使用编码器,但这需要将java文件复制到客户端源(如果你确保你选择的实现允许)。
答案 1 :(得分:4)
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);
在这种情况下,图像是gwt图像。
答案 2 :(得分:0)
您应该提供可用于获取图像的URL。我真的不认为你的代码会产生类似于url的东西(类似http://localhost/myimage.png,或者mywebapp / myimage.png ...)