频道分类

Delphi GetFileType 判断图像文件类型

作者:admin 来源: 日期:2020/2/1 22:18:14 人气: 标签:

 
function GetFileType(FileName: String): string;
 var
  MyImage:TMemoryStream;
  Buffer:Word;
  i:integer;
begin
  Result := 'Err';
  MyImage:=TMemoryStream.Create;
  try
    MyImage.LoadFromFile(FileName);
    MyImage.Position := 0;                      // 指针文件开头的位置
    if MyImage.Size = 0 then Exit;              // 文件大小等于0退出
    MyImage.ReadBuffer(Buffer,2);               // 读取文件的前2个字节[低位到高位],放到Buffer里面
    if Buffer=$4D42 then  Result :='BMP';
    if Buffer=$D8FF then  Result :='JPEG';
    if Buffer=$4947 then  Result :='GIFP';
    if Buffer=$050A then  Result :='PCX';
    if Buffer=$5089 then  Result :='PNG';
    if Buffer=$4238 then  Result :='PSD';
    if Buffer=$A659 then  Result :='RAS';
    if Buffer=$DA01 then  Result :='SGI';
    if Buffer=$4949 then  Result :='TIFF';
  finally
    MyImage.Free;                              // 释放内存流对象
  end;
end;