怎样识别图片文件类型

aloking 2005-04-04 09:07:58
怎么样快速识别一图片是jpg还是bmp
我现在是用一个TBitmap 和 TJpegImage 在load 哪个成功就是哪个
这样速度会不会慢?有没有更直接方法判断是什么图片
...全文
336 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
constantine 2005-04-07
  • 打赏
  • 举报
回复
读取文件头来判断
aloking 2005-04-07
  • 打赏
  • 举报
回复
文件名后缀改了,怎么办。图象数据格式文件数据开头,就是不知道怎么用,我现在批量处理一批图片
jpg的,只能转成bmp处理完后,再转回jpg
现在的做法是,先转bmp,不管你是jpg还是bmp的,是bmp的用try,把异常包了。如果要是直接对文件分析知道是什么类型就好了
ehom 2005-04-07
  • 打赏
  • 举报
回复
Stream.ReadBuffer(Buffer, 2);

if Buffer = $4D42 then
begin
//BMP
end
else if Buffer = $D8FF then
begin
//JPEG
end
else if Buffer = $4947 then
begin
//GIF
end
else if Buffer = $050A then
begin
//PCX
end
else if Buffer = $5089 then
begin
//PNG
end
else if Buffer = $4238 then
begin
//PSD
end
else if Buffer = $A659 then
begin
//RAS
end
else if Buffer = $DA01 then
begin
//SGI
end
else if Buffer = $4949 then
begin
//TIFF
end
else
begin
//...
end;
aloking 2005-04-07
  • 打赏
  • 举报
回复
把jpg文件读到流里面
如果他是以FFD8开头的就说明是jpeg的图象了。
否则就是其他的文件。
Jpeg的文件都是以FFD8开头,以FFD9来结尾的。

ehom(?!)
我不在等着看你的示范代码嘛,呵呵
ExtractFileExt
晚点结贴
ehom 2005-04-07
  • 打赏
  • 举报
回复
我第一次回复不是把答案给你了吗?
aloking 2005-04-04
  • 打赏
  • 举报
回复
用Image 我也这么用了
vfork 2005-04-04
  • 打赏
  • 举报
回复
直接用个Image控件,记住uses Jpeg单元!
然后Image1.Picture.LoadFromFile('路径');
我就是这么做的,bmp和jpg图都可以显示出来.
ehom 2005-04-04
  • 打赏
  • 举报
回复
说TImage,不如说通过TPicture,TImage只是显示控件。

这里只是通过后缀来确定,通过注册相应的Graphic Class,会全局保存该Class和后缀的关联。如TJPEGImage和.jpg/.jpeg
ehom 2005-04-04
  • 打赏
  • 举报
回复
绝大多数图像格式文件数据开头都有特征值可用来判断

1,185

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧