Delphi获取图片的真实类型


本文整理自网络,侵删。

 今天分析一个网站的验证码,文件名后缀为.gif的,但用TImage加载该图片时,却弹出“无效的GIF标识”对话框。后来用工具一分析却是JPEG格式的图片,所以对图片处理前很有必要对图片的真实类型进行判断:

function GetImageType(strFileName: string): String;
var
   aImage: TMemoryStream;
   Buffer: Word;
begin
   Result := '';
   aImage := TMemoryStream.Create;
   try
      aImage.LoadFromFile(strFileName);
      aImage.Position := 0;
      if aImage.Size > 2 then
      begin
         aImage.ReadBuffer(Buffer, 2); //读取文件的前2个字节,放到Buffer里面
         case Buffer of
            $4D42: Result := 'BMP';
            $D8FF: Result := 'JPG';
            $4947: Result := 'GIF';
            $050A: Result := 'PCX';
            $5089: Result := 'PNG';
            $4238: Result := 'PSD';
            $A659: Result := 'RAS';
            $DA01: Result := 'SGI';
            $4949: Result := 'TIFF';
         else
            Result := 'NONE'; //未知格式
         end;
      end;
   finally
      aImage.Free;
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   if OpenDialog1.Execute then
      ShowMessage(GetImageType(OpenDialog1.FileName));
end;

相关阅读 >>

Delphi xe7上启用android蓝牙

Delphi 利用 showmessage(syserrormessage(getlasterror));得到不反馈的错误信息

Delphi arp攻击代码

Delphi 根据邮箱地址分离出@前的内容

Delphi tms web core messagedlg对话框用法

Delphi xe7实现的登录窗体的正确用法示例

Delphi 线程教学第一节:初识多线程

Delphi fdquery 判断记录为空

Delphi memo1自动循环上下滚屏

Delphi 拷贝edit编辑框中的内容

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



打赏

取消

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

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

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

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

评论

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