Delphi判断一个文件是不是JPG图片

 我来答
windblast
2016-12-07 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13620
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

Jpg、JPEG 文件的文件格式是:

- 文件头标识 (2 bytes): $ff, $d8 

- 文件结束标识 (2 bytes): $ff, $d9


可以读取文件的前2个字节,并判断是否是特定的标志量,基本上就可以判断是否是 jpg 文件,如果要求更高一点,可以再检测文件的结束标识。


以下是示例代码:


function IsJpegFile(FileName: string): Boolean;
const
  RightBuf : array[0..3] of Byte = ($FF,$D8,$FF,$D9);
var
  Buf: array[0..3] of Byte;
begin
  FillChar(Buf, 4, 0);
  with TFileStream.Create(FileName, 0) do begin
    Position := 0;
    ReadBuffer(Buf[0], 2);
    Position := Size-2;
    ReadBuffer(Buf[2], 2);
    Free;
  end;
  Result := CompareMem(@RightBuf[0], @Buf[0], 4);
end;

procedure TForm1.Button1Click(Sender: TObject);//测试
begin
if Self.OpenDialog1.Execute then
    if IsJpegFile(Self.OpenDialog1.FileName) then
      Showmessage('Is Jpg File');
end;

 

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式