反正是有写图像中的freemarker而不是给的环节
<img src="${pathToPortalImage}
注:不能,我们使用otputstream或东西freemarker的?
反正是有写图像中的freemarker而不是给的环节
<img src="${pathToPortalImage}
注:不能,我们使用otputstream或东西freemarker的?
您可以直接嵌入图像为Base64在HTML中img
标记。
为了将图像转换为基64,您可以使用Apache的百科全书(编解码器) 。
下面是使用Apache下议院IO +编解码器解决方案(但是你可以不用,如果你想要做的):
File img = new File("file.png");
byte[] imgBytes = IOUtils.toByteArray(new FileInputStream(img));
byte[] imgBytesAsBase64 = Base64.encodeBase64(imgBytes);
String imgDataAsBase64 = new String(imgBytesAsBase64);
String imgAsBase64 = "data:image/png;base64," + imgDataAsBase64;
然后传递变量imgAsBase64
到Freemarker的背景下,并使用它像这样:
<img alt="My image" src="${imgAsBase64}" />
上述一个很好的例子。 但随着JAVA 8,我们可以做这样的事情:
Path path = Paths.get("image.png");
byte[] data = Files.readAllBytes(path);
byte[] encoded = Base64.getEncoder().encode(data);
String imgDataAsBase64 = new String(encoded);
String imgAsBase64 = "data:image/png;base64," + imgDataAsBase64;