我目前正在使用Cobra: Java HTML Renderer & Parser来呈现一个HTML页面,该页面是基于java应用程序中的用户选择动态生成的。
在我的应用程序中,用户可以选择数百个项目。这些项目以特殊的唯一颜色符号的形式显示,并且用户可以选择多于一个的项目。
一旦选择了许多项,它们的书面描述就会动态生成并格式化,以包括css2和html4标签,并加载到眼镜蛇HTMLPanel中以供显示。
我希望在HTMLPanel中显示符号的图像和项目的书面描述。
要做到这一点,一种方法是使用ImageIO.write将BufferedImage保存到一个文件中,然后将img标记包含在动态生成的html文档中,该文档将被加载到HTMLPanel中。不幸的是,这是不可接受的,因为可能有成百上千的符号被用户选择,这反过来会导致成百上千的ImageIO.write调用和我的应用程序性能的难以置信的下降。
另一种方法是将BufferedImage转换为Base64编码,然后将编码直接放入HTML文档中,如下所示
<img alt="Embedded Image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />不幸的是,HTMLPanel似乎忽略了数据URI方案。
有人知道解决方案吗?
发布于 2011-02-15 21:23:16
使用像Jetty这样的嵌入式servlet容器。将URL指向"http://localhost:somePort/imageId",然后从内存中提供这些URL。
https://stackoverflow.com/questions/4918587
复制相似问题