2011-12-15 4 views
0

데이터 URI 문자열을 포함하기 위해 Graphviz [image] 태그를 사용할 수 있습니까? 즉데이터 URI 및 그래프 비트

simple.dot : (빨간색 도트 이미지를 표시한다 -> 노드 B)

digraph G { 

rankdir="LR"; 
A -> B [label="test 1"]; 

A [image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="]; 
B [label="foo"]; 

} 

dot simple.dot -o simple.svg -Tsvg 

이 이것을 실행 오류가 나는군요

Warning: No such file or directory while opening data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg== 
Warning: No or improper image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" for node "A" 

결과 그래프는 노드 A에 이미지없이 표시됩니다.

이 문제를 해결하는 방법에 대해 알고 싶습니까?

감사합니다.

답변

1

데이터 우물을 읽고 쓸 수있게하려면 graphviz 소스를 수정해야 할 것입니다. 아마도 치수를 얻기 위해 이미지를로드해야 할 것입니다.

또 다른 옵션은 도트 파일에서 데이터 uris를 사용하지 않고 대신 결과 svg를 후 처리하는 것입니다 (원하는 svg 파일이 자체 포함 된 svg 파일 인 경우). SVG Scour은 쉽게 할 수있는 방법 중 하나입니다. Inkscape도이 작업을 수행 할 수 있습니다.

+0

그래, 나는 graphviz 소스를 확인하고 실제로 이미지의 크기가 필요합니다. 나는 다른 길을 찾아야 할 것 같아. Webapp에서 즉석에서 이미지를 생성하므로 Inkscase를 사용할 수 없으며 svg에 임베드 된 임시 이미지 파일 경로를 사용하지 않을 것입니다. 어쨌든 고마워! – giorgioca

+0

새로운 기능 요청을 제출했습니다. – giorgioca