只有图像的顶部1/3(大约)显示在面板(SimplePanel)中,

时间:2011-05-20 16:03:52

标签: java image gwt

我试图在GWT面板中显示~80K jpeg图像。 (fwiw - 从数据库表中检索图像)

出于某种原因,当我尝试显示时,只有面板中的前1/3(大约)显示(SimplePanel)。较低分辨率的图像完整显示。 - 此问题似乎不是面板高度/宽度设置的函数。

这是否由于 32k限制我听说过有关 IE 浏览器的内容?

如果是这样,是否有可用于显示图像的替代技术的完整示例(在SimplePanel中) - 即,整个图像将显示在IE中?

  1. Java 1.6
  2. GWT 2.2
  3. IE 8
  4. (涉及的代码段)

    -
    -
    -
    //prepare image url on server (for use by client)
    String base64Url = "data:image/jpeg;base64," + base64.encodeToString(imageByteArray);
    -
    -
    -
    //client retrieving image url (from server)...
    AsyncCallback<String> asyncCallback = new AsyncCallback<String>()
    {
        @Override
        public void onFailure(Throwable caught)
        {
            Window.alert("DetailView/setRowData/asyncCallBack/onFailure - " + caught.getMessage());
        }
    
        @Override
        public void onSuccess(String base64Url)
        {
            Window.alert("DetailView/setRowData/asyncCallBack/onSuccess - base64Url:" + String.valueOf(base64Url));
            imagePanel.clear();
            imagePanel.add(new Image(base64Url));
        }
    };
    searchValueMap.put("doc_id",doc_id.trim().toUpperCase());
    service.getBase64ImageUrl(base64Url, asyncCallback);
    -
    -
    -
    

1 个答案:

答案 0 :(得分:0)

RFC 2397提示其URL长度是限制因素而不指定任何特定长度:

http://www.ietf.org/rfc/rfc2397.txt

我对此的体验仅来自GWT ResourceBundle代码。在那里,数据网址仅限于几种浏览器类型,任何大于32K的图像都不符合通过数据网址发送的条件:

http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/resources/rebind/context/InlineResourceContext.java