[地球流体電脳倶楽部] [dcmodel | dcmodel-tools] [dcmodel-thum.rb]

dcmodel-thum : 実験結果サムネイル簡易作成スクリプト

概要・利用・動作環境の概説

dcmodel-thum.rb の rdoc マニュアル

Overview と Operation Environment と Usage をさらっと読んだら戻ってきてね。

なお、以下の URL にはこの出力結果と同等のものが置いてあるはずです。

dcmodel-thum.rb の サンプル

バージョン 1.1 (オリジナルやまだ由ツール) からの仕様変更

ここは、バージョン 1.2 以降から利用している人には不要です。 バージョン 1.1 のオリジナルのやまだ由ツールから利用している 方は、以下の変更点にご注意ください。

利用の手引き

dcmodel-thum.rb の入手の方法

dcmodel-thum.rb スクリプト本体 をダウンロード してください。もしくは cvsroot をもっている www.gfd-dennou.org にログインが 可能であれば、cvs からも直接取得が可能です。

$ CVS_RSH=ssh; export CVS_RSH
$ cvs -d :ext:www.gfd-dennou.org:/GFD_Dennou_Club/ftp/arch/dcmodel/cvsroot checkout dcmodel-tools

既に www.gfd-dennou.org にログインした状態であれば、以下のコマンドのみで 取得可能です。

$ cvs -d /GFD_Dennou_Club/ftp/arch/dcmodel/cvsroot checkout dcmodel-tools

画像の用意

サムネイル化しようとする画像を figdir という ディレクトリに置いてください。現在、画像として認識されるのは、 gif, png, jpg, jpeg, GIF, PNG, JPG, JPEG です。アニメーション gif にも一応対応していますが, サムネイル化する ページ番号は全画像共通にしか設定できません.

他の形式の画像を認識させたい場合は スクリプトの編集 (入門編) を参照してください。とりあえず、 まずは figdir を作成して下さい。

dcmodel-thum.rb の用意

dcmodel-thum.rb の入手の方法 で取得した dcmodel-thum.rb は thum-src というディレクトリを作ってそこに置いて下さい。 結果的に、以下のような構成になっていると良いです。

./figdir/*****.jpg
         *****.gif
./thum-src/dcmodel-thum.rb

とりあえず実行

thum-src へ移動し、dcmodel-thum.rb を実行してください。

$ cd thum-src
$ ruby dcmodel-thum.rb

すると、dcmodel-thum-make.rb という実行スクリプトが作成される はずです。

子スクリプトの実行

今度は dcmodel-thum-make.rb を実行します。

$ ruby dcmodel-thum-make.rb

すると、 ../sample_thum.htm というファイルが作成されます。 これがサムネイルの HTML です。

できたものを見てみる

../sample_thum.htm をブラウザで見てみてください。 このページと同様のメッセージが書かれたページが出力されている はずです。

figdir に画像をおいてあった場合、それらが 下にサムネイル化されているはずです。

スクリプトの編集 (入門編)

このままでは使えないので、 dcmodel-thum-make.rb を編集してください。 まず、ここに記述されるコメントを削除しましょう。

以下の部分以降を全て消してください。

thumb.message   << <<-Message
=begin
[((<地球流体電脳倶楽部|URL:http://www.gfd-dennou.org>))]
[((<dcmodel|URL:http://www.gfd-dennou.org/library/dcmodel>)) |
                        :
                        : 

次に、作成される HTML ファイルの名前を希望のものに変更してください。 下記のように infofile を設定しておくと「情報ファイル」(後述) の 名前も一緒に変更されて便利です。

thumb.index     = "../result"
thumb.infofile  = "#{File.basename(thumb.index)}.txt"

画像として認識したい拡張子を増やしたい場合は以下のようにしてください。

thumb.ext_list.push("bmp")

画像ファイル名が長く、ファイル名の頭の部分を取り除いて表示したい、 またはファイル名の頭で出力するファイルの選択を行いたい場合は 以下のように設定してください。

thumb.headlimit = "exp_name_"

画像ファイル名を HTML に表示したくない場合は以下のように設定してください。 個別的にファイル名を非表示にしたい場合は 「情報ファイル」の編集 (応用編)ファイル名非表示 を参照してください。

thumb.blankfig = true

画像の縦横サイズや、サムネイルで横に表示する画像の数は以下のように 設定してください。

thumb.img_width  = 200
thumb.img_height = 150
thumb.figtable_num = 3

自動生成されるサムネイル画像の置き場と画像の名前の最後部を 次のように指定して下さい.

thumb.thumbnaildir  = "../thumb"    # サムネイル画像を置くディレクトリ名
thumb.thumbnailtail = "_thumb.png"  # サムネイル画像の拡張子名

アニメーション gif 等複数ページを束ねた画像に対してはサムネイル化する ページ番号を 1 より大きい値に設定できます.

thumb.thumbnailpage = "50"      # サムネイル画像化する元画像のページ番号

スタイルシートに書き込む設定を単体でも指定可能です。 例えば、リンクに関する動作を設定するには以下のようにします。

thumb.style = <<-STYLE
  a:link { color:#269900; }
  a:visited { color:#269900; }
  a:hover { color:#99FF33; }
STYLE

元々の thumb.title ... の行を例えば以下のように書き換え、 タイトルを設定してください。(これは HTML の head タグ内の title タグに設定されます )

thumb.title     = "実験結果"

ちょうどこのチュートリアルが作成される場所に書き出す、 メッセージを設定してください。ここに書き込む内容がそのまま HTML として出力されるので、HTML タグも書き込んでください。

注意!! message に代入するときの記号は必ず 「=」 ではなく、「<<」にしてください。

thumb.message   << <<-MSG
<h1>実験結果</h1>

<p>
  以下は実験結果を一覧したものである
</p>

<h2>実験設定</h2>

<ul>
  <li>解像度       : T42L20
  <li>時間ステップ : 30 s
</ul>
                        :
                        : 
  MSG

サムネイル部分の下にメッセージを記述したい場合は、以下のように 設定しましょう。書き方は上記の message と同様です。

thumb.footer  << <<-MSG
=begin
== 参考資料

* 地球流体電脳倶楽部 dcmodel プロジェクト.
  ((<URL:http://www.gfd-dennou.org/library/dcmodel>)), 
  地球流体電脳倶楽部.

=end
MSG

再度実行

再度 dcmodel-thum-make.rb を実行します。

$ ruby dcmodel-thum-make.rb

すると、上記の記述が反映された ../sample_thum.htm が 作成されます。ブラウザで確認してください。

ただし、これだけでは、サムネイル内のコメントを編集できないので、 以下の 「情報ファイル」の編集 (入門編) を参照してください。

「情報ファイル」の編集 (入門編)

dcmodel-thum-make.rb を実行したディレクトリには上記で設定した infofile に対応したファイルが作成されるはずです。

thumb.infofile  = "#{File.basename(thumb.index)}.txt"

このファイルを編集することで、サムネイル内にコメントを記述できます。

まず中身を見てみてください。

fig1.png::
fig2.gif::
fig3.jpg::
fig3.png::

これは、以下のようなフォーマットになっています。

<画像名> : <修飾子> : <コメント>

<修飾子> に関しては 「情報ファイル」の編集 (応用編) を参照してください。

画像の順序の入れ替え

サムネイルには「情報ファイル」に書き込まれた順に書き出されます。 入れ替えたい時には行ごとその位置を入れ替えてください。

fig2.gif::
fig3.jpg::
fig3.png::
fig1.png::

コメント付け

コメントをつけたいときには、以下のようにしてください。

fig1.png:: 1 回目の実験
fig2.gif:: 2 回目の実験
fig3.jpg:: 3 回目の実験 (jpg 画像)
fig3.png:: 3 回目の実験 (png 画像)

HTML タグはそのまま認識されるので、以下のように書き込むことが 可能です。

fig1.png:: <hr> 1 回目の実験 <br> 失敗 <hr>

コメントアウト

コメントアウトしたい場合は行頭に 「#」を書き込みます。

# fig2.gif:: 2 回目の実験

ラベル

画像ではなく、コメントのみを書き込みたいときは、<画像名> に 「label」と記述します。

label:: <hr><table><tr><td>実験設定 2</td><td>パラメータ 3</td></tr></table>

スペース

一つ分飛ばして表示したい時は以下のように <画像名> の部分に何も書かないで 下さい。

 ::

もう一度実行

再度 dcmodel-thum-make.rb を実行します。

$ ruby dcmodel-thum-make.rb

すると、上記の記述が反映された ../sample_thum.htm が 作成されます。ブラウザで確認してください。

スクリプトの編集 (応用編)

スクリプトの編集 (入門編) の応用版です。

dcmodel-thum.rb の rdoc マニュアル の DCModelThumbnail クラスの Attribute に設定できる全ての値 の情報があるので、詳しくはそちらを参照ください。

電脳サーバ以外で使うために

電脳サーバ以外での利用を考える場合には、下記の設定も編集する 必要があるかもしれません。

コピーライト

thumb.copyright = "GFD Dennou Club"

スタイルシート

thumb.css       = "/GFD_Dennou_Club/ftp/arch/dcmodel/htmltools/dcmodel.css"

rd2 コマンドへのパス (これは、下記で紹介する RD という書法で 書く必要が無ければ、設定の必要はありません)

thumb.rd2_path  = "/usr/bin/rd2"

rd2html-ext-lib の設定 (これも、下記で紹介する RD という書法で 書く必要が無ければ、設定の必要はありません)

thumb.rd2htmlextlib = "/GFD_Dennou_Club/ftp/arch/dcmodel/lib"

RD を使いたい人のために

中には、「RD *1 で書きたい!! HTML でなんか書きたくない!!」という わがままは方もいるかもしれません。(これを書いている私が正にそうです。 そのためにこのツールを改良したと言っても過言ではありません…)。

そういう方は、メッセージの設定の際に、頭に 「=begin」、一番最後に 「=end」と記述してください。

thumb.message   << <<-MSG
=begin
= 実験結果

以下は実験結果を一覧したものである

== 実験設定

* 解像度       : T42L20
* 時間ステップ : 30 s
                        :
                        : 
=end
MSG

すると、この情報を rdtool で HTML 化したものをサムネイルのファイルに 埋め込みます。

RT を使いたい人のために (未実装)

注意: この機能はまだバージョン $Revision: 1.31 $ : $Date: 2007/05/22 05:13:14 $ では組み込まれていません。

他にも、「RT *2 で書いてみたい!!」という方もいるかもしれません。

そういう方は、メッセージの設定の際に、頭に 「=begin RT」、一番最後に 「=end」と記述してください。

thumb.message   << <<-MSG
=begin RT
caption = 表テスト

     , 人間, == , 犬 , ==
 ||  , 男  , 女 ,オス,メス

  x  , 1.0 , 2.0, 1.1, 1.2
  y  , 0.4 , 0.5, 0.3, 0.1

=end
MSG

すると、この情報を rttool で HTML 化したものをサムネイルのファイルに 埋め込みます。

SIGEN ファイル生成のコントロール

デフォルトではサムネイルファイルの作成と同時に SIGEN ファイル <http://www.gfd-dennou.org/library/cc-env/mksigen/desc.htm> を 作成しますが、不要である場合は mksigen を false にしてください。

thumb.mksigen = false

ロボット検索の禁止

生成するサムネイルをロボット検索して欲しくない場合には norobots を true にしてください。

thumb.norobots = true

サムネイル画像変換ツールの変更

デフォルトでサムネイルを変換するコマンドおよびオプションは 以下の通りです。

convert -depth 8 -geometry

これを変換したい場合には以下のように設定を行ってください。 ただし、空白の場合やシステムに存在しないコマンドが設定されている 場合にはエラーを返します。

thumb.convert_cmd = "mogrify -geometry"

デフォルトでは既に出力先にファイルが存在し、且つ元のファイルよりも 新しい場合、時間の短縮のため、画像ファイルの変換を行いません。 もしも毎回必ずファイルの変換を行いたい場合は以下のように設定してください。

thumb.convert_overwrite = true

「情報ファイル」の編集 (応用編)

「情報ファイル」の編集 (入門編) の応用版です。

右寄せ・左寄せ

<修飾子>に ">" を書き込むと右寄せに、"<" を書き込むと左寄せになります。

fig1.png:>: 右寄せだよ
fig2.gif:<: 左寄せだよ
fig3.jpg:: デフォルトは真ん中寄せだよ

複数行入力

<修飾子>に "m" を書き込むことで複数行入力が可能です。 なお、上記の 右寄せ・左寄せ と併用する場合にはカンマ "," で 区切ります。内容自体は "{" と "}" でくくります。

fig1.png:m:{
<p>
 複数行入力を行うよ。
 こういうことできるよ。
 便利だねー。テーブルも書きやすいね。
</p>
}
fig2.gif:>,m:{
<ul>
  <li> 併用するにはこうするよ。
</ul>
}

ファイル名非表示

<修飾子>に "b" を書き込むことでファイル名の表示を抑制します。

fig1.png:b: ファイル名表示が抑制されます

全てのファイル名を一括で抑制する方法は スクリプトの編集 (入門編) を参照してください。(属性 blankfig を true に設定します)。

RD を使いたい人のために

<修飾子>に "rd" を書き込むことで、文字列は RD として解釈され、 rdtool で HTML に変換されます。RD でページ内リンクを作成する 記法も利用可能で、本文やフッタ、サムネイル内のヘッダにリンクを 貼ることもできます。(例 ヘッダ1ヘッダ2 )

fig1.png:m,rd:{
((<りんく|URL:./>)) はこんな感じで書けるよ。
* リストも
  * 簡単
RD ラベルを使用したページ内リンクは
((<RD を使いたい人のために>)) のように記述すれば OK です。
}

RT を使いたい人のために (未実装)

注意: この機能はまだバージョン $Revision: 1.31 $ : $Date: 2007/05/22 05:13:14 $ では組み込まれていません。

<修飾子>に "rt" を書き込むことで、文字列は RT として解釈され、 rttool で HTML に変換されます。

fig1.png:m,rt:{
caption = 表テスト

     , 人間, == , 犬 , ==
 ||  , 男  , 女 ,オス,メス

  x  , 1.0 , 2.0, 1.1, 1.2
  y  , 0.4 , 0.5, 0.3, 0.1
}

「情報ファイル」からタイトルの設定

スクリプトの編集 (入門編) でタイトルの設定に関して 記述しましたが、「情報ファイル」からの設定も可能です。 <画像名> に title と記述し <コメント> にタイトルを書き込んでください。

title:: 実験設定 其の弐

スクリプトの編集 (入門編) は上書きされます。

「情報ファイル」から本文メッセージの追加

スクリプトの編集 (入門編) で本文メッセージの設定に関して 記述しましたが、「情報ファイル」から追加も可能です。 <画像名> に message と記述し、本文メッセージを書き込んでください。

message:m,rd:{
= サンプルだー

== 目次です

=== さらに目次です

((<ほげ|URL:thum/sample_thum.txt>))
}
message:m:{
<b>HTML</b> ですが何か問題でも?
<ul>
  <li>ちいさな  
  <li>テーブルを
  <li>作って    
  <li>みたよ♪
</ul>
<hr>
}

「情報ファイル」からフッターメッセージの追加

スクリプトの編集 (入門編) でフッターメッセージの設定に関して 記述しましたが、「情報ファイル」から追加も可能です。 <画像名> に footer と記述し、フッターメッセージを書き込んでください。

footer:m,rd:{
== フッターです
参考文献とか書き込むのに便利かもしれません。
}

*1 RD (Ruby Documents) や rdtool に関しては、 RD事始めRAA - rdtool を参照してください。
*2 RT を参照してください。

dcl_KMHF_d_mon01.gif


dcl_KMHF_d_mon02.gif


dcl_KMHF_d_mon03.gif


dcl_KMHF_d_mon04.gif


dcl_KMHF_d_mon05.gif


dcl_KMHF_d_mon06.gif


dcl_KMHF_d_mon07.gif


dcl_KMHF_d_mon08.gif


dcl_KMHF_d_mon09.gif


dcl_KMHF_d_mon10.gif


dcl_KMHF_d_mon11.gif


dcl_KMHF_d_mon12.gif


dcl_NewmanF_d_mon01.gif


dcl_NewmanF_d_mon02.gif


dcl_NewmanF_d_mon03.gif


dcl_NewmanF_d_mon04.gif


dcl_NewmanF_d_mon05.gif


dcl_NewmanF_d_mon06.gif


dcl_NewmanF_d_mon07.gif


dcl_NewmanF_d_mon08.gif


dcl_NewmanF_d_mon09.gif


dcl_NewmanF_d_mon10.gif


dcl_NewmanF_d_mon11.gif


dcl_NewmanF_d_mon12.gif


dcl_OLRA_mon01.gif


dcl_OLRA_mon02.gif


dcl_OLRA_mon03.gif


dcl_OLRA_mon04.gif


dcl_OLRA_mon05.gif


dcl_OLRA_mon06.gif


dcl_OLRA_mon07.gif


dcl_OLRA_mon08.gif


dcl_OLRA_mon09.gif


dcl_OLRA_mon10.gif


dcl_OLRA_mon11.gif


dcl_OLRA_mon12.gif


dcl_SurfTemp_mon01.gif


dcl_SurfTemp_mon02.gif


dcl_SurfTemp_mon03.gif


dcl_SurfTemp_mon04.gif


dcl_SurfTemp_mon05.gif


dcl_SurfTemp_mon06.gif


dcl_SurfTemp_mon07.gif


dcl_SurfTemp_mon08.gif


dcl_SurfTemp_mon09.gif


dcl_SurfTemp_mon10.gif


dcl_SurfTemp_mon11.gif


dcl_SurfTemp_mon12.gif


dcl_TauXB_mon01.gif


dcl_TauXB_mon02.gif


dcl_TauXB_mon03.gif


dcl_TauXB_mon04.gif


dcl_TauXB_mon05.gif


dcl_TauXB_mon06.gif


dcl_TauXB_mon07.gif


dcl_TauXB_mon08.gif


dcl_TauXB_mon09.gif


dcl_TauXB_mon10.gif


dcl_TauXB_mon11.gif


dcl_TauXB_mon12.gif


dcl_TauYB_mon01.gif


dcl_TauYB_mon02.gif


dcl_TauYB_mon03.gif


dcl_TauYB_mon04.gif


dcl_TauYB_mon05.gif


dcl_TauYB_mon06.gif


dcl_TauYB_mon07.gif


dcl_TauYB_mon08.gif


dcl_TauYB_mon09.gif


dcl_TauYB_mon10.gif


dcl_TauYB_mon11.gif


dcl_TauYB_mon12.gif


dcl_Tau_mon01.gif


dcl_Tau_mon02.gif


dcl_Tau_mon03.gif


dcl_Tau_mon04.gif


dcl_Tau_mon05.gif


dcl_Tau_mon06.gif


dcl_Tau_mon07.gif


dcl_Tau_mon08.gif


dcl_Tau_mon09.gif


dcl_Tau_mon10.gif


dcl_Tau_mon11.gif


dcl_Tau_mon12.gif


     

This page is generated by thum-src/dcmodel-thum-make.rb and thum-src/sample_thum.txt (2012/10/16 16:43:41 ogihara)
dcmodel-thum.rb [Script | Doc | Sample] is provided by dcmodel project in GFD Dennou Club
Copyright © GFD Dennou Club 2012