我正在通过 jaxb 从 xml 文件中获取 base64 字节 [],但我不确定如何将其转换回 gwt 图像(如果我理解正确的话,这基本上是一个底层的 html img)。如何转换为正确的字符串?
我的第一直觉是
public void onSuccess(final byte[] icon) {
img.setUrl("data:image/png;base64,"+icon.toString());
但显然这是行不通的。
任何帮助表示赞赏!
最佳答案
如果您想使用 data URIs (使用 base64 编码) - 尽管 IE <=7 不支持它,而 IE8 只允许最多 32 kB - 您必须对图像数据进行 base64 编码。
周围有几个 Base64 编码器,例如com.google.gwt.user.server.Base64Utils
,您可以在服务器端使用:
String base64 = Base64Utils.toBase64(icon);
然后将编码后的数据传输给客户端。
如果您绝对想要,您也可以在客户端使用编码器,但这需要将 java 文件复制到客户端源(如果您确保您选择的实现允许这样做)。
关于gwt base64 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3071884/