他のライブラリに組み込まれて使われることの多い OpenJPEG というライブラリだが、opj_compress や opj_decompress というコマンドラインツールもあるらしい。
さあ、これを使おうと思ったのだが、インストール時にやらかしていたようです…orz
これは再インストールですな。
libpng について
普通にインストールすれば(↓)、png.framework はできないはずだが、はて?
おそらく、インストールの過程のどこかで png.framework を生成していたんでしょう。
ところで libpng にもコマンドラインツールがあるようだ。
興味がある方は、ターミナルから libpng16-config とタイプしてください。
再インストール
libpng → OpenJPEG の順にインスコ。
再度、コマンドラインツールを呼び出すと…
% opj_decompress -h
This is the opj_decompress utility from the OpenJPEG project.
It decompresses JPEG 2000 codestreams to various image formats.
It has been compiled against openjp2 library v2.5.0.
Parameters:
-----------
-ImgDir <directory>
Image file Directory path
-OutFor <PBM|PGM|PPM|PNM|PAM|PGX|PNG|BMP|TIF|TIFF|RAW|YUV|RAWL|TGA>
REQUIRED only if -ImgDir is used
Output format for decompressed images.
今度は、正常に起動。
テスト
テストコマンドが使えるようになったので、png ファイルで圧縮・伸展を試してみる。
今回は特にオプションをいじらず、ノーマルのまま。
結果は以下のようになった。
ちょっと色目が濃くなっている感じでしょうか。
医療画像
ところで、JPEG 2000 は当初の想定よりは普及している感じはしないが(それでも MacOS では標準でサポートされている)、医療画像の世界では広く使われているようだ。
この記事内で
日頃お世話になっている DCMTK だが、JPEG2000 系は(オープンソース版)では基本的にはサポート外だ。
内部的には OpenJPEG 組み込んでいるはずなんですけどね(すっとぼけ)。
と言及されている。
DCMTK と OpenJPEG の橋渡しは、いろいろな方法が考えられると思うが(上の例のように OpenJPEG のアプリで圧縮・展開ができているのだから、これを組み込んだソフトでできないはずがない)、自分で繋ぎのコードを書いてもいいし、このプロジェクトを使ってもいいだろう。
後者のプロジェクトは CMake の書き方があまりいいものではないので、MacOS なら .xcodeproj を生成させてからビルドするといいと思う。