首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

image读入jpg文件时的异常

2012-04-03 
image读入jpg文件时的错误?filename : ExtractFilePath(application.ExeName) + a.jpgImage1.Picture.L

image读入jpg文件时的错误?
filename := ExtractFilePath(application.ExeName) + a.jpg';
Image1.Picture.LoadFromFile(filename);
Image1.Height := Image1.Picture.Height;
Image1.Width := Image1.Picture.Width;


当文件实际和jpg文件不相同(后缀确实是jpg的),就会出错,如何当Image1无法显示时进行错误的处理,防止弹出错误信息,如error 52之类的,谢谢!



[解决办法]
那就要先读取图片的文件头,进行判断, 
JPEG 文件开头必须为 FF D8,文件尾必须为 FF D9 
 
function IsJpegFile(FileName: string): Boolean;
const
RightBuf : array[0..3] of Byte = ($FF,$D8,$FF,$D9);
var
Buf: array[0..3] of Byte;
begin
FillChar(Buf, 4, 0);
with TFileStream.Create(FileName, 0) do begin
Position := 0;
ReadBuffer(Buf[0], 2);
Position := Size-2;
ReadBuffer(Buf[2], 2);
Free;
end;
Result := CompareMem(@RightBuf[0], @Buf[0], 4);
end;


[解决办法]

探讨
First chance exception at $7C812AFB. Exception class EJPEG with message 'JPEG error #53'. Process myreader.exe (2104)

还是会出现告警,然后才弹出消息

热点排行