如何判断一个文件是否是正确的JPEG文件 ( 积分: 50 )

  • 主题发起人 主题发起人 hrbmyy
  • 开始时间 开始时间
H

hrbmyy

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何实现判断一个文件是否是正确的JPG文件![:(]
 
用流文件方式打开文件,如果是以‘FF D8’开头,‘FF D9’结尾的话,基本可以判定为JPG文件。当然有些人习惯在文件尾追加一些相关信息这就是另外的事了。

function JudegeFileIsJpg(const AFile: string): Integer;
var
tmpByte: array[0..3] of Byte;
begin
Result := -1;
if FileExists(AFile) then
begin
Result := 0;
with TFileStream.Create(AFile, fmOpenRead) do
try
Position := 0;
Read(tmpByte[0], 1);
Read(tmpByte[1], 1);
Position := Size - 2;
Read(tmpByte[2], 1);
Read(tmpByte[3], 1);
if (tmpByte[0]=$FF) and (tmpByte[1]=$D8) then
begin
Result := 1;
if (tmpByte[2]=$FF) and (tmpByte[3]=$D9) then
Result := 2;
end;
finally
Free;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
case JudegeFileIsJpg('E:/TEST.jpg') of
-1: ShowMessage('文件不存在!');
0: ShowMessage('不是JPG文件!');
1: ShowMessage('可能是JPG文件!');
2: ShowMessage('是JPG文件!');
end;
end;
 
虽然不是我想要的最好答案但是就你回答了把分给你吧
 
后退
顶部