我正在通过jaxb从xml文件获取一个base64 byte[],但我不确定如何将其转换回gwt图像(如果我正确理解的话,它基本上是一个底层的html img)。如何将其转换为适当的字符串?
我的第一个直觉是
public void onSuccess(final byte[] icon) {
img.setUrl("data:image/png;base64,"+icon.toString());
但显然那样做是不起作用的。 感谢任何帮助!
com.google.gwt.user.server.Base64Utils
,您可以在服务器端使用它们:String base64 = Base64Utils.toBase64(icon);
然后将编码数据传输到客户端。
如果您非常想这样做,您也可以在客户端上使用编码器,但这需要将Java文件复制到客户端源代码中(如果您确保所选的实现允许这样做)。
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);
您应该提供可用于获取图像的URL。我真的不认为您的代码会产生类似URL的东西(例如http://localhost/myimage.png,或者可能是mywebapp/myimage.png...)