Java-将字节数组/图像图标直接插入HTML

Java-将字节数组/图像图标直接插入HTML,java,html,image,imageicon,Java,Html,Image,Imageicon,我试图直接从数据库中获取一个字节数组,并将其放入一个接受HTML的工具提示中。这是为了保持一致性,因为需要包含与其他纯文本工具提示相匹配的文本 理想情况下,我会尝试在将图像加载到imgsrc标记之前绕过将图像保存到文件的步骤。有没有办法将字节数组(可以很容易地事先转换成图像或图像图标)直接加载到HTML中?您需要以某种方式将字节转换为base64编码(在java端或HTML/javascript端)。然后你可以这样写: <img src="data:image/gif;base64,R0l

我试图直接从数据库中获取一个字节数组,并将其放入一个接受HTML的工具提示中。这是为了保持一致性,因为需要包含与其他纯文本工具提示相匹配的文本


理想情况下,我会尝试在将图像加载到imgsrc标记之前绕过将图像保存到文件的步骤。有没有办法将字节数组(可以很容易地事先转换成图像或图像图标)直接加载到HTML中?

您需要以某种方式将字节转换为base64编码(在java端或HTML/javascript端)。然后你可以这样写:

<img src="data:image/gif;base64,R0lGODlhUAAPAKIAAAsLav///88PD9WqsYmApmZmZtZfYmdakyH5BAQUAP8ALAA AAABQAA8AAAPbWLrc/jDKSVe4OOvNu/9gqARDSRBHegyGMahqO4R0bQcjIQ8E4BMCQc930JluyGRmdAAcdiigMLVrpTYWy5FKM1IQe+Mp+L4rphz+qIOBAUYeCY4p2tGrJZeH9y79mZsawFoaIRxF3JyiYxuHiMGb5KTkpFvZj4ZbYeCiXaiKBwnxh4fnt9e3ktgZyHhrChinONs3cFAShFF2JhvCZlG5uchYNun5eedRxMAF15XEFRXgZWWdciuM8GCmdSQ84lLQY5R14wDB5Lyon4ubwS7jx9NcV9/j5+g4JADs=" alt="" width="80" height="15" />

请注意,在这种情况下,即使保存了获取图像的请求,图像本身也不会被缓存以供将来使用。 你可以看看这个:


作为解决方法。

制作一个图像服务servlet,将其映射到适当的URL,然后从数据库中转储图像数据


编辑:顺便说一句,您可以使用此方法让浏览器缓存图像,但您需要手动执行此操作。

我尝试加载的图像约为600x600,可能太大,无法进行URI编码。最大大小为32kb。如果这还不够,您可以调整图像大小,或者将其转储到一个文件中。您还可以使用一个图像服务,根据数据库中的frm数据随意提供、缩放、调整图像大小和颜色。@NicolasModrzyk您从哪里得到这个数字的?既然没有这样的限制,32kB只是IE8支持不佳的一个限制。@Viruzzo:完全同意。32KB限制仅适用于IE8。您在哪里提供此服务?使用JSP、servlet或诸如此类的工具,您只需将从DB提取的数据作为响应发送,并将请求数据的适当URL放入img的“src”属性中。通过servlet将数据加载为字节数组。这个图像然后被用来制作一个缩略图,我正试图使用原始图像(更大的)来制作一个完整的工具提示。所以只要制作一个图像服务servlet,将它映射到一个合适的URL,你就成了黄金。这似乎浪费了带宽。无论如何,我已经在内存中加载了图像,试图看看是否有一种方法可以直接将其植入HTML以避免再次调用它……带宽成本是相同的,因为在这两种情况下,每次加载HTML页面时,您都会加载它;唯一的解决方案是将其保存到文件中,以便浏览器缓存它。