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 62 进制的简单实现

Delphi中使用tlist类的简单分析

Delphi 对比时间的函数

Delphi2010的操作界面切换到Delphi7的操作模式

Delphi 根据扩展名的文件搜索

Delphi 创建一个文本文件

Delphi 链接文件名合并

Delphi xe7 的 android bitmap转jpg图的参数问题

Delphi idhttp下载带清理网络缓存

Delphi指针的定义和取值

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



打赏

取消

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

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

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

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

评论

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