MOONGIFT

オープンソース・フリーウェアを毎日紹介するブログ。日々の業務の効率化、新しいサービスのネタ探しにどうぞ。SNS、SBS、CMS、オフィス、画像編集、ユーティリティ、Firefoxアドオン、テキストエディタ、ゲーム…ジャンルは様々。

アスキーアートのダイアグラムを画像に変換「ditaa」

タグ: [] [] [] [] [] [] [] [] []

buzz_button

これは面白い!

技術者は画像やイラストで表現するよりもテキストベースの表現を好む傾向にある。作るのが面倒というのも一つの理由ですが、画像だとコピー&貼付けで完結しなかったり、後で修正するのも手間がかかってしまうということもある。そこで作られるのがテキストベースのダイアグラムです。例えば下のような画像、よくメーリングリストなどで使われているのを見たことがないでしょうか。

Picture 275.png

まぁ個人的にはこれが見やすですし、理解するには十分かな、と。でも、これを技術者以外の方がみると、分かりづらいし何より見た目がいけてない、という話になってしまいますよね。そこで憮然と構えるのではなく、見やすく変換してしまおうというのがditaaです。変換結果は以下にて!

これが変換結果です。どうです、素敵でしょ?

test_3.png

 

これなら誰が見ても納得の一品のはず。ditaaはJavaで作られたソフトウェアで、テキストファイルに書いたダイアグラムを渡すとPNG画像にして返してくれます。画像ならずれることもなく、誰が見ても一致する結果が得られて素敵です。

白黒だけじゃなく、色を指定して生成することもできます。

Picture 276.png

元ネタはこれで、変換結果は以下。
test_2.png

この場合はオブジェクトが離れていますが、くっつけることも可能です。他にも、こんなパターンが作成できます。

Picture 277.png

角の加工を指定したパターン

 
Picture 279.png
カラフル&角丸指定

 

Picture 280.png

フローチャート向け

 
Picture 281.png
ポイントを使ったパターン

 

これだけできると、簡単なネットワーク図や、フローチャートならテキストベースで書けてしまいますね。テキストで保存して、バッチ処理で画像にして資料の中に取り込むようにすれば、メンテナンスも容易な仕様書が作成できそうです。

実行時のオプションは大きさ指定(縮小または拡大)、HTMLも同時に出力、全ての角を丸める、影付き、アンチエイリアス解除などなど。これらを組み合わせれば素敵なダイアグラムが得られそうです。

実行はコマンドラインなので、バッチ処理にも向いています。Java製とあってWindows/Mac OSX/Linuxとプラットフォームを選ばないのも素晴らしい。技術者の方でも、ビジュアルの優れた結果が得られれば、仕事のモチベーション向上にもつながるのではないかな、と。ぜひお試しを。

 

ditaa
 http://ditaa.sourceforge.net/

SourceForge.net: ditaa
 http://sourceforge.net/projects/ditaa/

November 10th, 2008 Posted by admin | 4 コメント

4 Comments »

  1. 日本語も変換できるのでしょうか?

    Comment by igrep | 2008/11/10 Monday

  2. UTF-8で文字を書くと日本語も変換されます。が、枠の部分がうまく変換されなくなります。中途半端に変換されると言った状態です。

    Comment by admin | 2008/11/10 Monday

  3. Mac OS Xでアスキーアートのダイアグラム自体を書くエディターが欲しいですねえ.Mac OS 9時代はKanjiPaintなんかを使ってたんですが...

    Comment by Xavii | 2008/11/13 Thursday

  4. 日本語の後ろに半角スペースを追加すると,うまく変換されるようです.

    http://d.hatena.ne.jp/tamura70/20100123/ditaa

    Comment by tamura70 | 2010/01/31 Sunday

Leave a comment

MOONGIFTネットワーク。こちらもぜひご覧ください。
MOONGIFT
Open Service
Rails 2.0
Resident on Net
iPhone最適化
リーンソフトウェア
MarketPedia
Producing Web
Cool Coding