gwt base64图片

时间:2010-06-18 17:36:00

标签: gwt base64

我通过jaxb从xml文件中获取base64 byte [],我不知道如何将其转换回gwt图像(如果我理解正确的话,它基本上是一个底层的html img)。如何转换为正确的字符串?

我的第一直觉是

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

但显然这不起作用。 任何帮助表示赞赏!

3 个答案:

答案 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 ...)