Delphi判断图片格式

Delphi 的文件能力还挺强的,尤其是读文件头判断类型这招,用起来真是又快又准。像搞图像相关的功能,比如上传时判断格式、自动分类啥的,用它来识别JPEGPNGGIF这些常见图片,基本靠读头 8 个字节就能搞定。

TFileStream来打开文件,Read方法读几个字节,再和固定的图片头信息对一对,就知道是啥格式了。关键代码也不长:

FileStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
FileStream.Read(Buffer, SizeOf(Buffer));
if (Buffer[0] = $FF) and (Buffer[1] = $D8) and ... then
  Result := 'JPEG';

判断图片类型这事,逻辑蛮简单,扩展性也不错。想支持更多格式,比如BMPTIFF啥的,只要加几行判断就行。代码结构也清爽,新手看了也不迷糊。

如果你正好在做 Delphi 项目,功能里又有图片,不妨把这个方法封装成一个小工具类,用起来会更顺手。另外,异常别忘了包一下,避免文件打不开程序直接崩。

你要是想看完整的实现,去看看testCheckImgType里头的示例代码,实战感更强,写得还挺规范的。

哦对了,感兴趣的话还可以顺便瞅瞅这几个相关资源:文件格式图片格式识别,都挺有用的。

rar 文件大小:172.4KB