首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-06-22 
如何判断LoadFromStream载入的是不是一个图片Delphi(Pascal) codeimagestream : TMemoryStream.Create()

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

热点排行