ブログトップ
コンピュータと共にある創造的日常
uneoyaji.exblog.jp

メディアアート・プロジェクトにハマったオヤジの日常生活
by une0exct
MacOS X 10.7 Lion に netpbm を入れる。
結構昔から画像ファイルのバッチ処理には netpbm を利用していたのだが、最近ようやく OS を Lion にアップした Mac で久々に netpbm を使おうとしたら、なんと PPC コードのため実行できませんときたもんだ。つまり、おそらく昔々使っていた PowerBook G4 にインストールしたバイナリを、そのまま引き継いで使っていたらしい。ご存知のとおり、Lion からは Rosetta のサポートがなくなり、PPC用のバイナリは実行できなくなってしまった。多分、他のライブラリにも同様の問題があると思い、このさい、画像処理まわりをバージョンアップすることにした。netpbm のバージョンは、安定版で 10.47.37。
netpbm で使われるライブラリは、libjpeg, libpng, libtiff, libz など。まずは、これらも最新版のソースをダウンロードして、./configure; make; sudo make install などなどと実行して、インストールは順調に終了。古いバージョンの一部が /opt/local/ 下にあったので、これらは uninstall した。新しいバージョンはすべて /usr/local/ 下に統一した。
それで、netpbm を ./configure; make すると、コンパイルエラー発生!いろいろ探ってみると libpng のバージョンが新しすぎたらしい。1.5 で変更になった部分が netpbm で使われていた。1.5 を uninstall し、気を取り直して 1.2 の最新版をインストールし直し、再度、netpbm の構築を試みると、今度は、バイナリの作成まで問題なく終了した。make install と打ってみると、パッケージを作成してから ./installnetpbm を実行せよとのメッセージ。make package; sudo installnetpbm で /usr/local/netpbm/{bin,lib,include,...} 下にインストール完了。
当方は unix を使い始めた時に sh じゃなくて csh を使ってしまってから、ログインシェルはずっと csh その後 tcsh を使っている。んで、$path に /usr/local/netpbm/bin を追加すべく、~/.cshrc を少々変更。準備OKのはず。ということでコマンドを実行してみると、まず、libnetpbm が見つからないというエラー。ライブラリへのパスが通っていない。ここはライブラリファイルの数も少ないので、/usr/local/lib 下に /usr/local/netpbm/lib/libnetpbmなんたらのシンボリックリンクを置くことで解決。いくつかのコマンドは順調に実行できる。しかし、オプションに色の名前を指定したところで、rgb.txt が見つからないというエラーが発生した。ライブラリ関数がデフォールトで /usr/share/netpbm を探すらしい。これもシンボリックリンクで解決した。
今回、必要になった処理は、SBArt4 のヘルプファイルに埋め込む画面サンプルの自動作成。コマンド+シフト+4、スペース、クリックで保存した画面の PNG ファイルを、周囲をトリミングして、サイズを 40% に縮小して JPEG ファイルに書き出すというもの。コマンドは以下のような感じ。
pngtopnm -mix -background=white $f | pnmcrop -white | pamscale 0.4 | \
pnmtojpeg -quality=90 > ../$l.lproj/help/$fn.jpg
これまでは、いちいち、Phoshop で1つずつやっていたので、かなり簡単になりました。
[PR]
by une0exct | 2012-04-08 13:41
<< MacOS X 10.7 Li... パソコン用の廉価NASをLin... >>