delphi 简单判断图片类型


本文整理自网络,侵删。

 function ImageMIMEType(Source: string): string; 
var 
Mem: TMemoryStream; 
Buffer: Word; 
i: integer; 
const 
IMG_CLASS_UNKNOWN = 'unknown'; 
IMG_CLASS_ERROR = 'error'; 
IMG_CLASS_JPEG = 'image/jpeg'; 
IMG_CLASS_BITMAP = 'image/bmp'; 
IMG_CLASS_GIF = 'image/gif'; 
IMG_CLASS_PNG = 'image/png'; 
IMG_CLASS_PCX = 'image/pcx'; 
IMG_CLASS_PSD = 'image/psd'; 
IMG_CLASS_RAS = 'image/ras'; 
IMG_CLASS_SGI = 'image/sgi'; 
IMG_CLASS_TIFF = 'image/tiff'; 

begin 
Mem := TMemoryStream.Create; 

try 
Mem.LoadFromFile(Source); 
Mem.Position := 0; 
if Mem.Size = 0 then 
begin 
//错误 
Result := IMG_CLASS_ERROR; 
Exit; 
end; 

Mem.ReadBuffer(Buffer, 2); 

if Buffer = $4D42 then 
Result := IMG_CLASS_BITMAP 
else 
if Buffer = $D8FF then 
Result := IMG_CLASS_JPEG 
else 
if Buffer = $4947 then 
Result := IMG_CLASS_GIF 
else 
if Buffer = $050A then 
Result := IMG_CLASS_PCX 
else 
if Buffer = $5089 then 
Result := IMG_CLASS_PNG 
else 
if Buffer = $4238 then 
Result := IMG_CLASS_PSD 
else 
if Buffer = $A659 then 
Result := IMG_CLASS_RAS 
else 
if Buffer = $DA01 then 
Result := IMG_CLASS_SGI 
else 
if Buffer = $4949 then 
Result := IMG_CLASS_TIFF 
else 
Result := IMG_CLASS_UNKNOWN; 


finally 

Mem.Free; //释放内存流对象 

end; 
end;

相关阅读 >>

Delphi 替换其他程序里面的函数为自己的函数

Delphi 拷贝文件时有进度显示

Delphi xe更改ttrayicon系统任务栏图标(无模糊)

Delphi 正则提取txt中的email 数据

Delphi 字母大小写转换

Delphi 解决strtodatetime()不是有效日期类型的问题

Delphi 获取当前目录下的.txt文本不要带后缀扩展名

Delphi中多线程分析详解

Delphi 改造shellexecute 精简函数

Delphi中如何设置更改编译生成的exe文件的保存位置

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



打赏

取消

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

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

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

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

评论

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