TImage にイロイロな画像を読み込む

 実は Delphi 標準でも様々な画像を読み込む事ができます。

・Bitmap (*.bmp)

・Windows Metafile (*.wmf)

・Enhanced Metafile (*.emf)

・Icon (*.ico)

 普通に読めます。

uses
  ..., Graphics;

begin  
 ...
  Image1.Picture.LoadFromFile(FileName);
end;  

 TGraphics ラッパーはそれぞれ TBitmap / TMetaFile (WMF / EMF) / TIcon です。

・Jpeg (*.jpg / *.jpeg)

 uses に Jpeg を追加すれば読み込めます (Delphi 3 以降)。

uses
  ..., Graphics, Jpeg;

begin  
 ...
  Image1.Picture.LoadFromFile(FileName);
end;  

 TGraphics ラッパーは TJpegImage です。

・GIF (*.gif)

 uses に GIFImg を追加すれば読み込めます (Delphi 2007 以降)。

uses
  ..., Graphics, GIFImg;

begin  
 ...
  Image1.Picture.LoadFromFile(FileName);
end;  

 TGraphics ラッパーは TGIFImage です。もちろん、アニメーション GIF にも対応しています。

uses
  ..., Graphics, GIFImg;

begin  
 ...
  Image1.Picture.LoadFromFile(FileName);
  (Image1.Picture.Graphic as TGIFImage).Animate := True; // アニメーション開始
end;  

 Delphi 7 以前でも、http://www.tolderlund.eu/delphi/ から GIFImg.pas を入手できます。

・PNG (*.png)

 uses に PNGImage を追加すれば読み込めます (Delphi 2009 以降)。

uses
  ..., Graphics, PNGImage;

begin  
 ...
  Image1.Picture.LoadFromFile(FileName);
end;  

 TGraphics ラッパーは TPNGImage です。Delphi 2007 以前でも、 https://github.com/JoseJimeniz/pngdelphi から PNGImage.pas を入手できます。

・TIFF (*.tif / *.tiff)

 Delphi 2010 以降で普通に読めますが、"Windows Imaging Component (WIC)" 経由なので Windows のバージョンに依存します。

uses
  ..., Graphics;

begin  
 ...
  Image1.Picture.LoadFromFile(FileName);
end;  

 TGraphics ラッパーは TWICImage です。

・WIC がサポートするその他のフォーマット

 WIC は Bitmap / Jpeg / GIF / PNG / Tiff / HD Photo (Windows Media Photo / JPEG XR) をサポートしています。Tiff 以外の画像を WIC 経由で読み込むには以下のようなコードを書く必要があります (Delphi 2010 以降)。

uses
  ..., Graphics;

var
  WIC: TWICImage;
begin
  if not OpenDialog1.Execute then
    Exit;
  WIC := TWICImage.Create;
  try
    WIC.LoadFromFile(OpenDialog1.FileName);
    Image1.Picture.Assign(WIC);
  finally
    WIC.Free;
  end;
end;

 当然、TGraphics ラッパーは TWICImage です。読み込まれた画像のフォーマットは TWICImage.ImageFormat で調べる事ができます。

参考資料


 BACK