私はGraphVizライブラリを使いたいと思っていました。あなたはsudo apt-get install graphviz-lib
とsudo apt-get install libgraphviz-dev
を使ってUbuntuにインストールできます。それが終わったらだ:
#include <graphviz/gvc.h>
bool DotGraphGenerator::saveImage()
{
std::string o_arg = std::string("-o") + "/path/to/image_file.png";
char* args[] = {const_cast<char*>("dot"), const_cast<char*>("Tpng"), const_cast<char*>("-Gsize=8,4!"), const_cast<char*>("-Gdpi=100"),
const_cast<char*>(DOT_TEXT_FILE.c_str()), //DOT_TEXT_FILE is the file path in which the graph is saved as valid DOT syntax
const_cast<char*>(o_arg.c_str()) };
const int argc = sizeof(args)/sizeof(args[0]);
Agraph_t *g, *prev = NULL;
GVC_t *gvc;
gvc = gvContext();
gvParseArgs(gvc, argc, args);
while ((g = gvNextInputGraph(gvc)))
{
if (prev)
{
gvFreeLayout(gvc, prev);
agclose(prev);
}
gvLayoutJobs(gvc, g);
gvRenderJobs(gvc, g);
prev = g;
}
return !gvFreeContext(gvc);
}
GVCはCライブラリで、関数は、引数として非const C文字列、初めに、したがってconst_castsを取ります。また、-Gsize=8,4
と-Gdpi=100
の引数を変更することによって、イメージサイズを編集することもできます。現在の設定では、8 * 100 x 4 * 100 = 800x400の画像ファイルを取得します。とにかく、これらの引数は、bashからdot
コマンドを実行するときに適用するものと同じです。それ以外
は、このコードは、基本的には、ライブラリマニュアルとしてGraphvizの中の例のいずれかからコピーされます。http://www.graphviz.org/pdf/libguide.pdf
私はあなたが何をしたいかわかりません。コンソールアプリからgraphvizを呼び出そうとしていますか?どのOS? wxWidgets、QT、MFC、およびアプリケーションの表示から – lakeweb
私はLinux(ubuntu)のQTアプリケーションに取り組んでいます。私はDIjkstraソルバーから、私のアプリケーション内で視覚化したい点グラフ(テキスト文字列)としての解を持っています。このために私はそれをイメージに変換する必要があります。 – Ali250
元の質問に追加の詳細を追加しました。 – Ali250