delphi 判断图像格式BMP JPG GIF PCX PNG PSD RAS SGI TIFF ERR


本文整理自网络,侵删。

 
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中exit,abort,break,continue 的区别

Delphi 调用api打开文件 使用系统默认打开方式进行打开

Delphi idhttp post request

Delphi webbrowser设置自己定义user-agent

system单元一些有用的变量或者常数

Delphi tidhttp 超时设置无效的解决方法

Delphi 动态生成进度条窗体

Delphi假死线程堵塞解决办法

Delphi 有关pchar.strcopy的实验

Delphi 通过api 隐藏任务栏所有托盘图标

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



打赏

取消

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

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

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

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

评论

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