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;

相关阅读 >>

Delphi 利用tdictionary 文本去重

Delphi 结合正确的url

Delphi获取千千静听歌词下载地址源码

Delphi xe10 给程序添加uac权限

Delphi 缓冲文件流-tbufferedfilestream tfilestream 性能测试

Delphi 数据库重置用户密码制作

Delphi tadocommand 中文使用说明

Delphi 如何在窗体标题栏添加按钮

Delphi滚动窗口标题

Delphi xe5、6、7在android或者ios上使用ansistring和ansichar

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...