hirax.net::inside out::2008年12月11日

最新記事(inside out)へ  |   年と月を指定して記事を読む(クリック!)

2008年11月 を読む << 2008年12月 を読む >> 2009年1月 を読む

2008-12-11[n年前へ]

「板書画像をベクタライズしPPTファイルにするRubyスクリプト」を作る 

Office付属OCR機能で「板書画像を一発でPPTファイルにするRubyスクリプト」を作る」で、板書画像を文字認識した上で、パワーポイントのファイルに変換するRubyスクリプトを作ってみたわけですが、あまりの悪筆で板書文字をろくに認識してくれなかったりすることも多いと思います。また、板書にイラスト・説明図を頻繁に描くような人も、おそらく少なからずいると思います。

 そんな時、「板書画像を自動でベクタライズした上で、パワーポイント上でイラストを再編集することができたら便利だろう」というわけで、「板書画像をベクタライズしPPTファイルにするRubyスクリプト」を作ってみました。その例がjpg2ppt.rbです。

require "win32GuiTest"
jpg=ARGV[0]
Win32GuiTest.img2PPT(
   jpg.sub(/\.jpg$/i,'.ppt'),
   Win32GuiTest.jpg2wmf(jpg),
   true)
という具合でいつものように、処理本体自体は win32GuiTest に(とりあえず)入れてあります。

 スクリプトを置いたディレクトリに"apps"という名前のサブディレクトリを作り 、その中にここからダウンロードしたPotraceのバイナリ・ライブラリ類を置いて、さらに、JPG2BMP に入っているバイナリ・ライブラリ類をを置けば準備完了です(win32GuiTestの末尾当たりを見れば、その汚い実装や変更方法がわかると思います)。後は、

ruby jpg2ppt.rb rakugakiv.jpg
とスクリプトを呼べば、こんんなパワーポイントファイルができあがります

 PPT(パワーポイント)ファイルに貼り付けられた画像はベタライズされた上で、Windows Meta File形式でスライド上に貼り付けられているので、グループ化を解除していけば、後でベクター部品に分解された板書の再編集が可能、ということになります。