我正试图通过以下文件在JEditorPane中内嵌(嵌入)图像:
<img src="data:image/gif;utf-8,data...">
但我正在努力解决这些问题。
到目前为止,我有(假设一个gif文件):
try
{
File imageFile = new File("C:\\test\\testImage.gif");
File htmlFile = new new File("C:\\test\\testOutput.html");
byte[] imageBytes = Files.toByteArray(imageFile);
String imageData = new String(imageBytes, "UTF-8");
String html = "<html><body><img src=\"data:image/gif;utf-8," + imageData + "\"></body></html>";
FileUtils.writeStringToFile(htmlFile, htmlText);
} catch (Exception e) {
e.printStackTrace();
}
这会创建一个文件,但图像无效。我确定我没有以正确的方式转换图像...
答案 0 :(得分:2)
JEditorPane
(以及一般的Java HTML呈现)不支持Base64编码图像。
当然'不'!=''不能'。
问题是,您需要创建(或调整)EditorKit
可以定义新元素。例如,在AppletEditorKit
中可以看到。您需要查找HTML.tag.IMG
- 它是标准图片,调用super
功能,否则使用this source(或类似)将其转换为图片,然后嵌入