C#とLibTiff.Netを使ってTIFFを扱える環境を作りました。
環境(共通)
ライブラリは「BitMiracle.LibTiff.NET.dll」を使います。
ソースと同じディレクトリに置くと仮定します。
- LibTiff.Net ver.2.3.624.0
- libtiff.net_src-2.3.624.0.zip
- libtiff.net_bin-2.3.624.0.zip
環境1-1
Linuxでの動作検証用にVMware Playerを使います。
- Windows8.1 Pro 64bit SP1
- Microsoft Visual Studio Express 2013 for windows Desktop 日本語
- Microsoft Visual C# Compiler version 12.0.21005.1
- .NET Framework ver.4.5.50938
- VMware Player ver.6.0.3
- libtiff ver.4.0.3(TIFFファイルの確認用)
環境1-2
Linuxでの動作検証用にVMware Playerを使います。
- Windows7 Pro 32bit SP1
- Microsoft Visual Studio Express 2013 for windows Desktop 日本語
- Microsoft Visual C# Compiler version 12.0.21005.1
- .NET Framework ver.4.5.50938
- VMware Player ver.6.0.3
- libtiff ver.4.0.3(TIFFファイルの確認用)
環境1-3
Windows XPを使っているので「Visual C# 2010」を使います。
また、Linuxでの動作検証用にVMware Playerを使います。
- Windows XP Pro 32bit SP1
- Microsoft Visual C# 2010 日本語 Express SP1(KB983509)
- Microsoft Visual C# 2010 Compiler version 4.0.30319.1
- .NET Framework ver.4.0.30319(C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319)
- libtiff ver.4.0.3(TIFFファイルの確認用)
- VMware Player ver.5.0.0 build-812388(プログラムの検証用)
環境2
「VMware Player」上で使います。
- Debian GNU/ Linux wheezy 32bit
- Mono JIT compiler version 2.10.8.1 (Debian 2.10.8.1-8)
- mono-mcs ver.2.10.8.1-8
- mono-dmcs ver.2.10.8.1-8
- libtiff-tools ver.4.0.2-6(TIFFファイルの確認用)
TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: x86 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: Included Boehm (with typed GC and Parallel Mark)
LibTiff.Netのコンパイル(環境1)
配布されているものでできます。
・「.\libtiff.net_src-2.3.624.0\sources\LibTiff.NET.2010_NoSilverlight.sln」をダブルクリックします。
・「Visual C# 2010」で開きます。
・「デバッグ」→「デバッグ開始」
monoのインストール(環境2)
GUIプログラムでFormを使います場合は「libmono-system-windows-formx.x-cli」をインストールします。
Visual C# 2010は標準で「.NET Framework ver.4」を使います。
「プロジェクト」→「プロジェクトのプロパティ」を参照してください。
sudo aptitude install mono-mcs sudo aptitude install mono-dmcs GUIプログラムでFormなどを使います場合は以下をインストールします。 sudo aptitude install libmono-system-windows-forms4.0-cil
コンパイル(環境1)
「スタート」→「Microsoft Visual Studio 2010 Express」→「Visual Studio コマンドプロンプト(2010)」を使います。
csc /lib:.\ /reference:BitMiracle.LibTiff.NET.dll /out:out.exe hoge.cs ファイルが複数ある場合 csc /lib:.\ /reference:BitMiracle.LibTiff.NET.dll /out:out.exe hoge1.cs hoge2.cs
コンパイル(環境2)
ソースの改行コードはLFにしてください。
mcs -r:./BitMiracle.LibTiff.NET.dll -out:out.exe hoge.cs 又は、 dmcs -r:./BitMiracle.LibTiff.NET.dll -out:out.exe hoge.cs ファイルが複数ある場合 mcs -r:./BitMiracle.LibTiff.NET.dll -out:out.exe hoge1.cs hoge2.cs 又は、 dmcs -r:./BitMiracle.LibTiff.NET.dll -out:out.exe hoge1.cs hoge2.cs 実行は以下。 chmod 755 ./out.exe ./out.exe
TIFFの情報確認(環境1)
libtiffのホームページからダウンロードします。
「tools」ディレクトリに入っています。
「Tiff for Windows」は以下からダウンロードしてください。
http://gnuwin32.sourceforge.net/packages/tiff.htm
自分でコンパイルする場合は「libtiffの環境構築(1)」の記事を参照してください。。
tiffinfo hoge.tif
TIFFの情報確認(環境2)
sudo aptitude install libtiff-tools tiffinfo hoge.tif 以下、結果例。 TIFF Directory at offset 0x10008 (65544) Image Width: 256 Image Length: 256 Resolution: 72, 72 pixels/inch Bits/Sample: 8 Compression Scheme: None Photometric Interpretation: min-is-black FillOrder: msb-to-lsb Orientation: row 0 top, col 0 lhs Samples/Pixel: 1 Planar Configuration: single image plane
参考
LibTiff.Net
libtiffのC#版。
Single TIFFやMultiTIFFのサンプルが豊富で大変役立つ。
http://bitmiracle.com/libtiff/
LibTIFF
「tiffinfo」を使います。
http://www.simplesystems.org/libtiff/
Mono
C# Compilerにはgmcs、dmcs、smcs、mcsなどの種類があるらしい。
「-sdk:VERSION」で切り替える。
例えば「-sdk:2」、「-sdk:4」など。
https://www.mono-project.com/docs/about-mono/releases/
C#の型サイズ
C#のConversionsクラス
csc.exe
「csc Visual C#」でググる。
・http://msdn.microsoft.com/ja-jp/library/vstudio/78f4aasd%28v=vs.100%29.aspx
・http://www.atmarkit.co.jp/fdotnet/dotnettips/002csc/csc.html
MultiTIFFのソース1
VBとC#のサンプルあり。
・http://bitmiracle.com/libtiff/help/create-multipage-tiff.aspx
・http://www.codeproject.com/Articles/16904/Save-images-into-a-multi-page-TIFF-file-or-add-ima
Comments