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 で調べる事ができます。
参考資料