unit FileToImage; interface uses Windows, Classes, ExtCtrls, Graphics, SysUtils, GraphicEx; procedure GetImageFromFile(sFileName: string; var tBMP: TBitmap); function GetSizeFromFile(aFileName: string):Integer; implementation function GetSizeFromFile(aFileName: string):Integer; var fHandle : Integer; begin Result := 0; try fHandle := FileOpen(aFileName, 0); if fHandle > 0 then begin Result := GetFileSize(fHandle, nil); FileClose(fHandle); end; except end; end; procedure GetImageFromFile(sFileName: String; var tBMP: TBitmap); var IExtensions : TStringList; PPicture : TPicture; i : Integer; sExt : String; begin if FileExists(sFileName)=False then Exit; IExtensions := TStringList.Create; PPicture := TPicture.Create; try FileFormatList.GetExtensionList(IExtensions); for i := 0 to IExtensions.Count - 1 do IExtensions[I] := '.' + UpperCase(IExtensions[I]); IExtensions.Sort; except end; sExt := ExtractFileExt(sFileName); //if IExtensions.Find(sExt, i) then begin try PPicture.LoadFromFile(sFileName); if PPicture.Graphic is TBitmap then tBMP.Assign(PPicture) else begin with tBMP do begin PixelFormat := pf24Bit; Width := PPicture.Width; Height := PPicture.Height; Canvas.Draw(0, 0, PPicture.Graphic); end; end; except // no exceptions please, just ignore invalid images end; end; PPicture.Free; IExtensions.Free; end; end.