JEdi​​torPane html文档从文件内联(嵌入)图像

时间:2013-07-14 05:32:01

标签: java html swing base64 jeditorpane

我正试图通过以下文件在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();
}

这会创建一个文件,但图像无效。我确定我没有以正确的方式转换图像...

1 个答案:

答案 0 :(得分:2)

JEditorPane(以及一般的Java HTML呈现)不支持Base64编码图像。

当然'不'!=''不能'。

问题是,您需要创建(或调整)EditorKit可以定义新元素。例如,在AppletEditorKit中可以看到。您需要查找HTML.tag.IMG - 它是标准图片,调用super功能,否则使用this source(或类似)将其转换为图片,然后嵌入