dev/gil
*Adobe Generic Image Library(GIL)を使ってみる 2007年4月6日 [[index]] #contents **概要 ちょっと画像処理をしたくなったので、物色した所面白そうなの発見。 [[Adobe Generic Image Library (GIL)>http://opensource.adobe.com/gil/]] [[プレゼンテーション>http://opensource.adobe.com/gil/presentation/index.htm]]を見ると、なんか使ってみたくなります。 とは言うもののテンプレートを使った事ないんですが...ま、勉強しましょう。 **インストール 結構面倒でした。setup.exe一個でインストールしたいものです<軟弱 ***zlib 幸いバイナリがあったので、それを使用する。 [[Zlib for Windows>http://gnuwin32.sourceforge.net/packages/zlib.htm]]のDeveloper files(zlib-1.2.3-lib.zip)を落とす。 ***libpng [[libpng Home Page>http://www.libpng.org/pub/png/libpng.html]]からソース(lpng1216.zip)をダウンロード。 [[PNGを読み込む(VC++でlibpngを使用する)>http://hp.vector.co.jp/authors/VA016379/cpplib/libpng.htm]]を参考にしてコンパイル。 VisualC++2005Expressでコンパイルしました。 ちなみにzlib絡みのファイルは、同じソースフォルダに突っ込んでおきます。 そして、1箇所変更。 zconf.hの287行目 >#if 1 /* HAVE_UNISTD_H -- this line is updated by ./configure */ ↓どうもunistd.hは無いっぽいので、0に変更 >#if 0 /* HAVE_UNISTD_H -- this line is updated by ./configure */ ***libjpg [[http://www.ijg.org/files/]]からソース(jpegsrc.v6b.tar.gz)をダウンロード。 どうしてもVisualC++2005でコンパイルできなかったので、VisualC++6.0でコンパイル >vcvars32 >copy jconfig.vc jconfig.h >copy makelib.ds jpeg.mak >copy makeapps.ds apps.mak >nmake /f makefile.vc boost/gil/lib/libjpgに丸ごと入れる。 ***boost [[http://www.boost.org/]]からboost_1_33_1.zipをダウンロードして、単純に展開 ***Adobe GIL [[http://opensource.adobe.com/gil/download.html]]からgil.zipをダウンロードして展開すると、boostとlibsが出来るので、そのままboostのフォルダに移動。 numericもサンプル実行に必要なので、boost/gil/extensionに入れる。 **サンプルの動作確認 VisiaulC++2005Expressでコンパイル。 ***!こんなエラーが出る >1>libjpeg.lib(jerror.obj) : error LNK2001: 外部シンボル "__iob" は未解決です。 プロジェクトプロパティ->構成プロパティ->C/C++->コード生成->ランタイムライブラリが、マルチスレッドDLL(/MD,/MDd)になっていたので(?)、マルチスレッドに変更する。(/MT,MTd) &simg(md_mt.png); ***!!またもエラー >1>LINK : fatal error LNK1104: ファイル 'LIBC.lib' を開くことができません。 プロジェクトプロパティ->構成プロパティ->リンカ->入力->特定のライブラリの無視にLIBC.lib追加。 &simg(libclib.png); 参考 [[http://www5b.biglobe.ne.jp/~u-hei/vcexpress_settings/]] **サンプル一覧 ***resize &img(test.jpg); -> &img(out-resize.jpg); ***affine &simg(test.jpg); -> &simg(out-affine.jpg); ***convolution &simg(test.jpg); -> &simg(out-convolution.jpg); &simg(out-convolution2.jpg); ***mandelbrot &img(out-mandelbrot.jpg); ***interleaved_ptr &simg(test.jpg); -> &simg(out-interleaved_ptr.jpg); ***x_gradient &simg(test.jpg); -> &simg(out-x_gradient.jpg); ***histogram &simg(test.jpg); -> &ref(out-histogram.txt); ***packed_pixel &simg(test.jpg); -> &simg(out-packed_pixel.jpg); ***dynamic_image &simg(test.jpg); -> &simg(out-dynamic_image.jpg);
2024-11-21 18:10:12 32400