不通过扩展名判断图像文件格式
来源:互联网 发布:潭州淘宝旗舰店靠谱吗 编辑:程序博客网 时间:2024/05/21 09:36
编制一个小程序,需要判断图像文件格式。从网上搜索到,文件头第1个字节:1、$00 Icon;2、$42 Bmp;3、$FF JPEG 。据此进行判断。
此外,Jpeg文件的格式是以$FF $D8开头的,以$FF $D9结尾。但是有时候也并不一定以$FF $D9结尾,因为一般Jpeg解读代码读到$FF $D9的时候就终止解读了,但文件并不一定非要结束,可以继续有内容。有的Jpeg文件会在文件末尾加入额外内容,作为隐藏内容藏在文件中。就是所云的图片中隐藏的秘密。
综上所述,为了快速判断文件的图像内容是不是Jpeg文件格式的,可以预读一下文件头,如果是以$FF $D8开头,我们就可以认为文件是合法的Jpeg编码格式。
Delphi代码如下:
function IsGoodJpeg(fn: String): Boolean;
var
strm: TFileStream;
ch1, ch2: Byte;
n: Integer;
begin
Result := False;
if not FileExists(fn) then
Exit;
ch1 := $00;
ch2 := $00;
strm := TFileStream.Create(fn, fmOpenRead);
try
n := SizeOf(ch1);
if strm.Size > (n * 4) then
begin
strm.Read(ch1, n);
strm.Read(ch2, n);
if (ch1 = $ff) and (ch2 = $d8) then
Result := True;
end;
finally
strm.Free;
end;
end;
- 不通过扩展名判断图像文件格式
- C#如何不根据图像文件扩展名来确定一个图像文件是什么格式
- 图像文件格式
- 图像文件格式
- 图像文件格式
- DICOM医学图像文件格式
- 常见图像文件格式详解
- TIF格式图像文件初探
- BMP图像文件格式
- bmp图像文件格式
- 图像文件格式之PNG
- TIF格式图像文件初探
- TIF格式图像文件初探
- 01 BMP图像文件格式
- 多媒体计算机图像文件格式
- 多媒体计算机图像文件格式
- BMP图像文件格式
- DICOM医学图像文件格式
- WPF学习目录
- 没想到我也有机会在CSDN开博
- cygwin 查看环境参数命令 :ENV
- 解决方法:invalid command name "Resource/Energy
- InstantiationException 异常原因
- 不通过扩展名判断图像文件格式
- LEACH和LEACH-C仿真冲突
- LEACH协议代码的两个BUG
- InnoDB与MyISAM的六大区别
- new delete
- AXI CUP资源列表
- Ajax链接服务器步骤
- LEACH仿真问题处理与解析(1)
- 关于张老师java视频的学习(十三)