读书人

怎么判断LoadFromStream载入的是不是一

发布时间: 2012-06-22 16:16:32 作者: rapoo

如何判断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; 

读书人网 >.NET

热点推荐