gpt4 book ai didi

JavaFX HTMLEditor - 使用绝对路径插入本地镜像

转载 作者:行者123 更新时间:2023-12-02 12:10:42 25 4
gpt4 key购买 nike

我正在调整 JavaFX 中的 HTMLEditor,我的目标是在 HTMLEditor 中插入本地镜像。互联网上的图像没有问题并且工作正常,但是当我尝试使用绝对路径插入本地镜像时,它只显示著名的“X”,他没有找到它。

尝试了很多东西,我当前的想法如以下代码所示:

htmleditor.setHtmlText(
"<img src='file://C:/hi.png'/>");

这会导致以下 html 代码,我认为这很好,也是我想要的结果,但它没有渲染图像...

<html dir="ltr"><head></head><body contenteditable="true">
<img src="file://C:/test.png"></body></html>

第二个想法)我还生成了一张图片并将其保存在我的硬盘上,称为带有绝对路径的文件,但这会导致与上面相同的问题(这里我期望路径100%正确.. .).

File file = new File(TextArea_imagePath.getText() + ".png");
ImageIO.write(img, "png", file);
htmleditor.setHtmlText("<img src=' " + file.getAbsolutePath() + "'/>");

希望有人能帮助我,我猜这是一个愚蠢的错误。

附: Set a local image in JavaFX HTMLeditor无法帮助我并处理没有路径的图像

最佳答案

您的 URI 不正确。之后file:部分(方案),您必须有一个斜杠或三个斜杠。您不得有两个斜杠。

以下内容有效:

  • <img src='file:/C:/hi.png'/>
  • <img src='file:///C:/hi.png'/>

以下内容无效有效:

  • <img src='file://C:/hi.png'/>

这样做的原因是 URI 语法为方案后面的两个斜杠赋予了特殊含义。来自 the URI generic syntax specification :

This "generic URI" syntax consists of a sequence of four main components:

<scheme>://<authority><path>?<query>

因此,您可以完全省略// ,也可以指定一个空权限,如上面的前两个示例所示。

两个斜杠表示后面的文本,C: ,是一个权限,即带有可选用户、密码和端口号的主机名。显然C:不是有效的主机名,即使是,文件中主机名的精确含义:URI 定义不明确。

<小时/>

你的第二个想法不会像现在这样起作用。文件名不会自动构成有效的 URI。您需要将其转换为 URI:

htmleditor.setHtmlText("<img src=' " + file.toURI() + "'/>");

关于JavaFX HTMLEditor - 使用绝对路径插入本地镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46572826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com