1

我正在尝试将图像从文件中内联(嵌入)到 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();
}

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

4

1 回答 1

2

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

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

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

于 2013-07-14T05:40:22.093 回答