グラフの画像レンダリング
ts-graphviz
モジュールは DOT 言語を使用してグラフをモデリングし、DOT 文字列を生成することに焦点を当てていますが、グラフを SVG や PNG などの画像形式にレンダリングしたい場合もあるでしょう。そのような場合に役立つのが ts-graphviz/adapter
モジュールです。
ts-graphviz/adapter
モジュールを使用すると、さまざまなランタイム環境(Node.js、Deno)で Graphviz の dot
コマンドを実行し、DOT 文字列を画像ファイルに変換できます。これにより、アプリケーション内でグラフを画像として可視化したり、他の用途のためにエクスポートしたりできます。
特徴
- Graphviz コマンドの実行:コードから
dot
コマンドを実行して画像を生成します。 - 複数のランタイムサポート:Node.js や Deno 環境で動作します。
- 出力形式:DOT 文字列を SVG、PNG、PDF などの形式に変換します。
警告
システムに Graphviz がインストールされており、dot
コマンドが利用可能であることを確認してください。
例
DOT を画像ストリームに変換する
import { toStream } from '@ts-graphviz/adapter';
const dot = `
digraph example {
node1 [ label = "My Node" ];
}
`;
const stream = await toStream(dot, { format: 'svg' });
// In Node.js
stream.pipe(process.stdout);
// In Deno
await stream.pipeTo(Deno.stdout.writable);
DOT を画像ファイルに書き込む
import { toFile } from '@ts-graphviz/adapter';
const dot = `
digraph example {
node1 [ label = "My Node" ];
}
`;
await toFile(dot, './result.svg', { format: 'svg' });
解説
dot
コマンドの実行:アダプターは内部的にdot
コマンドを実行し、提供された DOT 文字列とオプションを使用します。- 出力形式:オプションで希望する出力形式(例:
svg
、png
)を指定します。 - ランタイム互換性:Node.js と Deno 環境の両方でシームレスに動作するように設計されています。