2011/01/07

Python から Imlib2 を使う

クロールした画像のサムネイル(正方形に crop)を作る必要があったから、せっかくなので Imlib2 を試してみることにした。

前に調べごとしてた時に Benchmark of Python Image Processing(resize) をブックマークしてベンチマークのグラフ見てたから、クオリティ求められてるわけじゃないし他の使う気にはちょっとなれなかった。

Imlib2 自体は Homebrew にあるのでありがたく使わせてもらう。

$ brew install imlib2

Python のモジュールは kaa-imlib2 なんだけど、easy_install とか pip のコマンド叩くとパッケージ無いとか言われるし、PyPI の egg は中に setup.py が入ってないからエラーになるし、これは何なのかよくわからない。

sourceforge とか PyPi のアーカイブは無視してリポジトリからチェックアウトする。なんとなく不安。

$ svn co svn://svn.freevo.org/kaa/trunk/base kaa-base
$ svn co svn://svn.freevo.org/kaa/trunk/imlib2 kaa-imlib2

それぞれ python setup.py install すれば問題なくインストールされるはず。逆に拍子抜けしたけど。

以下使ってみて気づいたこととか。

  • JPEG の quality 指定できないっぽい?ドキュメントしか見てないけど
  • ドキュメントにある scale_preserve_aspect が無い

検索してみると mopemope さん?が kaa-imlib2 あんまりいいもんじゃないって書いてたのが あったような気がするけど、どの辺りがそうなのか無知なのでよくわからない。名前がアレかなーとは思うけど。あと base とか依存がちょっとうざい。

勉強して自分で wrapper 書いてみたいって思ったけど、当面は無理かな。。

おまけ: CentOS 4.7 にインストール

subversion すら入っていないので svn co した kaa.base と kaa.imlib2 を sftp でアップロードする。

Imlib2 は sourceforge.net から最新のリリースを持ってきてインストール

$ ./configure --without-x
$ make
# make install

/usr/local 以下にインストールする。別にいいかと思って prefix は設定しなかった。

/usr/local/lib が LD_LIBRARY_PATH に含まれていないので /etc/ld.so.conf.d に imlib2.conf を作成し、適当に /usr/local/lib と書いて ldconfig を実行。

kaa.base と kaa.imlib2 はそれぞれ python setup.py install を実行する。 glib2 が古いから kaa.db が使えない?とかメッセージ出たけど関係ないから気にしない。

インタプリタ起動して import 出来るのを確認し、スクリプトも実行できることを確認して作業終了。何かしらトラブル出ると思ってたからまたまた拍子抜けしてしまった。

kaa-imlib2 普通に使う分には問題無いんだろうけど、もうちょっと楽できる wrapper あればいいなーって思った。そもそも画像処理なんてそんなに経験してないから何がどうとはまだ言えないけどね。

blog comments powered by Disqus