- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi 判断文件是否是图像文件
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;