怎么判断LoadFromStream载入的是不是一个图片

如何判断LoadFromStream载入的是不是一个图片
Delphi(Pascal) code


    imagestream := TMemoryStream.Create();
    jpg:=TJpegImage.Create;
    idhttp1.Get(strContent,imagestream);
    imagestream.Position:=0;
    jpg.LoadFromStream(imagestream);//这里载入的如果不是一个jpg图片就会出错,如何先判断呢?
    image1.Picture.Assign(jpg);





------解决方案--------------------
分析文件头格式
这就要了解JPEG文件存储格式。
所有的图片文件都包括:文件识别头和图象数据两部分,其中文件识别头用来让计算机判断是哪种文件格式。
所有的JPEG文件以字符串“0xFFD8”开头,并以字符串“0xFFD9”结束。依此便可判别是否是JPEG文件。
------解决方案--------------------
Delphi(Pascal) code


function CheckPicFormat(MS:TMemoryStream): String;
var
  Bmf : TBitmapFileHeader  ;
begin
  Result := 'Err';
  if Assigned(MS) then
  begin
    MS.ReadBuffer(Bmf, sizeof(Bmf));
    if Bmf.bfType <> $4D42 then Result := 'JPEG' else Result := 'BMP';
  end;
end;