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实现tedit控件的外观只有一条下划线

Delphi 无法结束进程的程序

Delphi getwebbrowserhtml 获取网页源代码

Delphixe5如何获取android手机sim卡串号

Delphi 删除确认对话框

Delphi判断线程是否释放

Delphi搜索字符串在流中的位置

Delphi 将memorystream保存到字符串

Delphi sysutils.strcat

Delphi文件操作所涉及的一些函数 附例子

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



打赏

取消

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

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

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

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

评论

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