cachu's page


Last modified: Sat Feb 25 22:30:04 JST 2006


たまった画像の管理〜サムネイルを作る〜

[ホーム | joyfulexif | Perl スクリプト]

目次

このページはプログラムの配布と簡単な説明のみを行っています。詳しい説明 や変更履歴などについては こちらのページ(mkthum.pl の使い方)を参考にして下さい。

はじめに

画像がたまった時に、それらを管理する必要があります。たくさんある 画像をいちいち見るのは面倒ですので、サムネイルを作って、そのイン デックスを HTML 形式で書き出せたらブラウザで管理が出来て便利です。 この手のツールは最近 GUI なツールでよさ気なのが出回ってますが, コマンドラインで手軽にできた方がよいという方もいるでしょう (僕がその一人!).ここでは,私が作った Perl スクリプトを紹介(公開) します.バージョンアップを重ねる度に無駄に高機能になっているような 気がしますが、使い方の基本は下の例にもありますように mkthum.pl と 入力するだけです。

ダウンロード先

以下よりファイルをダウンロードすることが出来ます。GD モジュールが インストールされていない場合にはインストールをすると動作がより高速に なって幸せになります。GD Perl モジュールは CPAN あたりからダウンロード して下さい。最後の PDF ファイルはmkthum.pl の使い方 の HTML ファイルを Acrobat 6.0 にて変換をしたものです。

内容バージョンサイズ入手先
最新版 Ver.1.0.6 35.9kB mkthum_pl.zip
RPM Ver.1.0.6 39.7kB mkthum.pl-1.0.6-1.noarch.rpm
MakerNote プラグイン(tar.gz) 2006/02/25 29.5kB MakerNote20060127.tar.gz
MakerNote プラグイン(zip) 2006/02/25 42.0kB MakerNote20060127.zip
RPM(MakerNoteプラグイン) 2006/02/25 39.7kB mkthum.pl-makernote-20060127-1.noarch.rpm
SRPM Ver.1.0.6 71.2kB mkthum.pl-1.0.6-1.src.rpm
使い方 Ver.1.0.x ---.-kB 後日用意

(最低限必要なファイルは mkthum_pl.zip です)。 ダウンロード後,解凍して下さい. その結果 mkthum.pl という Perl スクリプトが出来ます。このスク リプトは ImageMagick の convert と identify コマンドを利用しますので、もしも ImageMagick が入っていない場合は別途インストールをして下さい。 また,Perl 、convert、identify のパスが正しいかどうかと実行属性が あるかどうかを確認して下さい(ダウンロード時には意図的に実行属性 を落してあることに注意).なお動作確認は Linux のみで行なっていますが, 特別なことはしていませんので基本的には Perl と ImageMagick が入っている 環境ならば動作すると思います(Windows2000 での動作報告もありました).

Ver.1.0.1 より Exif 情報のメーカーノート情報の表示対応を開始しました (まだほとんど出来ていませんが)。mkthum.pl と同じディレクトリに MakerNote(日付).tar.gz ファイルを展開してください。詳しい解説は後日 書きます。

Linux 用の RPM も用意しました. mkthum.pl-x.x.x-x.noarch.rpm を ダウンロード後(x.x.x-x はバージョン番号を表す)

# rpm -ivh mkthum.pl-x.x.x-x.noarch.rpm
# rpm -ivh mkthum.pl-makernote-xxxx-x.noarch.rpm

として下さい./usr/bin に mkthum.pl がインストール されます.インストールする前に ImagiMagick パッケージが存在するか どうかを確認して下さい.また,rpm コマンドは root 権限で行なって 下さい.

簡単な使い方

以下に実例をあげながら使い方を説明します。 実行例に挙げた他にも膨大なオプションがあります。詳しくは mkthum.pl --help よりオンラインヘルプを参考にしてください。 なお、コマンドは画像がおいてあるディレクトリに移動してから行います。

実行例 1:

一番簡単な方法は、

% mkthum.pl

とだけ入力します。

実行例 2:

実行例 1ではサムネイルから画像に直接リンクしていますが, H オプションをつけることによりそれぞれの画像に対して HTMLファイルを用意します(実行例でサムネイル画像をクリックすると 実行例 1 との違いが分かると思います).これにより画像を順番に見る作業を 楽に行なうことが可能になります.また、--noborder オプションをつける ことによりサムネイルを枠なしで表示します。

% mkthum.pl -H --noborder --slide-show 3

さらに例のように --slide-show オプションをつけるとそれぞれの画像に対する HTML ファイルを次々に表示するようにします(簡易スライドショー機能)。 表示間隔は --slide-show の後に秒数を指定します。ただし、これは HTML の リフレッシュ機能を利用しているので、一度作ると常にスライドショーに なってしまいます(当然ランダム表示もありません)。 また、最後の画像の次はサムネイルの画面に戻ります (従ってスライドショーは1回のみです)。

実行例 3:

画像をあるディレクトリ以下で管理をしていて,そのディレクトリの下に さらにサブディレクトリがある場合,自由に移動が出来たりすると 一括管理が出来て非常に便利になります.a または A オプションをつけることにより各ディレクトリに 00CONTENTS.html が作成され,ディレクトリ 内の画像の情報の一覧を見ることが出来ます.

% mkthum.pl -a 1 -t 2 -l 3 -r 3 -H -W -R '../index.html'

この例では処理するディレクトリ(上の例ではカレントディレクトリ)に cat, nature, star というディレクトリが存在していて,それぞれの ディレクトリの下に画像が保存されています.この例のように 処理する最初のディレクトリには画像がない場合には a オプションをある場合には A オプションを 使用します.また -R オプションでリンク先を指定すると, トップのディレクトリの CONTENTS の 横に [return] としてリンクがはられます(上の例ではこのページに 戻ってこられます).

実行例 4:

実行例 3 と似ているのですが、サムネイルを表に並べるのではなく 横1列に一覧として並べる場合

% mkthum.pl --list --force-convert

のように --list オプションをつけて実行します。 この場合現在のバージョンでは作成サムネイルの大きさは 縦最大40ピクセル、横最大50ピクセルに固定されます。 --force-convert オプションは GD モジュールがインストールされている場合 サムネイルの作成を強制的に convert コマンドで作成させたい場合に 指定します(特に必要ありません)。

実行例 5:

GD Perl モジュールがインストールされている場合 photo-frames オプションをつけることにより サムネイルに写真フィルムのような枠をつけてくれます。

% mkthum.pl --photo-frames --link-border 0 --noborder

link-border オプションはサムネイルから画像(H オプションの場合は htmlファイル)へのリンクの外枠の幅を指定します。例の場合のように 0 にすると枠がなくなります。さらに negative オプションをつけると サムネイルをネガっぽくしますので、ますますフィルムっぽく見える と思います。ただし、negative オプションをつけた場合は convert で処理しますので、実行速度は従来版並となります。

実行例 6:

もし、HTML ファイルの出力は必要がなく純粋にサムネイルだけを作成したい場合、 "mkthum.pl --nohtml"のように --nohtmlオプションをつけて下さい。

実行例 7:

デジカメ画像の場合、画像ファイルに情報も記述されています。その情報も 出力したい場合 --exif-info オプションをつけます。出来上がった HTML ファイルに [E] によりリンクされます(新しいウィンドウが開きます)。 情報ファイルはファイル名の拡張子を info としたものが exif ディレクトリに 作成されます。

% mkthum.pl --medium --exif-info --exif-lang ja --js

--medium オプションを指定すると少し大きめの サムネイル画像を作成します。--small が通常の大きさで --large が一番大き くなります。--js オプションを指定すると JavaScript を利用してステータス行に情報を表示します。現在のところ 画像サイズのみ表示します(Exif の場合はそれに含めて F値、シャッター速度、 フラッシュ情報も表示します)。Ver.1.0.0 では --exif-lang に ja を設定すると Exif 情報を日本語で表示します。

実行例 8:

フレームを利用した HTML を出力したい場合には

% mkthum.pl --frame --force-convert

のように --frame オプションを指定します。そうすると 00FRAME.html というファイルをブラウザで見ると例のように3画面に分かれた ページになります。左上がメニュー画面、右側がサムネイル表示画面となります。 そして、右側のサムネイルをクリックするとちょっと大きな画像が左下の フレームに表示されます。オリジナルの画像を見たい場合には左下の画面を クリックすると新しいウィンドウに表示します。また、通常の index.html も作成されますので、フレームな HTML が嫌な場合はそちらを利用するとよいで しょう。GD モジュールを利用したサムネイルはあまり綺麗ではないので ちょっと作成に時間がかかりますが例のように --force-convert オプションを つけて実行した方がよいかもしれません。

ここで紹介をした以外にコマンドラインオプションは他数あります (例 3 では t, l, r, W の意味は説明してませんね ^^;)。 詳しい説明はmkthum.pl の使い方 のページを参考にしてください。

画像サイズ(幅と高さ)自動取得可能な画像形式

mkthum.pl の古いバージョンでは画像の幅と高さ(以下画像サイズと表現) を convert コマンドの -verbose オプションで表示されるログに頼って いました。その結果、サムネイルを作成するのに2回 convert を実行 する必要がありました。自前で画像サイズを調べることが出来れば convert を1回使うだけでよく動作が早くなります。 現在のところ以下の画像形式の自動取得が可能となっています。

一応手元にある画像できちんと画像サイズが取得できることは確認出来ています が、もし正しく取得できていないようでしたら -D オプションにより identify や convert コマンドから取得するようにしてください(でもって取得できなかった!と 連絡をいただけると対処できるかもしれません)。

画像サイズ取得だけをしたいという人のために mkthum.pl から 画像取得の 部分だけを切り取ったスクリプトと Exif の情報を読むスクリプトを

として Perl スクリプト集の ページにて公開しています。必要でしたらどうぞ。著作権、再配布に関しては mkthum.pl と同じでお願いします。

identify による画像サイズの取得について

Ver.0.7.2 より identify による画像サイズの取得を出来るようにしました。 これにより convert を -verbose オプションで実行する必要がなくなるので -o オプションをつけなければいけなくなる環境はなくなると思います。 内部では identify -format '%w %h %m' pic_file のようにして identify を実行しています。

注意事項

このスクリプトは「1ファイルで全てをこなす」ことをポリシーとして 作成しています.というのも複数ファイルがあるとか設定ファイルが 必要とかだと使いたくても使えない人を作ってしまうからです. 「とにかくサムネイルを作りたい場合,サムネイルを作りたい ディレクトリに移動して mkthum.pl とコマンドを打てばとりあえず 出来る」なら使えない人はいない(はず)ですよね?(使いこなせない人は 出るかも知れませんが…)。

著作権,再配布等

本スクリプトの著作権は cachu が所有しています.ただし,再配布に 関しては特に制限はありませんので自由にどうぞ.また,自由に改良等 していただいて構いません.また,改良した結果を配布しても構いません が,著作権表示部は削除しないで下さい.そしてオリジナルとの差分を どこかに示して下さい(責任の所在を明らかにするため).

再配布は自由と書きましたが,一言連絡していただけますとちょっと 嬉しいです(もちろんしなくて構いません).

基本的に結構チェックが甘いスクリプトですので,思わず必要なファイルを 上書きしてしまうかも知れませんがその辺は自己責任でお願いします. 特にすでに index.html があるディレクトリで実行をすると確実に index.html は置き換わってしまいます(たぶん注意するのはそれくらい だと思いますが…).

謝辞

作成にあたって以下の方にアドバイスをいただきました。 ここでお礼を申し上げます。

橋本さん <hashimot@riam.kyushu-u.ac.jp>
サムネイルを複数回作成しない方がよいのでは? とのご指摘をいただきました。
typea さん
<img src> タグに width, height をつけた方がよいので は?とのご指摘をいただきました。
長谷川 さん
-geometry の綴間違いを指摘していただきました.
よや さん
バグの指摘をしていただきました。
suguru sato さん
Exif の処理に関するバグとアドバイスをいただきました。

連絡先

mkthum.pl に関する意見や要望、またその他雑多なことでも構いませんが 何かありましたら、 メールにて 御連絡下さい。また 雑談掲示板 に書き込んでくださっても構いません。


T T Y
このページの作者は cachu です。意見・要望は cachu@cachu.xrea.jp までお願いします。