2017-10-04 12 views
0

JavaFX에서 HTMLEditor를 조정 중이며 내 목표는 HTMLEditor에 로컬 이미지를 삽입하는 것입니다. 인터넷상의 이미지는 아무런 문제가 없지만 잘 작동하지만 절대 경로가있는 로컬 이미지를 삽입하려고하면 유명한 "X"가 표시되어 이미지를 찾지 못합니다.JavaFX HTMLEditor - 절대 경로로 로컬 이미지 삽입

시도 많은 일들이 현재의 내 생각은 다음 코드에 표시됩니다 :

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() + "'/>"); 

누구나 나를 도울 수 있기를 바랍니다. 어리석은 실수라고 생각해보십시오.

p.s는 : Set a local image in JavaFX HTMLeditor 도와 couldnt는과 당신의 URI를 잘못

답변

1

경로없이 이미지를 처리 ​​하였다. 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에서 :

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

그래서 당신이 완전히 // < 권한 >를 생략하거나 할 수 있습니다 :

이 "일반적인 URI"구문은 네 가지 주요 구성 요소의 순서로 구성 위의 처음 두 예제와 같이 빈 권한을 지정할 수 있습니다.

두 개의 슬래시는 뒤 따르는 텍스트 인 C:이 권한 (즉, 선택적 사용자, 암호 및 포트 번호가있는 호스트 이름)임을 의미합니다. 분명히 C:은 유효한 호스트 이름이 아니며, 그렇더라도 file : URI에있는 호스트 이름의 정확한 의미는 잘 정의되어 있지 않습니다.


두 번째 아이디어는 그대로 작동하지 않습니다. 파일 이름은 자동으로 유효한 URI를 구성하지 않습니다. URI로 변환해야합니다 :

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