问题:关于图片格式的判断(BMP,JPEG) 有段程序,用图片的扩展名来判断这张图片到底是BMP还是JPEG。总觉得不太完善,请问怎样根据一张图片的内容而非其扩展名判断格式?给个提示就可以了,如果附上源代码更好,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以打开文件,看其开头的两个字节是否是字符串“BM”,如果是就是Windows位图文件。 http://www.wotsit.org/search.asp?s=graphics这里有比较详细的图像格式,自己看看 读文本的头信息就知道了,每用UE看过么?http://lysoft.7u7.net To constantine(飘遥的安吉儿) :谢谢!哎,不过我的英文不是很好,看起来有些费力。To ly_liuyang(Liu Yang):我用UltraEdit打开图片看过了,请问我能否仅仅根据文件头的前几位包含JFIF来判定是一张JPEG图片,而根据BM来判定是一张BMP图片? 谢谢大家对我的帮助,我昨天在CSDN上找到了一篇类似的贴子。根据该贴子提示的方法我写了以下的代码:请大家看看这样做可行吗:将一张图片分别赋给TJpegImage和TBitMap,看哪个没出错就是哪种格式function funcJudgeFormat(loc:string):integer; //loc为图片的路径//函数的返回值为1代表JPEG格式的图片,2为BMP格式的图片,0为其他var i:integer; j1:TJpegimage; b1:TBitmap;begintry i:=0; j1:=TJpegimage.Create; b1:=TBitmap.Create; try j1.LoadFromFile(loc); i:=1 except i:=0 end; if i=0 then begin try b1.LoadFromFile(loc); i:=2 except i:=0 end; end;finally j1.Free; b1.Free;result:=i;end;end; 动态调用dll的例子 请问Delphi中如何获得Windows任务管理器中的应用程序任务数 CppWebBrowser 小问题 有关windowsAPI函数的使用? 请问关于工具栏的问题 运行错误,提示'必须声明变量'@lcname',不知我错在哪,请大家看看 数据库的问题!!在数据库中查找到一条需要的数据,取完数据后,我想回到当前的位置,好象应该用到游标,书签之类的,可我不会!!! delphi版本问题! 关于TEDIT的问题大家来看看! 求修改一游戏显示窗口分辨率!有酬谢!! 看看人家韩国人是怎么抵日货的,有良知的同志们~! APDComPort求助!!!
这里有比较详细的图像格式,自己看看
请大家看看这样做可行吗:将一张图片分别赋给TJpegImage和TBitMap,看哪个没出错就是哪种格式function funcJudgeFormat(loc:string):integer; //loc为图片的路径
//函数的返回值为1代表JPEG格式的图片,2为BMP格式的图片,0为其他
var i:integer;
j1:TJpegimage;
b1:TBitmap;
begin
try
i:=0;
j1:=TJpegimage.Create;
b1:=TBitmap.Create; try
j1.LoadFromFile(loc);
i:=1
except
i:=0
end; if i=0 then
begin
try
b1.LoadFromFile(loc);
i:=2
except
i:=0
end;
end;finally
j1.Free;
b1.Free;result:=i;
end;
end;