2011-12-15 2 views
0

Можно ли использовать тег Graphviz [image] для вставки строки URI данных? т.е.данные URI и Graphviz

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. Предположительно ему нужно загрузить изображение, чтобы получить размеры.

Другой вариант - не использовать uris данных в файлах точек и вместо этого обрабатывать полученный SVG (если то, что вы хотели, было самосохраненным svg-файлом). SVG Scour может быть один способ сделать это легко. Inkscape, возможно, также сделает это за вас.

+0

Yup, я проверил d источник graphviz и действительно нуждался в размере изображения. Думаю, мне придется найти другой путь. Нельзя использовать Inkscase, поскольку изображения создаются «на лету» в Webapp, и я бы предпочел не использовать пути файлов изображений temp, встроенные в svg. Спасибо, в любом случае! – giorgioca

+0

Только что отправил новый запрос функции – giorgioca

Смежные вопросы