TIFF 形式の画像は,マルチページと呼ばれる形式があり,1つの画像ファイルに複数のページを
持つことができます.内部的にいろいろな仕様を構成することができます.
印刷禁止等の設定も可能です.
[Tagged Image File Format - Wikipedia]
http://ja.wikipedia.org/wiki/Tagged_Image_File_Format
Delphi 2010 で実装されたTWICImage クラスを使用すると,以下のように TImage に表示できます.
procedure TForm1.Button3Click(Sender: TObject); var WIC : TWICImage; begin WIC := TWICImage.Create; try WIC.LoadFromFile(TIFFファイル名); Image1.Picture.Assign(WIC); Image1.Update; //このコードは,表示確認のために入れておいた方が良い finally WIC.Free; end; end;
このコードではマルチ TIFF の他のフレーム (ページ) は表示できません.
また TIFF の内部構造によっては印刷できない場合もあるようです (TImage に表示可能かどうかは不明).
そんな場合は,LibTiffDelphi というライブラリを使用するといいようです.
ただし,私自身は使ったことはありません.
[ID: 24741, LibTiffDelphi patch to 3.8.2 libtiff] 本日現在,こちらの方が新しい
http://cc.embarcadero.com/Item/24741
[TIFF in Delphi, pre-compiled LibTiff for Borland Delphi]
http://www.awaresystems.be/imaging/tiff/delphi.html
GDI+ でも,FrameDimension で TIFF のページ数を取得して,マルチ TIFF 画像を扱えます.
ただし,GDI+ で扱えない形式の TIFF もあります.
[Windows 画像と FAX ビューアを使用すると TIFF イメージが表示されない]
http://support.microsoft.com/kb/329270
注: FAX ビューアは GDI+ を使用しています.
[JPEG 形式で圧縮されている TIFF 画像ファイルを Office 2003 の Office Document Imaging ツールで正しく開くことができない]
http://support.microsoft.com/kb/885938
注: Office 2003 は画像操作に GDI+ を使用しています.
なお,IE 9 からは TIFF 画像の表示が可能となっているようです.
|