IIIFを使ってみたい人のためのIIPImage Serverインストール記(簡易版) (original) (raw)

本日、「国際的なデジタル画像の相互運用の枠組み、IIIFのためのサーバを導入してみたので簡単にご紹介」という大変冗長な記事を書いたのですが、雑談や脱線が多すぎて、インストールが難しいのではという印象を一部に持たれてしまったかもしれないと思いまして、実際に必要(そう)な作業のみに絞り込んだものを以下に書いておきます。

IIIF(International Image Interoperability Framework)の目玉(の一つ)であるImage APIを使えるようにするために必要なのは、

1.サーバソフトのインストール

2.ピラミッド型タイル画像ファイルの用意

の2点です。それぞれ以下に方法を書いていきますと、

1.サーバソフトのインストール

今回は、CentOS7に、動作速度が速そうなIIPImage Serverをインストールしました。まず、準備として、fcgiを使えるようにするモジュールをインストールしておきます。

$ sudo yum install mod_fcgid

次に、ソースコードiipsrv-1.0.tar.bz2をダウンロードします。

次に、これを展開して、

$ tar xjvf iipsrv-1.0.tar.bz2

$ cd iipsrv-1.0/

$ ./configure

$ make

$ sudo make install

とするとiipsrv.fcgiができます。もし、./configureが通らない時は、適宜yumで*-develパッケージをインストールしてください。make installまで終わったら、これを設置するディレクトリを作ってそこに設置します。

$ sudo mkdir /var/www/iipsrv

$ sudo cp ./src/iipsrv.fcgi /var/www/iipsrv

次に、設定ファイルを作ります。

$ sudo vi /etc/httpd/conf.d/iipsrv.conf

iipsrv.confの内容はとりあえず下記のような感じで動きました。

--------------------------------------------------------

ScriptAlias /iipsrv /var/www/iipsrv/iipsrv.fcgi

# Set our environment variables for the IIP server
FcgidInitialEnv VERBOSITY "6"
FcgidInitialEnv LOGFILE "/tmp/iipsrv.log"
FcgidInitialEnv MAX_IMAGE_CACHE_SIZE "1500"
FcgidInitialEnv JPEG_QUALITY "100"
FcgidInitialEnv MAX_CVT "8000"

FcgidInitialEnv CORS "*"
FcgidInitialEnv FILESYSTEM_PREFIX "公開用画像ディレクトリのトップ"

-----------------------------------------------------------

「公開用画像ディレクトリのトップ」は、ピラミッドタイルTIFFファイルが置かれているディレクトリのトップを書いておきます。たとえば/opt/images/の下に01, 02, 03...というディレクトリがあって、そのさらに下にピラミッドタイルTIFFファイルが置かれている(=画像ファイルのパスが「/opt/images/01/0001.tif」等)という場合には、「/opt/images/」を書いておきます。その他の設定の意味と値については詳しくはこちらをご参照ください。たとえば、MAX_CVTピクセル単位で書いて送出する画像の最大サイズを制限します。

一通り終わったら、CentOS7ですので

# systemctl restart httpd.service

とすればサーバソフトは動作します。

http://Webサーバホスト名/iipsrv/iipsrv.fcgi

にアクセスして、IIPサーバが動作しているというページが表示されるかどうか確認してみてください。もし表示されないようなら、ディレクトリのアクセス権限等を確認してみてください。

2.ピラミッド型タイル画像ファイルの用意

ピラミッド型タイル画像ファイルを用意するにあたっては、ImageMagickさえあれば大丈夫のようです。たとえば 0001.jpgという画像があったとしたら、

$ convert 0001.jpg -define tiff:tile-geometry=256x256 -compress jpeg 'ptif:0001.tif'

とすれば作成できます。あとはこれをシェルスクリプトなどで適当に回せばOKですが、とりあえず動作確認のため、一つの画像だけで試してみましょう。このファイルは、上記の場合には/opt/imagesディレクトリ以下に置いてください。

$ cp 0001.tif /opt/images/

などとすればよいでしょうか。

その後、下記のURLにアクセスして

http://Webサーバホスト名/iipsrv/iipsrv.fcgi?IIIF=/0001.tif/full/full/0/default.jpg

画像の全体が表示されたらOKです。次に、たとえば以下のような感じで、URLに応じて色々表示の仕方が変化する様を試してみてください。詳しくは本家サイトのImage APIの解説をどうぞ。

http://Webサーバホスト名/iipsrv/iipsrv.fcgi?IIIF=/0001.tif/pct:60,65,18,23/800,/0/default.jpg

ここまでできたら、サーバの設定はもう終わりです。あとは、/opt/images/以下に、ピラミッド型タイル画像に変換したファイルを置いていけば、IIIF Image APIに対応した画像としてアクセスできるようになりますので、適宜画像作成して置いていってください。

ちょっと間違っているところがあるかもしれませんが、一応、これで動いたという最小限のことに関して、ご報告させていただきました。