本文整理自网络,侵删。
function IsPhoto(AFile:string):Boolean;var //声明变量 MyImage:TMemoryStream; //内存流对象 Buffer:Word; i:integer;
begin Result := False; MyImage:=TMemoryStream.Create; //建立内存流对象 try MyImage.LoadFromFile( AFile ); //把刚刚用户选择的文件载入到内存流中 MyImage.Position := 0; //移动指针到最开头的位置 if MyImage.Size = 0 then //如果文件大小等于0,那么 begin //ShowMessage('错误'); Exit; end; MyImage.ReadBuffer(Buffer,2); //读取文件的前2个字节,放到Buffer里面 if Buffer=$4D42 then //如果前两个字节是以4D42[低位到高位] begin Result := True; // ShowMessage('BMP'); //那么这个是BMP格式的文件 end else if Buffer=$D8FF then //如果前两个字节是以D8FF[低位到高位] begin Result := True; // ShowMessage('JPEG'); //........一样 下面不注释了 end else if Buffer=$4947 then begin // Result := True; // ShowMessage('GIF'); end else if Buffer=$050A then begin // ShowMessage('PCX'); end else if Buffer=$5089 then begin // ShowMessage('PNG'); end else if Buffer=$4238 then begin // ShowMessage('PSD'); end else if Buffer=$A659 then begin // ShowMessage('RAS'); end else if Buffer=$DA01 then begin // ShowMessage('SGI'); end else if Buffer=$4949 then begin // ShowMessage('TIFF'); end else //如是其他类型的文件的话,直接显示错误 begin // ShowMessage('ERR'); end;
finally MyImage.Free; //释放内存流对象 end;end;
相关阅读 >>
Delphi 跨平台的,在fmx中读取icon文件的每一帧到bitmap
更多相关阅读请进入《Delphi》频道 >>