libtiffの環境構築(1)

Linux

これまで自作の関数でMulti TIFFファイルを書いたり、読んだりしていたのですが、libtiffライブラリを使ってみることにしました。

私が使うデータは主に8bit、16bitのグレースケールです。
まずはTIFFのプログラムを作る環境構築から。
JPEG、Zlibライブラリは使わないのでインストールしません。
実際のプログラムは他の記事に掲載しています。
カテゴリで「libtiff」を選択すると表示されます。

環境1

  • Debian lenny 32bit
  • gcc version 4.4.5 (Debian 4.4.5-8)
  • libtiff4-dev ver.3.9.4-5+squeeze3

環境2

  • WindowsXP Pro SP3 32bit
  • Microsoft Visual C++ 2008 SP2
  • Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80×86
  • Microsoft Visual C++ 2010 SP1
  • Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80×86
  • libtiff ver.3.9.4
  • libtiff ver.3.9.6
  • libtiff ver.4.0.1

他のページにあるlibtiffのサンプルについて

プログラムと同じディレクトリにinclude、lib、dllの各ファイルを置いていると仮定している。
下記のインストール手順では、汎用性のためにinclude、lib、dllの各ディレクトリに分けてコピーしている。
なお、ディレクトリ毎に分けた場合は、include、lib、dllの場所にパスを通しておくと良い。

インストール(環境1)

aptitude install libtiff4-dev

インストール(環境2)

「Visual Studio 2008 コマンドプロンプト」を起動して行います。
libtiffホームページから安定版をダウンロード、解凍してコンパイルします。
圧縮を使わないので、何もいじりません。
「libtiff ver.4」の場合も同様に行います。

Releaseの場合

cd .\tiff-3.9.6
nmake /f makefile.vc
copy .\tiff-3.9.6\libtiff\*.h D:\libtiff396\include
copy .\tiff-3.9.6\libtiff\libtiff.lib D:\libtiff396\lib
copy .\tiff-3.9.6\libtiff\libtiff_i.lib D:\libtiff396\lib

DLLを使う場合はmanifestを埋め込んでおくと便利。
なお、DLLを使う場合は、「libtiff_i.lib」をリンクする。
また、プログラムと同じディレクトリに置くか、DLLを置いた場所にパスを通しておく。

cd .\tiff-3.9.6\libtiff
mt -manifest libtiff.dll.manifest -outputresource:libtiff.dll;2
copy .\libtiff.dll D:\libtiff396\dll

Debugの場合
・「.\tiff-3.9.6\nmake.opt」の「OPTFLAGS」にある「/MD」を「/MDd」に修正する。
・Releaseの「libtiff.lib」と区別するために「.\tiff-3.9.6\nmake.opt」の「DLLNAME」にある「libtiff.dll」を「libtiffd.dll」に修正する。

OPTFLAGS =	/Ox /MDd /EHsc /W3 /D_CRT_SECURE_NO_DEPRECATE
cd .\tiff-3.9.6
nmake /f makefile.vc
copy .\tiff-3.9.6\libtiff\*.h D:\libtiff396\include
copy .\tiff-3.9.6\libtiff\libtiff.lib D:\libtiff396\lib\libtiffd.lib
copy .\tiff-3.9.6\libtiff\libtiff_i.lib D:\libtiff396\lib\libtiffd_i.lib

DLLを使う場合はmanifestを埋め込んでおくと便利。
なお、DLLを使う場合は、「libtiffd_i.lib」をリンクする。
また、プログラムと同じディレクトリに置くか、DLLを置いた場所にパスを通しておく。

cd .\tiff-3.9.6\libtiff
mt -manifest libtiffd.dll.manifest -outputresource:libtiffd.dll;2
copy .\libtiffd.dll D:\libtiff396\dll

コンパイル(環境1)

gcc -Wall -ltiff -o hoge hoge.c

コンパイル(環境2)

「Visual Studio 20xx コマンドプロンプト」を起動して行う。

cl -Wall -o hoge hoge.cpp

manifestなしで動かす。

mt -manifest hoge.exe.manifest -outputresource:hoge.exe;1

wikipedia

Tagged Image File Format - Wikipedia

libtiff

http://www.remotesensing.org/libtiff/

マニフェストをC/C++アプリケーションに埋め込む

http://msdn.microsoft.com/ja-jp/library/ms235591%28VS.80%29.aspx

MultiTIFFのソース1

C#とVB.NETが掲載されている。
その他にも色々サンプルが掲載されている。
C#からC言語への書き直しは簡単なので大変参考になる。
http://bitmiracle.com/libtiff/help/create-multipage-tiff.aspx

MultiTIFFのソース2

404 Not Found



Comments