That solved my problem. Thank you very much.
BTW - if you used write_graphviz perhabs you could use gvRenderData or
gvRender too. I'm trying to display rendered graph image but without
storing it in temoprary file. So i found gvRenderData from graphviz
library most suitable to do that. But when i call this function it
simply seems not to be working.
when I type something like that:
write_graphviz(my_stringstream, graf->Get_g());
g = agmemread(const_cast(my_stringstream.str().c_str()));
gvLayout(gvc, g, "dot");
gvRenderFilename (gvc, g, "png","out.png");
I get valid png file and everything is OK.
But if i do this:
write_graphviz(my_stringstream, graf->Get_g());
g = agmemread(const_cast(my_stringstream.str().c_str()));
gvLayout(gvc, g, "dot");
char* data;
int result = gvRenderData(gvc, g, "png", &data); // result = 0 so
that should be OK
std::ofstream my_fstream("picture.png" , std::fstream::binary);
while(*data!=EOF)
my_fstream.put(*(data++));
stru.close();
than an output file - picture.png is not valid and have smaller size
than out.png in first example.
I tried to change the following line:
while(*data!=EOF)
to:
while(*data!='\0')
but it still is not correct.
Maybe you've got some example of using vgRenderData - i would be gratefull.
If not - that's not a big deal - you've already helped me so much.
Cheers,
Michał Nowotka